{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/helpers/response-helpers.js","webpack:///./src/store/ability.js","webpack:///./src/store/modules/menu.js","webpack:///./src/api/order.service.js","webpack:///./src/store/modules/order.js","webpack:///./src/store/modules/index.js","webpack:///./src/store/index.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.json$/","webpack:///./src/helpers/api-url-builder.js","webpack:///./src/i18n.js","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///./src/App.vue?1d38","webpack:///./src/App.vue?180a","webpack:///./src/main.js","webpack:///./src/store/modules/notification.js","webpack:///./src/assets/images/error-img.png","webpack:///./src/api/user.service.js","webpack:///./src/helpers/auth-header.js","webpack:///./src/helpers/store-helpers.js","webpack:///./src/api/property.service.js","webpack:///./src/store/modules/property.js","webpack:///./src/router/routes.js","webpack:///./src/router/index.js","webpack:///./src/api/area.service.js","webpack:///./src/store/modules/area.js","webpack:///./src/store/modules/navigation.js","webpack:///./src/api/item.service.js","webpack:///./src/store/modules/item.js","webpack:///index|\\.unit\\.).)*\\.js$","webpack:///./src/store/modules/email.js","webpack:///./src/store/modules/auth.js","webpack:///./src/components/pages/utility/404.vue","webpack:///src/components/pages/utility/404.vue","webpack:///./src/components/pages/utility/404.vue?40e5","webpack:///./src/components/pages/utility/404.vue?f9ed","webpack:///./src/api/icon.service.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","handleLogout","callback","localStorage","removeItem","responseToJson","response","json","storeToken","token","headers","setItem","handleResponse","ok","status","ability","Ability","abilityPlugin","store","subscribe","mutation","log","state","rules","update","payload","action","subject","menu","actions","loadMenu","commit","rootState","properties","menuItems","id","label","icon","namespace","subItems","forEach","propIndex","areas","sort","a","b","localeCompare","propMenuItem","parentId","propertyId","link","thumbnail","photos","image_url","virtualTourLink","activation_info","virtual_tour_link","roofReport","documents","find","doc","itemCategories","can","area","areaIndex","items","category","areaMenuItem","nickname","areaId","item","topcat_slug","iconService","getCategorySlug","topCategory","getIconByCategory","values","mutations","updateMenuItemLabel","menuItem","addMenuItem","orderService","getOrders","getOrderById","getItem","requestOptions","method","fetch","buildOrderUrl","orders","selectedOrder","text","level","to","active","root","wh_id","setOrders","setSelectedOrder","order","modulesCache","storeData","getNamespace","subtree","path","namespaced","requireModule","require","keys","fileName","moduleDefinition","modulePath","replace","split","map","camelCase","pop","Vue","use","Vuex","Store","plugins","getters","setRules","strict","process","webpackContext","req","webpackContextResolve","appHost","location","hostname","envConfig","appConfig","ceviz","hosts","apiRoot","protocol","port","apiNamespace","buildUrl","resource","buildUsersUrl","buildPropertiesUrl","buildAreasUrl","buildItemsUrl","buildSendOtpUrl","buildVerifyOtpUrl","loadLocaleMessages","locales","messages","matched","match","locale","VueI18n","fallbackLocale","render","_vm","this","_c","_self","attrs","staticRenderFns","page","titleTemplate","title","$store","watch","$route","params","keepNotifications","clear","methods","component","VueRouter","abilitiesPlugin","vco","Scrollspy","VueScrollTo","BootstrapVue","Vuelidate","VueMask","VueSweetalert2","VueGoogleMaps","load","libraries","installComponents","VueApexCharts","tinymce","datepicker","VueCookies","config","productionTip","filter","moment","String","format","router","i18n","h","App","$mount","success","userService","login","sendOtp","verifyOtp","logout","setPassword","forgotPassword","getMe","updateUser","sendSupportEmail","inviteUser","user","body","JSON","stringify","requiresOtp","authHeader","otp","email","itemDataInRootState","itemId","selectedItemId","areaDataInRootState","selectedPropertyId","selectedAreaId","propertyService","getProperties","updateProperty","uploadFile","deleteFile","attachmentType","attachment","FormData","attachmentDateType","substring","attachmentBlobType","append","date","attachmentId","remove","payloadString","cachedProperties","parse","dispatch","resetCache","cached","switchProperty","uploadPhoto","file","deletePhoto","uploadDocument","deleteDocument","cacheProperties","clearProperties","setProperties","setSelectedProperty","setPhotos","setAreaPhotos","prop","setItemPhotos","setDocuments","setAreaDocuments","setItemDocuments","setProperty","setArea","ceiling_height","floor_material_type","counter_top_material","counter_top_measurement","wall_material","additional_information","sub_category","note","description","purchase_date","approximate_price","brand_name","manufacturer","model_number","serial_number","per_piece_or_per_set","number_of_items","measurement_width","measurement_height","measurement_depth","year_purchased","month_purchased","country","condition","warranty_years","service_contract_company","extended_warranty_company","dimensions","item_weight","appraisal_value","heir_assigned_name","actual_cash_value","replacement_cost_value","auction_value","retail_value","asset_ownership_status","asset_assigned_to","itemIndex","findIndex","meta","authRequired","beforeResolve","routeTo","routeFrom","next","otpVerified","auth","_","propId","areaCallback","itemCallback","categoryCallback","from","default","props","VueMeta","keyName","routes","scrollBehavior","savedPosition","x","y","beforeEach","authpage","authToken","impersonateToken","$cookies","app","route","areaService","createArea","updateArea","image","resetArea","switchArea","setSelectedArea","selectedArea","_state","_getters","selectedPropertyAreas","breadcrumbItems","breadcrumbAdded","parentLevel","parent","existingItem","index","indexOf","parentPassive","updateBreadcrumbLabel","breadcrumb","itemService","updateItem","createItem","deleteItem","resetItem","switchItem","updateDocument","formattedPayload","documents_attributes","documentId","date_of_document","setCategory","categoryPath","updateItemArea","area_id","setSelectedItem","selectedItem","inventoryItemsByCategory","itemList","slug","propertyName","inventoryItems","selectedEmailAddress","setSelectedEmailAddress","emailAddress","reset","loggingIn","loggedIn","firstName","lastName","confirmedAt","createdAt","phoneNumber","company","role","logIn","logOut","errors","password","password_confirmation","reset_password_token","loginRequest","authSuccess","userData","confirmed_at","created_at","first_name","last_name","phone_number","otpRequired","authFailure","passwordFailure","updateSuccess","staticClass","_m","_v","icons","toLowerCase"],"mappings":"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","file":"js/app.e6d24a7e.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-1db5708e\":\"081fd195\",\"chunk-3ae52103\":\"82421cf8\",\"chunk-4a636d95\":\"479149db\",\"chunk-2d224c6a\":\"280e53d3\",\"chunk-4d91d31a\":\"4ee14982\",\"chunk-4dbced6c\":\"801b5479\",\"chunk-4f936789\":\"937eed8d\",\"chunk-5ea8b8e6\":\"74dd602a\",\"chunk-8670d43e\":\"278fb8d3\",\"chunk-2d238494\":\"061e8db6\",\"chunk-ce01ffa6\":\"dd59f7d5\",\"chunk-f8688026\":\"0e8842ba\",\"chunk-6a0749d8\":\"f79a4e10\",\"chunk-8051f746\":\"514836ee\",\"chunk-4d75716c\":\"09d39e07\",\"chunk-736a29ce\":\"c1224f25\",\"chunk-95271572\":\"ba0f891c\",\"chunk-c6e0b1bc\":\"f9c6e156\",\"chunk-4fb89068\":\"0260272c\",\"chunk-2d216214\":\"9dcc3fce\",\"chunk-78931ac4\":\"bc69bea6\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-1db5708e\":1,\"chunk-4a636d95\":1,\"chunk-5ea8b8e6\":1,\"chunk-ce01ffa6\":1,\"chunk-f8688026\":1,\"chunk-6a0749d8\":1,\"chunk-4d75716c\":1,\"chunk-736a29ce\":1,\"chunk-95271572\":1,\"chunk-c6e0b1bc\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-1db5708e\":\"d99b3d9c\",\"chunk-3ae52103\":\"31d6cfe0\",\"chunk-4a636d95\":\"30efa002\",\"chunk-2d224c6a\":\"31d6cfe0\",\"chunk-4d91d31a\":\"31d6cfe0\",\"chunk-4dbced6c\":\"31d6cfe0\",\"chunk-4f936789\":\"31d6cfe0\",\"chunk-5ea8b8e6\":\"998d7fa3\",\"chunk-8670d43e\":\"31d6cfe0\",\"chunk-2d238494\":\"31d6cfe0\",\"chunk-ce01ffa6\":\"8c48735e\",\"chunk-f8688026\":\"ff4ca1b1\",\"chunk-6a0749d8\":\"77ab3063\",\"chunk-8051f746\":\"31d6cfe0\",\"chunk-4d75716c\":\"e0ecd59a\",\"chunk-736a29ce\":\"16359154\",\"chunk-95271572\":\"a832f488\",\"chunk-c6e0b1bc\":\"de9e11fe\",\"chunk-4fb89068\":\"31d6cfe0\",\"chunk-2d216214\":\"31d6cfe0\",\"chunk-78931ac4\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export function handleLogout(callback) {\n localStorage.removeItem('token');\n localStorage.removeItem('properties');\n if (callback) callback();\n}\n\nexport function responseToJson(response) {\n return response.json();\n}\n\nexport function storeToken(response) {\n const token = response.headers.get('authorization');\n localStorage.setItem(\"token\", token);\n\n return response;\n}\n\nexport function handleResponse(response) {\n if (!response.ok) {\n // auto logout if 401 response returned from api\n if (response.status == 401) handleLogout();\n return responseToJson(response).then(json => Promise.reject(json));\n }\n\n return response;\n}\n","// import { Ability } from '@casl/ability'\n\n// export const ability = new Ability()\n\n// export const abilityPlugin = (store) => {\n// ability.update(store.state.rules)\n\n// return store.subscribe((mutation) => {\n// switch (mutation.type) {\n// case 'auth/authSuccess': \n// ability.update(mutation.payload.rules)\n// break\n// case 'auth/logout':\n// ability.update([{ actions: 'read', subject: 'all' }])\n// break\n// }\n// })\n// }\n\nimport { Ability } from '@casl/ability';\n\nexport const ability = new Ability();\n\nexport const abilityPlugin = (store) => {\n store.subscribe((mutation) => {\n switch (mutation.type) {\n case 'setRules':\n console.log('Updating ability with rules:', store.state.rules);\n ability.update(store.state.rules);\n break;\n case 'auth/authSuccess':\n console.log('Updating ability with rules:', mutation.payload.rules);\n ability.update(mutation.payload.rules);\n break;\n case 'auth/logout':\n ability.update([{ action: 'read', subject: 'all' }]);\n break;\n }\n });\n};\n","//import MetisMenu from \"metismenujs/dist/metismenujs\";\nimport { iconService } from \"@/api/icon.service\";\nimport { ability } from '@/store/ability';\n\nexport const state = {\n menu: [],\n}\n\nexport const actions = {\n loadMenu({ commit, rootState }, callback) {\n const properties = rootState.property.properties;\n const menuItems = {\n properties: {\n id: 1,\n label: \"Properties\",\n icon: \"fa fa-home\",\n namespace: '/properties',\n subItems: [],\n },\n }\n\n properties.forEach((property, propIndex) => {\n property.areas.sort((a, b) => a.name.localeCompare(b.name));\n\n let propMenuItem = {\n id: propIndex + 1,\n parentId: 1,\n label: property.name,\n propertyId: property.id,\n link: `/properties/${property.id}`,\n thumbnail: (property.photos.length ? property.photos[0].image_url : ''),\n icon: \"fa-home\",\n subItems: [],\n virtualTourLink: property.activation_info.virtual_tour_link,\n roofReport: property.documents.find(doc => doc.name == 'Roof Report'),\n itemCategories: {}\n };\n if (ability.can('read', 'Area')) {\n property.areas.forEach((area, areaIndex) => {\n area.items.sort((a, b) => {\n if (!a.category) return 1; // Items without category go to the end\n if (!b.category) return -1;\n return a.category.localeCompare(b.category);\n });\n\n let areaMenuItem = {\n id: areaIndex + 1,\n parentId: propIndex + 1,\n label: `${area.name}(${area.nickname || ''})`,\n areaId: area.id,\n link: `/properties/${property.id}/areas/${area.id}`,\n icon: \"fa-home\",\n itemCategories: {}\n };\n\n // Check if the user can read Item\n if (ability.can('read', 'Item')) {\n area.items.forEach(item => {\n if (!item.category) return;\n const topcat_slug = iconService.getCategorySlug(item.category),\n topCategory = iconService.getIconByCategory(topcat_slug); // Null if not found\n\n if (topCategory) {\n if (!areaMenuItem.itemCategories[topcat_slug]) {\n areaMenuItem.itemCategories[topcat_slug] = {\n label: item.category,\n category: topCategory,\n link: `/properties/${property.id}/areas/${area.id}/category/${topcat_slug}`,\n };\n }\n\n if (!propMenuItem.itemCategories[topcat_slug]) {\n propMenuItem.itemCategories[topcat_slug] = {\n label: item.category,\n category: topCategory,\n link: `/properties/${property.id}/category/${topcat_slug}`,\n };\n }\n }\n });\n }\n\n propMenuItem.subItems.push(areaMenuItem); // Add area menu item if user can read Area\n });\n }\n\n menuItems.properties.subItems.push(propMenuItem);\n });\n\n commit('menuItems', menuItems);\n if (callback) callback(Object.values(menuItems));\n },\n}\n\nexport const mutations = {\n menuItems(state, menuItems) {\n state.menu = menuItems;\n },\n updateMenuItemLabel(state, { label, propertyId, areaId }) {\n let menuItem = state.menu.properties.subItems.find(p => p.propertyId == propertyId);\n if (areaId) menuItem = menuItem.subItems.find(a => a.areaId == areaId);\n\n menuItem.label = label;\n },\n // Add area to existing menu state\n addMenuItem(state, { property, area }) {\n let menuItem = state.menu.properties.subItems.find(p => p.propertyId == property.id);\n\n menuItem.subItems.push({\n id: menuItem.subItems.length,\n parentId: menuItem.id,\n label: `${area.name}(${area.nickname || ''})`,\n areaId: area.id,\n link: \"/properties/\" + property.id + \"/areas/\" + area.id,\n icon: \"bx-home-circle\"\n });\n },\n}\n","import { buildOrderUrl } from '@/helpers/api-url-builder';\n\nexport const orderService = {\n getOrders,\n getOrderById\n};\n\n\nfunction getOrders(){\n const token = localStorage.getItem(\"token\");\n const requestOptions = {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'Authorization': token,\n }\n };\n return fetch(buildOrderUrl(), requestOptions)\n .then(response => response.json()\n );\n}\n\nfunction getOrderById(id){\n const token = localStorage.getItem(\"token\");\n const requestOptions = {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'Authorization': token,\n }\n };\n return fetch(buildOrderUrl(id), requestOptions)\n .then(response => response.json()\n );\n}","import { orderService } from \"@/api/order.service.js\";\n\nexport const state = {\n orders: [],\n selectedOrder: {}\n}\n\nexport const actions = {\n getOrders({ commit }) {\n orderService.getOrders()\n .then(response => {\n commit(\"setOrders\", response);\n commit(\n 'navigation/breadcrumbAdded',\n {\n text: 'Orders',\n level: 1,\n to: `/orders`,\n active: false\n },\n { root: true }\n );\n }\n )\n },\n getOrderById({ commit }, id) {\n return orderService.getOrderById(id)\n .then(response => {\n commit(\"setSelectedOrder\", response);\n commit(\n 'navigation/breadcrumbAdded',\n {\n text: 'Orders',\n level: 1,\n to: `/orders`,\n active: false\n },\n { root: true }\n );\n commit(\n 'navigation/breadcrumbAdded',\n {\n text: response.wh_id,\n level: 2,\n to: `/orders/${response.id}`,\n active: true\n },\n { root: true }\n );\n })\n }\n};\n\nexport const mutations = {\n setOrders(state, orders) {\n state.orders = orders;\n },\n setSelectedOrder(state, order) {\n state.selectedOrder = order;\n }\n};\n","// Register each file as a corresponding Vuex module. Module nesting\n// will mirror [sub-]directory hierarchy and modules are namespaced\n// as the camelCase equivalent of their file name.\n\nimport camelCase from 'lodash/camelCase'\n\nconst modulesCache = {}\nconst storeData = { modules: {} }\n\n;(function updateModules() {\n // Allow us to dynamically require all Vuex module files.\n // https://webpack.js.org/guides/dependency-management/#require-context\n const requireModule = require.context(\n // Search for files in the current directory.\n '.',\n // Search for files in subdirectories.\n true,\n // Include any .js files that are not this file or a unit test.\n /^((?!index|\\.unit\\.).)*\\.js$/\n )\n\n // For every Vuex module...\n requireModule.keys().forEach((fileName) => {\n const moduleDefinition = requireModule(fileName)\n\n // Skip the module during hot reload if it refers to the\n // same module definition as the one we have cached.\n if (modulesCache[fileName] === moduleDefinition) return\n\n // Update the module cache, for efficient hot reloading.\n modulesCache[fileName] = moduleDefinition\n\n // Get the module path as an array.\n const modulePath = fileName\n // Remove the \"./\" from the beginning.\n .replace(/^\\.\\//, '')\n // Remove the file extension from the end.\n .replace(/\\.\\w+$/, '')\n // Split nested modules into an array path.\n .split(/\\//)\n // camelCase all module namespaces and names.\n .map(camelCase)\n\n // Get the modules object for the current path.\n const { modules } = getNamespace(storeData, modulePath)\n\n // Add the module to our modules object.\n modules[modulePath.pop()] = {\n // Modules are namespaced by default.\n namespaced: true,\n ...moduleDefinition,\n }\n })\n\n // If the environment supports hot reloading...\n if (module.hot) {\n // Whenever any Vuex module is updated...\n module.hot.accept(requireModule.id, () => {\n // Update `storeData.modules` with the latest definitions.\n updateModules()\n // Trigger a hot update in the store.\n require('@/store').default.hotUpdate({ modules: storeData.modules })\n })\n }\n})()\n\n// Recursively get the namespace of a Vuex module, even if nested.\nfunction getNamespace(subtree, path) {\n if (path.length === 1) return subtree\n\n const namespace = path.shift()\n subtree.modules[namespace] = {\n modules: {},\n namespaced: true,\n ...subtree.modules[namespace],\n }\n return getNamespace(subtree.modules[namespace], path)\n}\n\nexport default storeData.modules\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\nimport modules from './modules';\r\nimport { ability, abilityPlugin } from './ability'; // Updated import statement\r\n\r\nVue.use(Vuex);\r\n\r\nconst store = new Vuex.Store({\r\n plugins: [abilityPlugin],\r\n modules,\r\n state: {\r\n rules: []\r\n },\r\n getters: {\r\n ability() {\r\n return ability; // Use the ability instance directly\r\n }\r\n },\r\n mutations: {\r\n setRules(state, rules) {\r\n state.rules = rules;\r\n ability.update(rules); // Ensure ability is updated here as well\r\n }\r\n },\r\n strict: process.env.NODE_ENV !== 'production',\r\n});\r\n\r\nexport default store;\r\n","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-ps\": \"4c98\",\n\t\"./ar-ps.js\": \"4c98\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku-kmr\": \"7558\",\n\t\"./ku-kmr.js\": \"7558\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf755\",\n\t\"./tlh.js\": \"cf755\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","var map = {\n\t\"./ar.json\": \"af08\",\n\t\"./en.json\": \"edd4\",\n\t\"./es.json\": \"a306\",\n\t\"./fr.json\": \"f693\",\n\t\"./zh.json\": \"3504\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"49f8\";","import appConfig from \"@/app.config\";\n\nconst appHost = window.location.hostname;\nconst envConfig = appConfig.ceviz.hosts[appHost];\nconst apiRoot = `${envConfig.protocol}://${appHost}:${envConfig.port}/${appConfig.ceviz.apiNamespace}`;\n\nfunction buildUrl(resource, path) {\n return path ? `${apiRoot}/${resource}/${path}` : `${apiRoot}/${resource}`;\n}\n\nexport function buildUsersUrl(path) {\n return buildUrl('users', path);\n}\nexport function buildPropertiesUrl(path) {\n return buildUrl('properties', path);\n}\nexport function buildAreasUrl(propertyId, path) {\n return buildUrl(`properties/${propertyId}/areas`, path);\n}\nexport function buildItemsUrl(propertyId, areaId, path) {\n return buildUrl(`properties/${propertyId}/areas/${areaId}/items`, path);\n}\nexport function buildQueryUrl(path) {\n return `${apiRoot}/${path}`;\n}\nexport function buildOrderUrl(path) {\n return buildUrl('orders', path);\n}\nexport function buildSendOtpUrl(path) {\n return buildUrl('otp', path);\n}\nexport function buildVerifyOtpUrl() {\n return buildUrl('sessions/verify_otp');\n}","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\n\nVue.use(VueI18n)\n\nfunction loadLocaleMessages() {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.json$/i)\n const messages = {}\n locales.keys().forEach(key => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (matched && matched.length > 1) {\n const locale = matched[1]\n messages[locale] = locales(key)\n }\n })\n return messages\n}\n\nexport default new VueI18n({\n locale: process.env.VUE_APP_I18N_LOCALE || 'en',\n fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',\n messages: loadLocaleMessages()\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('RouterView')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=37b8b964\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// App dependencies\r\nimport Vue from 'vue';\r\nimport BootstrapVue from 'bootstrap-vue';\r\nimport VueApexCharts from 'vue-apexcharts';\r\nimport Vuelidate from 'vuelidate';\r\nimport * as VueGoogleMaps from 'vue2-google-maps';\r\nimport VueMask from 'v-mask';\r\nimport VueRouter from 'vue-router';\r\nimport vco from \"v-click-outside\";\r\nimport Scrollspy from 'vue2-scrollspy';\r\nimport VueSweetalert2 from 'vue-sweetalert2';\r\nimport tinymce from 'vue-tinymce-editor';\r\nimport VueScrollTo from 'vue-scrollto';\r\nimport moment from 'moment';\r\nimport datepicker from 'vue2-datepicker';\r\nimport VueCookies from 'vue-cookies';\r\nimport { abilitiesPlugin } from '@casl/vue';\r\nimport { ability } from './store/ability';\r\n\r\nVue.use(VueRouter);\r\n\r\nVue.use(abilitiesPlugin, ability);\r\nVue.use(vco);\r\nVue.use(Scrollspy);\r\nVue.use(VueScrollTo);\r\nVue.use(BootstrapVue);\r\nVue.use(Vuelidate);\r\nVue.use(VueMask);\r\nVue.use(require('vue-chartist'));\r\nVue.use(VueSweetalert2);\r\nVue.use(VueGoogleMaps, {\r\n load: {\r\n key: 'AIzaSyAbvyBxmMbFhrzP9Z8moyYr6dCr-pzjhBE',\r\n libraries: 'places',\r\n },\r\n installComponents: true\r\n});\r\nVue.component('apexchart', VueApexCharts);\r\nVue.component('tinymce', tinymce);\r\nVue.component('datepicker', datepicker);\r\nVue.use(VueCookies);\r\nVue.config.productionTip = false;\r\n\r\nVue.filter('formatDate', function(value) {\r\n if (value) return moment(String(value)).format('MM/DD/YYYY');\r\n});\r\n\r\n// Booting app\r\nimport router from '@/router'\r\nimport store from '@/store'\r\nimport i18n from '@/i18n'\r\nimport \"@/design/app.scss\"\r\nimport App from '@/App.vue'\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n i18n,\r\n render: h => h(App)\r\n}).$mount('#app');\r\n","export const state = {\r\n type: null,\r\n message: null\r\n};\r\n\r\nexport const mutations = {\r\n success(state, message) {\r\n state.type = 'alert-success';\r\n state.message = message;\r\n },\r\n error(state, message) {\r\n state.type = 'alert-danger';\r\n state.message = message;\r\n },\r\n clear(state) {\r\n state.type = null;\r\n state.message = null;\r\n }\r\n};\r\n\r\nexport const actions = {\r\n success({ commit }, message) {\r\n commit('success', message);\r\n },\r\n error({ commit }, message) {\r\n commit('error', message);\r\n },\r\n clear({ commit }) {\r\n commit('clear');\r\n }\r\n};\r\n","module.exports = __webpack_public_path__ + \"img/error-img.c7ae99ce.png\";","import { authHeader } from '@/helpers/auth-header';\r\nimport { buildUsersUrl, buildSendOtpUrl, buildVerifyOtpUrl} from '@/helpers/api-url-builder';\r\nimport { responseToJson, storeToken, handleResponse, handleLogout } from '@/helpers/response-helpers';\r\n\r\nexport const userService = {\r\n login,\r\n sendOtp,\r\n verifyOtp,\r\n logout,\r\n setPassword,\r\n forgotPassword,\r\n getMe,\r\n updateUser,\r\n sendSupportEmail,\r\n inviteUser\r\n};\r\n\r\nconst headers = {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n};\r\n\r\n// API calls\r\n\r\nfunction login(user) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify({ user })\r\n };\r\n\r\n return fetch(buildUsersUrl('login'), requestOptions)\r\n .then(handleResponse)\r\n .then(response => {\r\n if (response.requiresOtp) {\r\n return { requiresOtp: true };\r\n } else {\r\n return storeToken(response).then(responseToJson);\r\n }\r\n });\r\n}\r\n\r\nfunction sendOtp() {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n ...headers,\r\n ...authHeader()\r\n }\r\n };\r\n\r\n return fetch(buildSendOtpUrl('send'), requestOptions)\r\n .then(handleResponse)\r\n .then(responseToJson);\r\n}\r\n\r\nfunction verifyOtp(otp) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n ...headers,\r\n ...authHeader()\r\n },\r\n body: JSON.stringify({ otp })\r\n };\r\n console.log(\"verification reached here\");\r\n return fetch(buildVerifyOtpUrl(), requestOptions)\r\n .then(handleResponse)\r\n .then(responseToJson);\r\n}\r\n\r\n\r\nfunction logout() {\r\n const requestOptions = {\r\n method: 'DELETE',\r\n headers: {\r\n ...headers,\r\n ...authHeader()\r\n },\r\n };\r\n\r\n return fetch(buildUsersUrl('logout'), requestOptions)\r\n .then(() => handleLogout());\r\n}\r\n\r\nfunction setPassword(user) {\r\n const requestOptions = {\r\n method: 'PUT',\r\n headers,\r\n body: JSON.stringify({ user })\r\n };\r\n\r\n return fetch(buildUsersUrl('password'), requestOptions)\r\n .then(handleResponse)\r\n .then(responseToJson);\r\n}\r\n\r\nfunction forgotPassword(email) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify({ user: { email } })\r\n };\r\n\r\n return fetch(buildUsersUrl('password'), requestOptions)\r\n .then(handleResponse)\r\n .then(responseToJson);\r\n\r\n}\r\nfunction getMe() {\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: {\r\n ...headers,\r\n ...authHeader()\r\n }\r\n };\r\n\r\n return fetch(buildUsersUrl('me'), requestOptions)\r\n .then(handleResponse)\r\n .then(responseToJson);\r\n}\r\n\r\nfunction updateUser(user) {\r\n const requestOptions = {\r\n method: 'PUT',\r\n headers: {\r\n ...headers,\r\n ...authHeader()\r\n },\r\n body: JSON.stringify({ user })\r\n };\r\n\r\n return fetch(buildUsersUrl(), requestOptions)\r\n .then(handleResponse)\r\n .then(responseToJson);\r\n}\r\n\r\n\r\nfunction sendSupportEmail(email){\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n ...headers,\r\n ...authHeader()\r\n },\r\n body: JSON.stringify(email)\r\n };\r\n return fetch(buildUsersUrl('send_support_email'), requestOptions)\r\n .then(handleResponse)\r\n .then(responseToJson);\r\n}\r\n\r\nfunction inviteUser(user) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n ...headers,\r\n ...authHeader()\r\n },\r\n body: JSON.stringify({ user })\r\n };\r\n\r\n return fetch(buildUsersUrl('invite'), requestOptions)\r\n .then(handleResponse)\r\n .then(responseToJson);\r\n}\r\n","export function authHeader() {\r\n // return authorization header with jwt token\r\n let token = localStorage.getItem('token');\r\n\r\n if (token) return { 'Authorization': token };\r\n else return {};\r\n}\r\n","export function itemDataInRootState(rootState) {\n const itemId = rootState.item.selectedItemId;\n const { area, property } = areaDataInRootState(rootState)\n\n return {\n item: area.items.find(i => i.id == itemId),\n property,\n area\n };\n}\n\nexport function areaDataInRootState(rootState) {\n const propertyId = rootState.property.selectedPropertyId;\n const property = rootState.property.properties.find(p => p.id == propertyId);\n const areaId = rootState.area.selectedAreaId;\n\n return {\n area: property.areas.find(a => a.id == areaId),\n property\n };\n}\n","import { authHeader } from '@/helpers/auth-header';\nimport { buildPropertiesUrl } from '@/helpers/api-url-builder';\nimport { responseToJson, handleResponse } from '@/helpers/response-helpers';\n\nexport const propertyService = {\n getProperties,\n updateProperty,\n uploadFile,\n deleteFile\n};\n\nconst headers = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n};\n\nfunction getProperties(){\n const requestOptions = {\n method: 'GET',\n headers: {\n ...headers,\n ...authHeader(),\n }\n };\n\n return fetch(buildPropertiesUrl(), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n\nfunction updateProperty(propertyId, payload){\n const requestOptions = {\n method: 'PUT',\n headers: {\n ...headers,\n ...authHeader(),\n },\n body: JSON.stringify({ property: payload })\n };\n\n return fetch(buildPropertiesUrl(propertyId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n\nfunction uploadFile(propertyId, attachmentType, attachment){\n const data = new FormData();\n const attachmentDateType = attachmentType.substring(0, attachmentType.length - 1);\n const attachmentBlobType = attachmentDateType == 'photo' ? 'image' : 'file';\n data.append(`property[${attachmentType}_attributes][][name]`, attachment.name);\n data.append(`property[${attachmentType}_attributes][][date_of_${attachmentDateType}]`, attachment.date);\n data.append(`property[${attachmentType}_attributes][][${attachmentBlobType}]`, attachment[attachmentBlobType]);\n\n const requestOptions = {\n method: 'PUT',\n headers: {\n 'Accept': 'application/json',\n ...authHeader(),\n },\n body: data\n };\n return fetch(buildPropertiesUrl(propertyId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n\nfunction deleteFile(propertyId, attachmentType, attachmentId){\n const remove = {\n \"property\": {\n [`${attachmentType}_attributes`]: [{\n \"id\": attachmentId,\n \"_destroy\": 1\n }]\n }\n }\n const payloadString = JSON.stringify(remove);\n const requestOptions = {\n method: 'PUT',\n headers: {\n ...headers,\n ...authHeader(),\n },\n body: payloadString\n };\n\n return fetch(buildPropertiesUrl(propertyId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n","import { propertyService } from \"@/api/property.service\";\n\nconst cachedProperties = () => localStorage.getItem(\"properties\");\nconst properties = cachedProperties();\nexport const state = {\n properties: properties ? JSON.parse(properties) : [],\n selectedPropertyId: null\n}\n\nexport const actions = {\n getProperties({ commit, dispatch }, { resetCache, callback }){\n const cached = cachedProperties();\n if (!resetCache && cached && cached.length > 0) {\n commit(\"setProperties\", cached);\n if (callback) callback();\n } else {\n propertyService.getProperties()\n .then(response => {\n commit(\"setProperties\", response);\n if (callback) callback();\n dispatch(\"cacheProperties\");\n });\n }\n },\n switchProperty({ commit, state }, { id, callback }){\n const property = state.properties.find(s => s.id == id);\n commit(\"setSelectedProperty\", property);\n commit(\n 'navigation/breadcrumbAdded',\n {\n text: property.name,\n level: 1,\n propertyId: id,\n to: `/properties/${id}`,\n active: true\n },\n { root: true }\n );\n if (callback) callback();\n },\n uploadPhoto({ commit, dispatch, state }, { file, callback }){\n const propertyId = state.selectedPropertyId;\n propertyService.uploadFile(propertyId, 'photos', file)\n .then(response => {\n commit(\"setPhotos\", { propertyId: response.id, photos: response.photos });\n if (callback) callback();\n dispatch(\"cacheProperties\")\n });\n },\n deletePhoto({ commit, dispatch, state }, { id, callback }){\n const propertyId = state.selectedPropertyId;\n propertyService.deleteFile(propertyId, 'photos', id)\n .then(response => {\n commit(\"setPhotos\", { propertyId: response.id, photos: response.photos });\n if (callback) callback();\n dispatch(\"cacheProperties\")\n });\n },\n uploadDocument({ commit, dispatch, state }, { file, callback }){\n const propertyId = state.selectedPropertyId;\n propertyService.uploadFile(propertyId, 'documents', file)\n .then(response => {\n commit(\"setDocuments\", { propertyId: response.id, documents: response.documents });\n if (callback) callback();\n dispatch(\"cacheProperties\")\n });\n },\n deleteDocument({ commit, dispatch, state }, { id, callback }){\n const propertyId = state.selectedPropertyId;\n propertyService.deleteFile(propertyId, 'documents', id)\n .then(response => {\n commit(\"setDocuments\", { propertyId: response.id, documents: response.documents });\n if (callback) callback();\n dispatch(\"cacheProperties\");\n });\n },\n cacheProperties({ state }) {\n localStorage.setItem(\"properties\", JSON.stringify(state.properties));\n },\n clearProperties({ commit }) {\n commit(\"setProperties\", null);\n commit(\"setSelectedProperty\", { id: null });\n localStorage.removeItem(\"properties\");\n },\n updateProperty({ commit, dispatch }, payload) {\n const propertyId = state.selectedPropertyId;\n propertyService.updateProperty(propertyId, payload)\n .then(data => {\n commit(\"setProperty\", { propertyId, data });\n commit(\"menu/updateMenuItemLabel\", { label: data.name, propertyId }, { root: true })\n commit(\"navigation/updateBreadcrumbLabel\", { label: data.name, propertyId }, { root: true });\n dispatch('notification/success', 'Property updated.', { root: true });\n dispatch(\"cacheProperties\");\n });\n }\n};\n\nexport const mutations = {\n setProperties(state, properties) {\n state.properties = properties;\n },\n setSelectedProperty(state, property) {\n state.selectedPropertyId = property.id;\n },\n setPhotos(state, { propertyId, photos }){\n let property = state.properties.find(p => p.id == propertyId);\n property.photos = photos;\n },\n setAreaPhotos(state, { propertyId, areaId, photos}){\n let prop = state.properties.find(p => p.id == propertyId);\n let area = prop.areas.find(a => a.id == areaId);\n area.photos = photos;\n },\n setItemPhotos(state, { propertyId, areaId, itemId, photos }){\n let prop = state.properties.find(p => p.id == propertyId);\n let area = prop.areas.find(a => a.id == areaId);\n let item = area.items.find(i => i.id == itemId);\n item.photos = photos;\n },\n setDocuments(state, { propertyId, documents }){\n let prop = state.properties.find(p => p.id == propertyId);\n prop.documents = documents;\n },\n setAreaDocuments(state, { propertyId, areaId, documents}){\n let prop = state.properties.find(p => p.id == propertyId);\n let area = prop.areas.find(a => a.id == areaId);\n area.documents = documents;\n },\n setItemDocuments(state, { propertyId, areaId, itemId, documents }){\n let prop = state.properties.find(p => p.id == propertyId);\n let area = prop.areas.find(a => a.id == areaId);\n let item = area.items.find(i => i.id == itemId);\n item.documents = documents;\n },\n setProperty(state, { propertyId, data: { name, category } }){\n let prop = state.properties.find(p => p.id == propertyId);\n\n prop.name = name;\n prop.category = category;\n },\n setArea(state, { propertyId, areaId, data }){\n const prop = state.properties.find(p => p.id == propertyId);\n\n if (areaId) {\n const area = prop.areas.find(i => i.id == areaId);\n const { name, category, nickname, ceiling_height, floor_material_type, counter_top_material, counter_top_measurement, wall_material, additional_information } = data;\n\n area.name = name;\n area.category = category;\n area.nickname = nickname;\n area.ceiling_height = ceiling_height;\n area.floor_material_type = floor_material_type;\n area.counter_top_material = counter_top_material;\n area.counter_top_measurement = counter_top_measurement;\n area.wall_material = wall_material;\n area.additional_information = additional_information;\n } else prop.areas.push(data);\n },\n setItem(state, { propertyId, areaId, itemId, data }) {\n const prop = state.properties.find(p => p.id == propertyId);\n const area = prop.areas.find(a => a.id == areaId);\n if (itemId) {\n // const itemIndex = area.items.findIndex(i => i.id == itemId);\n // area.items[itemIndex] = {\n // ...area.items[itemIndex],\n // ...data\n // };\n const item = area.items.find(i => i.id == itemId);\n const {\n name, category, sub_category, note, description,\n purchase_date, approximate_price, brand_name, manufacturer,\n model_number, serial_number, per_piece_or_per_set, number_of_items,\n measurement_width, measurement_height, measurement_depth,\n year_purchased, month_purchased, country, condition, warranty_years,\n service_contract_company, extended_warranty_company,\n dimensions, item_weight, appraisal_value, heir_assigned_name, actual_cash_value,\n replacement_cost_value, auction_value, retail_value, asset_ownership_status, asset_assigned_to\n } = data;\n\n item.name = name;\n item.category = category;\n item.sub_category = sub_category;\n item.note = note;\n item.description = description;\n item.purchase_date = purchase_date;\n item.approximate_price = approximate_price;\n item.brand_name = brand_name;\n item.manufacturer = manufacturer;\n item.model_number = model_number;\n item.serial_number = serial_number;\n item.per_piece_or_per_set = per_piece_or_per_set;\n item.number_of_items = number_of_items;\n item.measurement_width = measurement_width;\n item.measurement_height = measurement_height;\n item.measurement_depth = measurement_depth;\n item.year_purchased = year_purchased;\n item.month_purchased = month_purchased;\n item.country = country;\n item.condition = condition;\n item.warranty_years = warranty_years;\n item.service_contract_company = service_contract_company;\n item.extended_warranty_company = extended_warranty_company;\n item.dimensions = dimensions;\n item.item_weight = item_weight;\n item.appraisal_value = appraisal_value;\n item.heir_assigned_name = heir_assigned_name;\n item.actual_cash_value = actual_cash_value;\n item.replacement_cost_value = replacement_cost_value;\n item.auction_value = auction_value;\n item.retail_value = retail_value;\n item.asset_ownership_status = asset_ownership_status;\n item.asset_assigned_to = asset_assigned_to;\n } else area.items.push(data);\n },\n removeItem(state, { propertyId, areaId, itemId }) {\n const prop = state.properties.find(p => p.id == propertyId);\n const area = prop.areas.find(a => a.id == areaId);\n const itemIndex = area.items.findIndex(item => item.id === itemId);\n if (itemIndex !== -1) {\n area.items.splice(itemIndex, 1);\n }\n }\n};\n","import store from \"@/store\";\n\nexport default [\n {\n path: \"/\",\n name: \"default\",\n meta: {\n authRequired: true,\n },\n component: () => import(\"@/components/pages/dashboard\"),\n // redirect: () => {\n // const properties = store.state.property.properties;\n // if (properties.length > 0) return { path: `/properties/${properties[0].id}` };\n // return { path: \"/profile\" };\n // }\n },\n {\n path: \"/login\",\n name: \"login\",\n component: () => import(\"@/components/pages/login\"),\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n if (store.getters[\"auth/loggedIn\"]) {\n // Check if OTP verified or not\n const otpVerified = store.state.auth.otpVerified;\n if (otpVerified) {\n next({ name: \"profile\" }); // Redirect to profile after OTP verified\n } else {\n next(); // Continue showing OTP verification form\n }\n } else {\n next();\n }\n },\n },\n },\n {\n path: \"/profile\",\n name: \"profile\",\n component: () => import(\"@/components/pages/profile\"),\n meta: {\n authRequired: true,\n },\n },\n {\n path: \"/forgot-password\",\n name: \"Forgot password\",\n component: () => import(\"@/components/pages/forgot-password\"),\n meta: {\n beforeResolve(routeTo, routeFrom, next) {\n // If the user is already logged in\n if (store.getters[\"auth/loggedIn\"]) {\n // Redirect to the home page instead\n next({ name: \"default\" });\n } else {\n // Continue to the login page\n next();\n }\n },\n },\n },\n {\n path: \"/set-password\",\n name: \"Set password\",\n component: () => import(\"@/components/pages/set-password\"),\n },\n {\n path: \"/logout\",\n name: \"logout\",\n meta: {\n beforeResolve() {\n store.dispatch(\"auth/logOut\");\n },\n },\n },\n {\n path: \"/properties/:id\",\n name: \"Property\",\n component: () => import(\"@/components/pages/property\"),\n meta: {\n authRequired: true,\n beforeResolve(routeTo, _, next) {\n store.dispatch(\n 'property/switchProperty',\n { id: routeTo.params.id, callback: () => next() },\n { root: true }\n );\n },\n },\n },\n {\n path: \"/properties/:propId/areas/:areaId\",\n name: \"Area\",\n component: () => import(\"@/components/pages/area\"),\n meta: {\n authRequired: true,\n beforeResolve(routeTo, _, next) {\n const callback = () => {\n store.dispatch(\n 'area/switchArea',\n { id: routeTo.params.areaId, callback: () => next() },\n { root: true }\n );\n };\n store.dispatch('property/switchProperty', { id: routeTo.params.propId, callback }, { root: true });\n },\n },\n },\n {\n path: \"/properties/:propId/areas/:areaId/items/:itemId\",\n name: \"Item\",\n component: () => import(\"@/components/pages/item\"),\n meta: {\n authRequired: true,\n beforeResolve(routeTo, _, next) {\n const areaCallback = () => {\n const itemCallback = () => {\n store.dispatch(\n 'item/switchItem',\n { id: routeTo.params.itemId, callback: () => next() },\n { root: true }\n );\n };\n store.dispatch(\n \"area/switchArea\",\n { id: routeTo.params.areaId, callback: itemCallback },\n { root: true }\n );\n };\n store.dispatch('property/switchProperty', { id: routeTo.params.propId, callback: areaCallback }, { root: true });\n },\n },\n },\n {\n path: \"/properties/:propId/category/:category\",\n name: \"Property Items\",\n component: () => import(\"@/components/pages/category-items\"),\n meta: {\n authRequired: true,\n beforeResolve(routeTo, _, next) {\n const areaCallback = () => {\n const categoryCallback = () => {\n const category = routeTo.params.category;\n store.dispatch('item/setCategory', { category }, { root: true })\n .then(next);\n };\n store.dispatch(\n \"area/resetArea\",\n { callback: categoryCallback },\n { root: true }\n );\n };\n store.dispatch('property/switchProperty', { id: routeTo.params.propId, callback: areaCallback }, { root: true });\n },\n },\n },\n {\n path: \"/properties/:propId/areas/:areaId/category/:category\",\n name: \"Area Items\",\n component: () => import(\"@/components/pages/category-items\"),\n meta: {\n authRequired: true,\n beforeResolve(routeTo, _, next) {\n const areaCallback = () => {\n const categoryCallback = () => {\n const category = routeTo.params.category;\n store.dispatch('item/setCategory', { category }, { root: true })\n .then(next);\n };\n store.dispatch(\n \"area/switchArea\",\n { id: routeTo.params.areaId, callback: categoryCallback },\n { root: true }\n );\n };\n store.dispatch('property/switchProperty', { id: routeTo.params.propId, callback: areaCallback }, { root: true });\n },\n },\n },\n {\n path: \"/items/:category?\",\n name: \"All Items\",\n component: () => import(\"@/components/pages/category-items\"),\n meta: {\n authRequired: true,\n beforeResolve(routeTo, _, next) {\n const category = routeTo.params.category;\n store.dispatch('item/setCategory', { category }, { root: true })\n .then(next);\n },\n },\n },\n {\n path: \"/orders\",\n name: \"Orders\",\n component: () => import(\"@/components/pages/order-list\"),\n meta: {\n authRequired: true,\n beforeResolve (to, from, next) {\n store.dispatch('order/getOrders', { root: true })\n .then(next);\n },\n },\n },\n {\n path: \"/reports/:propertyId\",\n name: \"Reports\",\n component: () => import(\"@/components/pages/reports\"),\n meta: {\n authRequired: true,\n }\n },\n {\n path: \"/contact\",\n name: \"contact\",\n component: () => import(\"@/components/pages/contact\"),\n meta: {\n authRequired: true,\n },\n },\n {\n path: \"/orders/:id\",\n name: \"OrderDetail\",\n component: () => import(\"@/components/pages/order-detail\"),\n meta: {\n authRequired: true,\n beforeResolve (to, from, next) {\n store.dispatch('order/getOrderById', to.params.id, { root: true })\n .then(next);\n },\n },\n },\n {\n path: \"/404\",\n name: \"404\",\n component: require(\"@/components/pages/utility/404\").default,\n },\n {\n path: \"/account\",\n name: \"Account Settings\",\n meta: { authRequired: true },\n component: () => import(\"@/components/pages/account-settings\"),\n },\n {\n path: '/reports/:propertyId/item-details',\n name: 'item-details',\n component: () => import(\"@/components/pages/item-details\"),\n props: true\n },\n {\n path: '/reports/:propertyId/item-details',\n name: 'item-details',\n component: () => import(\"@/components/pages/item-details\"),\n props: true\n },\n];\n","import Vue from 'vue';\nimport VueRouter from 'vue-router';\nimport VueMeta from 'vue-meta';\n\nimport routes from '@/router/routes';\nimport { userService } from '@/api/user.service';\n\nVue.use(VueRouter);\nVue.use(VueMeta, {\n // The component option name that vue-meta looks for meta info on.\n keyName: 'page',\n});\n\nconst router = new VueRouter({\n routes,\n // Use the HTML5 history API (i.e. normal-looking routes)\n // instead of routes with hashes (e.g. example.com/#/about).\n // This may require some server configuration in production:\n // https://router.vuejs.org/en/essentials/history-mode.html#example-server-configurations\n mode: 'history',\n // Simulate native-like scroll behavior when navigating to a new\n // route and using back/forward buttons.\n scrollBehavior(to, from, savedPosition) {\n if (savedPosition)\n return savedPosition;\n else\n return { x: 0, y: 0 };\n },\n});\n\n// Before each route evaluates...\nrouter.beforeEach((routeTo, routeFrom, next) => {\n const authpage = routeTo.meta.authRequired || false;\n const authToken = localStorage.getItem('token');\n let impersonateToken = null;\n\n if (!authToken) {\n impersonateToken = Vue.$cookies.get('Impersonate-Token');\n if (impersonateToken) localStorage.setItem('token', `Bearer ${impersonateToken}`);\n Vue.$cookies.remove('Impersonate-Token');\n }\n\n if (authpage)\n if (!authToken && !impersonateToken) {\n router.app.$store.commit('auth/authFailure', null, {root: true})\n next('/login');\n } else {\n userService.getMe()\n .then(\n (data) => {\n router.app.$store.commit('auth/authSuccess', data, { root: true });\n if (impersonateToken) {\n router.app.$store.dispatch('notification/success', `Impersonating user ${data.email}`, { root: true });\n router.app.$store.dispatch(\n \"property/getProperties\",\n {\n resetCache: true,\n callback: () => {\n const properties = router.app.$store.state.property.properties;\n if (properties.length > 0) router.push(`/properties/${properties[0].id}`);\n else router.push(\"/profile\");\n }\n },\n { root: true }\n );\n }\n next();\n },\n () => {\n router.app.$store.commit('auth/authFailure', null, { root: true });\n next('/login');\n }\n );\n }\n else next();\n});\n\nrouter.beforeResolve(async (routeTo, routeFrom, next) => {\n // Create a `beforeResolve` hook, which fires whenever\n // `beforeRouteEnter` and `beforeRouteUpdate` would. This\n // allows us to ensure data is fetched even when params change,\n // but the resolved route does not. We put it in `meta` to\n // indicate that it's a hook we created, rather than part of\n // Vue Router (yet?).\n try {\n // For each matched route...\n for (const route of routeTo.matched) {\n await new Promise((resolve, reject) => {\n // If a `beforeResolve` hook is defined, call it with\n // the same arguments as the `beforeEnter` hook.\n if (route.meta && route.meta.beforeResolve) {\n route.meta.beforeResolve(routeTo, routeFrom, (...args) => {\n // If the user chose to redirect...\n if (args.length) {\n // If redirecting to the same route we're coming from...\n // Complete the redirect.\n next(...args);\n reject(new Error('Redirected'));\n } else {\n resolve();\n }\n }\n )\n } else {\n // Otherwise, continue resolving the route.\n resolve();\n }\n }\n );\n }\n // If a `beforeResolve` hook chose to redirect, just return.\n } catch (error) {\n return;\n }\n\n // If we reach this point, continue resolving the route.\n next();\n})\n\nexport default router;\n","import { buildAreasUrl } from '@/helpers/api-url-builder';\nimport { authHeader } from '@/helpers/auth-header';\nimport { responseToJson, handleResponse } from '@/helpers/response-helpers';\n\nexport const areaService = {\n createArea,\n updateArea,\n uploadPhoto,\n deletePhoto\n};\n\nconst headers = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n};\n\nfunction createArea(propertyId, payload){\n const requestOptions = {\n method: 'POST',\n headers: {\n ...headers,\n ...authHeader(),\n },\n body: JSON.stringify({ area: payload })\n };\n\n return fetch(buildAreasUrl(propertyId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n\nfunction updateArea(propertyId, areaId, payload){\n const requestOptions = {\n method: 'PUT',\n headers: {\n ...headers,\n ...authHeader(),\n },\n body: JSON.stringify({ area: payload })\n };\n\n return fetch(buildAreasUrl(propertyId, areaId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n\nfunction uploadPhoto(propertyId, areaId, attachment){\n const data = new FormData();\n\n data.append(`area[photos_attributes][][name]`, attachment.name);\n data.append(`area[photos_attributes][][date_of_photo]`, attachment.date);\n data.append(`area[photos_attributes][][image]`, attachment.image);\n\n const requestOptions = {\n method: 'PUT',\n headers: {\n 'Accept': 'application/json',\n ...authHeader(),\n },\n body: data\n };\n return fetch(buildAreasUrl(propertyId, areaId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n\nfunction deletePhoto(propertyId, areaId, attachmentId){\n let remove = {\n \"area\": {\n \"photos_attributes\": [{\n \"id\": attachmentId,\n \"_destroy\": 1\n }]\n }\n }\n\n const requestOptions = {\n method: 'PUT',\n headers: {\n ...headers,\n ...authHeader(),\n },\n body: JSON.stringify(remove)\n };\n\n return fetch(buildAreasUrl(propertyId, areaId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n","import { areaService } from \"@/api/area.service\";\nimport { areaDataInRootState } from \"@/helpers/store-helpers\";\nimport router from '@/router/index';\n\nexport const state = {\n selectedAreaId: null\n}\n\nexport const actions = {\n resetArea({ commit }, { callback }) {\n commit(\"setSelectedArea\", null);\n if (callback) callback();\n },\n switchArea({ commit, rootState }, { id, callback }) {\n commit(\"setSelectedArea\", id);\n const { property, area } = areaDataInRootState(rootState);\n commit(\n 'navigation/breadcrumbAdded',\n {\n text: `${area.name}(${area.nickname})`,\n level: 2,\n areaId: id,\n to: `/properties/${property.id}/areas/${id}`,\n active: true\n },\n { root: true }\n );\n if (callback) callback();\n },\n uploadPhoto({ commit, dispatch, rootState }, { file, callback }) {\n const { property, area } = areaDataInRootState(rootState);\n areaService.uploadPhoto(property.id, area.id, file)\n .then(response => {\n commit(\n \"property/setAreaPhotos\",\n {\n propertyId: property.id,\n areaId: area.id,\n photos: response.photos\n },\n { root: true }\n );\n if (callback) callback();\n dispatch('property/cacheProperties', null, { root: true });\n });\n },\n deletePhoto({ commit, dispatch, rootState }, { id, callback }){\n const { property, area } = areaDataInRootState(rootState);\n areaService.deletePhoto(property.id, area.id, id)\n .then(response => {\n commit(\n \"property/setAreaPhotos\",\n {\n propertyId: property.id,\n areaId: area.id,\n photos: response.photos\n },\n { root: true }\n );\n if (callback) callback();\n dispatch('property/cacheProperties', null, { root: true });\n });\n },\n createArea({ commit, rootState, dispatch }, payload) {\n const { property } = areaDataInRootState(rootState);\n areaService.createArea(property.id, payload)\n .then(data => {\n commit(\"property/setArea\", { propertyId: property.id, data }, { root: true });\n commit(\"menu/addMenuItem\", { property, area: data }, { root: true });\n router.push({ name: 'Area', params: { propId: property.id, areaId: data.id, keepNotifications: true } });\n dispatch(\"notification/success\", 'Area created.', { root: true });\n dispatch(\"property/cacheProperties\", null, { root: true });\n });\n },\n updateArea({ commit, rootState, dispatch }, payload) {\n const { property, area } = areaDataInRootState(rootState);\n areaService.updateArea(property.id, area.id, payload)\n .then(data => {\n commit(\"property/setArea\", { propertyId: property.id, areaId: area.id, data }, { root: true });\n commit(\"menu/updateMenuItemLabel\", { label: data.name, propertyId: property.id, areaId: area.id }, { root: true })\n commit(\"navigation/updateBreadcrumbLabel\", { label: `${data.name}(${data.nickname})`, areaId: area.id }, { root: true });\n dispatch(\"notification/success\", 'Area updated.', { root: true });\n dispatch(\"property/cacheProperties\", null, { root: true });\n });\n },\n};\n\nexport const mutations = {\n setSelectedArea(state, areaId) {\n state.selectedAreaId = areaId;\n },\n};\n\nexport const getters = {\n selectedArea(_state, _getters, rootState) {\n const { area } = areaDataInRootState(rootState);\n\n return area;\n },\n\n selectedPropertyAreas(_state, _getters, rootState) {\n const { property } = areaDataInRootState(rootState);\n const areas = property.areas;\n\n return areas;\n }\n};\n","export const state = {\n breadcrumbItems: []\n};\n\nexport const mutations = {\n breadcrumbAdded(state, item){\n if(state.breadcrumbItems) {\n const parentLevel = item.level - 1;\n const parent = state.breadcrumbItems.find(existingItem => existingItem.level == parentLevel);\n if (parent) parent.active = false;\n\n state.breadcrumbItems\n .filter(existingItem => existingItem.level >= item.level)\n .forEach(existingItem => {\n const index = state.breadcrumbItems.indexOf(existingItem);\n if (index > -1) state.breadcrumbItems.splice(index, 1);\n });\n }\n state.breadcrumbItems.push(item)\n },\n parentPassive(state, parent) {\n parent.active = false\n },\n updateBreadcrumbLabel(state, { label, propertyId, areaId, itemId }) {\n let breadcrumb;\n if (propertyId) breadcrumb = state.breadcrumbItems.find(b => b.propertyId == propertyId);\n else if (areaId) breadcrumb = state.breadcrumbItems.find(b => b.areaId == areaId);\n else breadcrumb = state.breadcrumbItems.find(b => b.itemId == itemId);\n\n breadcrumb.text = label;\n }\n}\n","import { buildItemsUrl } from '@/helpers/api-url-builder';\nimport { authHeader } from '@/helpers/auth-header';\nimport { responseToJson, handleResponse } from '@/helpers/response-helpers';\n\nexport const itemService = {\n updateItem,\n createItem,\n uploadFile,\n deleteFile,\n deleteItem\n};\n\nconst headers = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n};\n\nfunction createItem(propertyId, areaId, payload){\n const requestOptions = {\n method: 'POST',\n headers: {\n ...headers,\n ...authHeader(),\n },\n body: JSON.stringify({ item: payload })\n };\n\n return fetch(buildItemsUrl(propertyId, areaId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n\nfunction updateItem(propertyId, areaId, itemId, payload){\n const requestOptions = {\n method: 'PUT',\n headers: {\n ...headers,\n ...authHeader(),\n },\n body: JSON.stringify({ item: payload })\n };\n\n return fetch(buildItemsUrl(propertyId, areaId, itemId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n\nfunction uploadFile(propertyId, areaId, itemId, attachmentType, attachment){\n const data = new FormData();\n const attachmentDateType = attachmentType.substring(0, attachmentType.length - 1);\n const attachmentBlobType = attachmentDateType == 'photo' ? 'image' : 'file';\n data.append(`item[${attachmentType}_attributes][][name]`, attachment.name);\n data.append(`item[${attachmentType}_attributes][][date_of_${attachmentDateType}]`, attachment.date);\n data.append(`item[${attachmentType}_attributes][][${attachmentBlobType}]`, attachment[attachmentBlobType]);\n\n const requestOptions = {\n method: 'PUT',\n headers: {\n 'Accept': 'application/json',\n ...authHeader(),\n },\n body: data\n };\n return fetch(buildItemsUrl(propertyId, areaId, itemId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n\nfunction deleteFile(propertyId, areaId, itemId, attachmentType, attachmentId){\n let remove = {\n \"item\": {\n [`${attachmentType}_attributes`]: [{\n \"id\": attachmentId,\n \"_destroy\": 1\n }]\n }\n }\n\n const requestOptions = {\n method: 'PUT',\n headers: {\n ...headers,\n ...authHeader(),\n },\n body: JSON.stringify(remove)\n };\n return fetch(buildItemsUrl(propertyId, areaId, itemId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n\nfunction deleteItem(propertyId, areaId, itemId){\n const requestOptions = {\n method: 'DELETE',\n headers: {\n ...headers,\n ...authHeader(),\n }\n };\n return fetch(buildItemsUrl(propertyId, areaId, itemId), requestOptions)\n .then(handleResponse)\n .then(responseToJson);\n}\n","import { itemService } from \"@/api/item.service\";\nimport { iconService } from \"@/api/icon.service\";\nimport { itemDataInRootState } from \"@/helpers/store-helpers\";\nimport router from '@/router/index';\n\nexport const state = {\n selectedItemId: null,\n category: null\n}\n\nexport const actions = {\n resetItem({ commit }) {\n commit(\"setSelectedItem\", null);\n },\n switchItem({ commit, rootState }, { id, callback }) {\n commit(\"setSelectedItem\", id);\n const { property, area, item } = itemDataInRootState(rootState);\n commit(\n 'navigation/breadcrumbAdded',\n {\n text: `${item.category} > ${item.sub_category} > ${item.name}`,\n level: 3,\n itemId: id,\n to: `/properties/${property.id}/areas/${area.id}/items/${id}`,\n active: true\n },\n { root: true }\n );\n if (callback) callback();\n },\n uploadPhoto({ commit, dispatch, rootState }, { file, callback }) {\n const { property, area, item } = itemDataInRootState(rootState);\n itemService.uploadFile(property.id, area.id, item.id, 'photos', file)\n .then(response => {\n commit(\n \"property/setItemPhotos\",\n {\n propertyId: property.id,\n areaId: area.id,\n itemId: item.id,\n photos: response.photos\n },\n { root: true }\n );\n if (callback) callback();\n dispatch('property/cacheProperties', null, { root: true });\n });\n },\n deletePhoto({ commit, dispatch, rootState }, { id, callback }){\n const { property, area, item } = itemDataInRootState(rootState);\n itemService.deleteFile(property.id, area.id, item.id, 'photos', id)\n .then(response => {\n commit(\n \"property/setItemPhotos\",\n {\n propertyId: property.id,\n areaId: area.id,\n itemId: item.id,\n photos: response.photos\n },\n { root: true }\n );\n if (callback) callback();\n dispatch('property/cacheProperties', null, { root: true });\n });\n },\n uploadDocument({ commit, dispatch, rootState }, { file, callback }) {\n const { property, area, item } = itemDataInRootState(rootState);\n itemService.uploadFile(property.id, area.id, item.id, 'documents', file)\n .then(response => {\n commit(\n \"property/setItemDocuments\",\n {\n propertyId: property.id,\n areaId: area.id,\n itemId: item.id,\n documents: response.documents\n },\n { root: true }\n );\n if (callback) callback();\n dispatch('property/cacheProperties', null, { root: true });\n });\n },\n updateDocument({ commit, dispatch, rootState }, {payload, callback }) {\n const formattedPayload = {\n documents_attributes: [{\n id: payload.documentId,\n name: payload.name,\n date_of_document: payload.date\n }]\n };\n const { property, area, item } = itemDataInRootState(rootState);\n itemService.updateItem(property.id, area.id, item.id, formattedPayload)\n .then(response => {\n commit(\n \"property/setItemDocuments\",\n {\n propertyId: property.id,\n areaId: area.id,\n itemId: item.id,\n documents: response.documents\n },\n { root: true }\n );\n if (callback) callback();\n dispatch(\"notification/success\", 'Document updated.', { root: true });\n\n dispatch('property/cacheProperties', null, { root: true });\n });\n },\n deleteDocument({ commit, dispatch, rootState }, { id, callback }){\n const { property, area, item } = itemDataInRootState(rootState);\n itemService.deleteFile(property.id, area.id, item.id, 'documents', id)\n .then(response => {\n commit(\n \"property/setItemDocuments\",\n {\n propertyId: property.id,\n areaId: area.id,\n itemId: item.id,\n documents: response.documents\n },\n { root: true }\n );\n if (callback) callback();\n dispatch('property/cacheProperties', null, { root: true });\n });\n },\n createItem({ commit, rootState, dispatch }, payload) {\n const { property, area } = itemDataInRootState(rootState);\n itemService.createItem(property.id, area.id, payload)\n .then(data => {\n commit(\"property/setItem\", { propertyId: property.id, areaId: area.id, data }, { root: true });\n router.push({ name: 'Item', params: { propId: property.id, areaId: area.id, itemId: data.id, keepNotifications: true } });\n dispatch(\"notification/success\", 'Item created.', { root: true });\n dispatch(\"property/cacheProperties\", null, { root: true });\n });\n },\n updateItem({ commit, rootState, dispatch }, payload) {\n const { property, area, item } = itemDataInRootState(rootState);\n itemService.updateItem(property.id, area.id, item.id, payload)\n .then(data => {\n commit(\n \"property/setItem\",\n { propertyId: property.id, areaId: area.id, itemId: data.id, data },\n { root: true }\n );\n commit(\n \"navigation/updateBreadcrumbLabel\",\n { label: `${data.category} > ${data.sub_category} > ${data.name}`, itemId: data.id },\n { root: true }\n );\n dispatch(\"notification/success\", 'Item updated.', { root: true });\n dispatch(\"property/cacheProperties\", null, { root: true });\n });\n },\n setCategory({ commit }, { category }) {\n let categoryPath = '/items', // All items\n icon = null;\n\n if (category) {\n categoryPath = category ? `/items/${category}` : \"/items\",\n icon = iconService.getIconByCategory(category);\n }\n\n commit(\n 'navigation/breadcrumbAdded',\n {\n text: icon ? icon.name : 'All',\n level: icon ? 2 : 1, // Root of breadcrumb when no category provided\n to: categoryPath,\n active: true\n },\n { root: true }\n );\n commit('setCategory', { category });\n },\n deleteItem({ commit, dispatch }, { id, propertyId, areaId }){\n itemService.deleteItem(propertyId, areaId, id)\n .then(() => {\n commit(\"property/removeItem\", { propertyId: propertyId, areaId: areaId, itemId: id }, { root: true });\n dispatch(\"notification/success\", 'Item deleted.', { root: true });\n dispatch(\"property/cacheProperties\", null, { root: true });\n });\n },\n updateItemArea({ commit, dispatch, rootState }, payload) {\n const { property, area, item } = itemDataInRootState(rootState);\n itemService.updateItem(property.id, area.id, item.id, payload)\n .then(data => {\n commit(\"property/removeItem\", { propertyId: property.id, areaId: area.id, itemId: item.id }, { root: true });\n commit(\n \"property/setItem\",\n { propertyId: property.id, areaId: data.area_id, data },\n { root: true }\n );\n router.push({ name: 'Item', params: { propId: property.id, areaId: data.area_id, itemId: data.id, keepNotifications: true } });\n dispatch(\"notification/success\", 'Item updated.', { root: true });\n dispatch(\"property/cacheProperties\", null, { root: true });\n });\n }\n};\n\nexport const mutations = {\n setSelectedItem(state, itemId) {\n state.selectedItemId = itemId;\n },\n setCategory(state, { category }) {\n state.category = category;\n },\n};\n\nexport const getters = {\n selectedItem(_state, _getters, rootState) {\n const { item } = itemDataInRootState(rootState);\n\n return item;\n },\n inventoryItemsByCategory(state, _getters, rootState) {\n let itemList = {};\n\n const selectedPropertyId = rootState.property.selectedPropertyId,\n selectedAreaId = rootState.area.selectedAreaId,\n property = rootState.property.properties.find(property => property.id == selectedPropertyId);\n\n if (property) {\n if (selectedAreaId) {\n const area = property.areas.find(area => area.id == selectedAreaId);\n area.items.forEach(item => {\n if (item.category) {\n const slug = iconService.getCategorySlug(item.category);\n\n if (itemList[slug] == undefined || itemList[slug] == null)\n itemList[slug] = [];\n\n item.propertyName = property.name;\n itemList[slug].push(item);\n }\n });\n } else {\n property.areas.forEach(area => {\n\n area.items.forEach(item => {\n if (item.category) {\n const slug = iconService.getCategorySlug(item.category);\n\n if (itemList[slug] == undefined || itemList[slug] == null)\n itemList[slug] = [];\n\n item.propertyName = property.name;\n itemList[slug].push(item);\n }\n });\n });\n }\n }\n\n if (state.category && itemList[state.category]) {\n return itemList[state.category];\n }\n\n return {};\n },\n inventoryItems(state, _getters, rootState) {\n let itemList = {};\n\n rootState.property.properties.forEach(property => {\n property.areas.forEach(area => {\n area.items.forEach(item => {\n if (item.category) {\n const slug = iconService.getCategorySlug(item.category);\n\n if (itemList[slug] == undefined || itemList[slug] == null)\n itemList[slug] = [];\n\n item.propertyName = area.name;\n itemList[slug].push(item);\n }\n });\n });\n });\n\n return itemList;\n }\n};\n","var map = {\n\t\"./area.js\": \"a56c\",\n\t\"./auth.js\": \"c7d4\",\n\t\"./email.js\": \"c66d\",\n\t\"./item.js\": \"b67e\",\n\t\"./menu.js\": \"1307\",\n\t\"./navigation.js\": \"b125\",\n\t\"./notification.js\": \"779a\",\n\t\"./order.js\": \"2bf4\",\n\t\"./property.js\": \"9a05\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"c3e1\";","import { userService } from \"@/api/user.service.js\";\n\nexport const state = {\n selectedEmailAddress: \"\"\n}\n\nexport const actions = {\n setSelectedEmailAddress({ commit }, emailAddress) {\n commit(\"setSelectedEmailAddress\", emailAddress)\n },\n sendSupportEmail({ commit, dispatch }, email){\n userService.sendSupportEmail(email)\n .then(() => {\n commit(\"reset\");\n dispatch(\"notification/success\", 'Email sent.', { root: true });\n });\n }\n};\n\nexport const mutations = {\n setSelectedEmailAddress(state, emailAddress) {\n state.selectedEmailAddress = emailAddress;\n },\n reset(state){\n state.selectedEmailAddress = \"\";\n }\n};\n","import { userService } from '@/api/user.service';\r\nimport router from '@/router/index';\r\n\r\nexport const state =\r\n{\r\n status: { loggingIn: false, loggedIn: false, requiresOtp: false },\r\n user: {\r\n firstName: \"\",\r\n lastName: \"\",\r\n confirmedAt: \"\",\r\n createdAt: \"\",\r\n phoneNumber: \"\",\r\n company: \"\",\r\n email: \"\",\r\n role: \"\",\r\n rules: []\r\n },\r\n}\r\n\r\nexport const getters = {\r\n loggedIn(state) {\r\n return state.status.loggedIn\r\n },\r\n requiresOtp(state) {\r\n return state.status.requiresOtp;\r\n },\r\n}\r\n\r\nexport const actions = {\r\n // Logs in the user.\r\n logIn({ dispatch, commit, rootState }, user) {\r\n commit('loginRequest');\r\n\r\n userService.login(user)\r\n .then(\r\n ({ data, message }) => {\r\n if (data.requiresOtp) {\r\n commit('otpRequired');\r\n } \r\n else {\r\n commit('setRules', data.rules, { root: true });\r\n commit('authSuccess', data, commit);\r\n dispatch('notification/success', message, { root: true });\r\n dispatch('property/getProperties', { resetCache: true, \r\n callback: ()=>{\r\n const properties = rootState.property.properties;\r\n if (properties.length > 0) router.push(`/properties/${properties[0].id}`);\r\n else router.push(\"/profile\");\r\n }\r\n },\r\n { root: true }\r\n )\r\n }\r\n },\r\n ({ error }) => {\r\n commit('authFailure');\r\n dispatch('notification/error', error, { root: true });\r\n }\r\n );\r\n },\r\n\r\n sendOtp({ dispatch }) {\r\n return userService.sendOtp()\r\n .then(\r\n response => {\r\n dispatch('notification/success', 'OTP sent successfully', { root: true });\r\n return response;\r\n },\r\n ({ error }) => {\r\n dispatch('notification/error', error, { root: true });\r\n }\r\n );\r\n },\r\n verifyOtp({ dispatch, commit, rootState }, otp) {\r\n return userService.verifyOtp(otp)\r\n .then(\r\n ({ data, message }) => {\r\n commit('otpVerified');\r\n console.log('OTP verification success:', data);\r\n console.log(\"Message: \", message);\r\n\r\n commit('setRules', data.rules, { root: true });\r\n commit('authSuccess', data);\r\n dispatch('notification/success', message, { root: true });\r\n dispatch('property/getProperties', { resetCache: true,\r\n callback: ()=>{\r\n const properties = rootState.property.properties;\r\n if (properties.length > 0) router.push(`/properties/${properties[0].id}`);\r\n else router.push(\"/profile\");\r\n }\r\n },\r\n { root: true }\r\n );\r\n },\r\n ({error}) => {\r\n console.log('OTP verification error:', error);\r\n\r\n dispatch('notification/error', error, { root: true });\r\n }\r\n );\r\n },\r\n // Logout the user\r\n logOut({ commit, dispatch }) {\r\n userService.logout();\r\n commit('setRules', null, {root: true});\r\n commit('logout');\r\n router.push('/login');\r\n dispatch(\"property/clearProperties\", null, { root: true });\r\n },\r\n forgotPassword({ dispatch }, email){\r\n userService.forgotPassword(email)\r\n .then(\r\n () => {\r\n const message = 'Your password reset request has been received. Please check your inbox.';\r\n dispatch('notification/success', message, { root: true })\r\n },\r\n ({ errors: { email } }) => {\r\n dispatch('notification/error', `Email ${email[0]}`, { root: true });\r\n }\r\n );\r\n },\r\n setPassword({ commit, dispatch }, payload){\r\n userService.setPassword(payload)\r\n .then(\r\n () => {\r\n router.push('/login');\r\n dispatch('notification/success', 'Password changed', { root: true });\r\n },\r\n ({ errors: { password, password_confirmation, reset_password_token} }) => {\r\n let message;\r\n\r\n if (password) message = `Password ${password[0]}`;\r\n else if (password_confirmation) message = `Password Confirmation ${password_confirmation[0]}`;\r\n else message = `Token ${reset_password_token[0]}`;\r\n\r\n commit('passwordFailure');\r\n dispatch('notification/error', message, { root: true });\r\n }\r\n );\r\n },\r\n updateUser({ commit, dispatch }, user) {\r\n userService.updateUser(user)\r\n .then(\r\n ({ data, message }) => {\r\n commit('updateSuccess', data);\r\n dispatch('notification/success', message, { root: true });\r\n },\r\n ({ message }) => {\r\n dispatch('notification/error', message, { root: true });\r\n }\r\n );\r\n }\r\n};\r\n\r\nexport const mutations = {\r\n loginRequest(state) {\r\n state.status = { loggingIn: true };\r\n },\r\n authSuccess(state, data) {\r\n state.status = { loggedIn: true, requiresOtp: false};\r\n let userData = {\r\n confirmedAt : data.confirmed_at,\r\n createdAt : data.created_at,\r\n firstName : data.first_name,\r\n lastName : data.last_name,\r\n phoneNumber: data.phone_number,\r\n company: data.company,\r\n email: data.email,\r\n role: data.role\r\n }\r\n state.user = userData;\r\n state.rules = [...data.rules];\r\n },\r\n otpRequired(state) {\r\n state.status = { loggingIn: false, requiresOtp: true };\r\n },\r\n otpVerified(state) {\r\n state.status = { loggedIn: true, requiresOtp: false };\r\n },\r\n authFailure(state) {\r\n state.status = {};\r\n state.user = null;\r\n },\r\n logout(state) {\r\n state.status = {};\r\n state.user = null;\r\n },\r\n passwordFailure(state) {\r\n state.status = {};\r\n },\r\n updateSuccess(state, data) {\r\n state.user.firstName = data.first_name;\r\n state.user.lastName = data.last_name;\r\n state.user.phoneNumber = data.phone_number;\r\n }\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"account-pages my-5 pt-5\"},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12\"},[_c('div',{staticClass:\"text-center mb-5\"},[_vm._m(0),_c('h4',{staticClass:\"text-uppercase\"},[_vm._v(\"Sorry, page not found\")]),_c('div',{staticClass:\"mt-5 text-center\"},[_c('router-link',{staticClass:\"btn btn-primary\",attrs:{\"to\":\"/\"}},[_vm._v(\"Back to Dashboard\")])],1)])])]),_vm._m(1)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('h1',{staticClass:\"display-2 fw-medium\"},[_vm._v(\" 4\"),_c('i',{staticClass:\"bx bx-buoy bx-spin text-primary display-3\"}),_vm._v(\"4 \")])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"row justify-content-center\"},[_c('div',{staticClass:\"col-md-8 col-xl-6\"},[_c('div',[_c('img',{staticClass:\"img-fluid\",attrs:{\"src\":require(\"@/assets/images/error-img.png\"),\"alt\":\"\"}})])])])\n}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./404.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./404.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./404.vue?vue&type=template&id=3b324f05\"\nimport script from \"./404.vue?vue&type=script&lang=js\"\nexport * from \"./404.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\r\n * Icon mapping services\r\n */\r\nexport const iconService = {\r\n getIconByCategory,\r\n getCategorySlug\r\n};\r\n\r\n// Available icons\r\nconst icons = {\r\n 'appliances-large': {\r\n icon: 'icons8-appliances-50.png',\r\n name: 'Appliances - Large'\r\n },\r\n 'appliances-small': {\r\n icon: 'icons8-blender-50.png',\r\n name: 'Appliances - Small'\r\n },\r\n 'artwork': {\r\n icon: 'icons8-easel-50.png',\r\n name: 'Artwork'\r\n },\r\n 'books': {\r\n icon: 'icons8-books-100.png',\r\n name: 'Books'\r\n },\r\n 'cleaning-maintenance': {\r\n icon: 'icons8-housekeeping-32.png',\r\n name: 'Cleaning & Maintenance'\r\n },\r\n 'clothing-childrens': {\r\n icon: 'icons8-clothes-25.png',\r\n name: 'Clothing - Childrens'\r\n },\r\n 'clothing-mens': {\r\n icon: 'icons8-formal-outfit-50.png',\r\n name: 'Clothing - Mens'\r\n },\r\n 'clothing-womens': {\r\n icon: 'icons8-dress-front-view-50.png',\r\n name: 'Clothing - Women'\r\n },\r\n 'collectibles': {\r\n icon: 'icons8-collectibles-50.png',\r\n name: 'Collectibles'\r\n },\r\n 'dinnerware': {\r\n icon: 'icons8-dish-91.png',\r\n name: 'Dinnerware'\r\n },\r\n 'electronics': {\r\n icon: 'icons8-hdtv-80.png',\r\n name: 'Electronics'\r\n },\r\n 'furniture': {\r\n icon: 'icons8-sofa-50.png',\r\n name: 'Furniture'\r\n },\r\n 'handbags-luggage': {\r\n icon: 'icons8-handbag-50.png',\r\n name: 'Handbags & Luggage'\r\n },\r\n 'health-beauty': {\r\n icon: 'icons8-hair-dryer-50.png',\r\n name: 'Health & Beauty'\r\n },\r\n 'health-fitness': {\r\n icon: 'icons8-bench-press-50.png',\r\n name: 'Health & Fitness Equipment'\r\n },\r\n 'home-decor': {\r\n icon: 'icons8-home-decoration-66.png',\r\n name: 'Home Décor'\r\n },\r\n 'jewelry': {\r\n icon: 'icons8-jewelry-32.png',\r\n name: 'Jewelry'\r\n },\r\n 'lawn-equipment': {\r\n icon: 'icons8-lawn-mower-64.png',\r\n name: 'Lawn Equipment'\r\n },\r\n 'lighting-fixtures': {\r\n icon: 'icons8-chandelier-80.png',\r\n name: 'Lighting Fixtures'\r\n },\r\n 'linens-bedding': {\r\n icon: 'icons8-bed-50.png',\r\n name: 'Linens & Bedding'\r\n },\r\n 'medical-supplies': {\r\n icon: 'icons8-wheelchair-64.png',\r\n name: 'Medical Supplies'\r\n },\r\n 'musical-instruments': {\r\n icon: 'icons8-guitar-64.png',\r\n name: 'Musical Instruments'\r\n },\r\n 'office-supplies': {\r\n icon: 'icons8-office-50.png',\r\n name: 'Office Supplies'\r\n },\r\n 'outdoor-gear': {\r\n icon: 'icons8-camping-tent-16.png',\r\n name: 'Outdoor Gear'\r\n },\r\n 'pet-products': {\r\n icon: 'icons8-pet-bowl-64.png',\r\n name: 'Pet Products'\r\n },\r\n 'shoes': {\r\n icon: 'icons8-women-shoe-100.png',\r\n name: 'Shoes'\r\n },\r\n 'sporting-goods': {\r\n icon: 'icons8-golf-clubs-50.png',\r\n name: 'Sporting Goods'\r\n },\r\n 'tools-hardware': {\r\n icon: 'icons8-drill-64.png',\r\n name: 'Tools & Hardware'\r\n },\r\n 'miscellaneous': {\r\n icon: 'icons8-camera-addon-identification-50.png',\r\n name: 'Miscellaneous'\r\n },\r\n 'null-icon': {\r\n icon: 'icons8-camera-addon-identification-50.png',\r\n name: 'Not Found'\r\n }\r\n}\r\n\r\nfunction getIconByCategory(id) {\r\n if (icons[id]) return icons[id];\r\n else return icons['null-icon'];\r\n}\r\n\r\n/**\r\n * Format category name for url inclusion\r\n */\r\nfunction getCategorySlug(category) {\r\n // to lowercase\r\n category = category.toLowerCase();\r\n // remove punctuation chars\r\n category = category.replace(/[']/g, '');\r\n // Remove non alphabetical chars\r\n category = category.replace(/[^a-z]+/g, '-');\r\n \r\n return category;\r\n}\r\n"],"sourceRoot":""}