{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/services/veterinarian-office-user.service.ts","webpack:///./src/store/index.ts","webpack:///./src/services/authentication.service.ts","webpack:///./src/services/admin-user.service.ts","webpack:///./src/constants/route.constants.ts","webpack:///./src/store/modules/authentication.module.ts","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/services/veterinarian-offices.service.ts","webpack:///./src/constants/getters.constants.ts","webpack:///./src/services/base-api.service.ts","webpack:///./src/constants/mutation.constants.ts","webpack:///./src/services/customers.service.ts","webpack:///./src/store/modules/report.module.ts","webpack:///./src/services/registered-tag.service.ts","webpack:///./src/store/modules/veterinarian.module.ts","webpack:///./src/services/report.service.ts","webpack:///./src/store/modules/veterinarian-office-user.module.ts","webpack:///./src/models/DTO/base-api-error.model.ts","webpack:///./src/router/index.ts","webpack:///./src/constants/role.constants.ts","webpack:///./src/app.vue?3221","webpack:///./src/app.vue","webpack:///./src/app.vue?fbd1","webpack:///./src/app.vue?1fa3","webpack:///./src/services/payments.service.ts","webpack:///./src/services/event-log.service.ts","webpack:///./src/dependency-injection/app.container.ts","webpack:///./src/plugins/bootstrap-vue.plugin.ts","webpack:///./src/plugins/vue-moment.plugin.ts","webpack:///./src/plugins/vee-validate.plugin.ts","webpack:///./src/plugins/vue-mq.plugin.ts","webpack:///./src/plugins/vue-toasted.plugin.ts","webpack:///./src/plugins/vue-json-csv.plugin.ts","webpack:///./src/plugins/paypal.plugin.ts","webpack:///./src/filters/local-time.filter.ts","webpack:///./src/main.ts","webpack:///./src/store/modules/customer.module.ts","webpack:///./src/filters/phone.filter.ts","webpack:///./src/store/modules/admin-user.module.ts","webpack:///./src/constants/actions.constants.ts","webpack:///./src/store/modules/registered-tag.module.ts"],"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","requireEnsure","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","getDefault","getModuleExports","object","property","oe","jsonpArray","window","oldJsonpFunction","slice","API_VERSION","VETERINARIAN_OFFICE_USER_STUB_URL","LOCKOUT_VETERINARIAN_OFFICE_USER_URL","UNLOCK_VETERINARIAN_OFFICE_USER_URL","VeterinarianOfficeUsersService","id","resp","this","_baseAPIService","client","model","put","url","replace","post","use","debug","Store","strict","ACCOUNT_URL_STUB","LOGIN_URL","CUSTOMER_LOGIN_URL","CUSTOMER_LOGIN_TOKEN_REQUEST_URL","LOGOUT_URL","REGISTER_ADMIN_URL","REGISTER_VETERINARIAN_URL","FORGOT_PASSWORD_URL","SET_PASSWORD_URL","RESET_PASSWORD_URL","CHANGE_PASSWORD_URL","REFRESH_TOKEN_URL","REVOKE_REFRESH_TOKEN_URL","REQUEST_CHANGE_EMAIL_URL","CONFIRM_CHANGE_EMAIL_URL","REGISTER_CUSTOMER_URL","REGISTER_CUSTOMER_IF_NEEDED_URL","SET_ACCEPTED_TERMS_KEY","AuthenticationService","response","setJWT","token","unsetJWT","ADMIN_USER_URL_STUB","GET_ADMIN_USER_BY_ID_URL","ADMIN_USER_LOCK_URL","ADMIN_USER_UNLOCK_URL","AdminUserService","routePath","base","admin","accounts","createAccount","addUsers","editAccount","editUsers","registrations","createCustomer","editCustomer","addCustomer","userList","veterinarian","register","qrCodeStream","createRegistration","public","scan","findTag","viewAccess","payment","paymentConfirmation","customer","customerAccess","terms","login","resetPassword","confirmEmailChange","routeName","default","AUTHENTICATION_MODULE_NAME","AuthenticationModule","isLoginComponent","showLoading","showButtonLoading","acceptedTermsToViewCustomerData","tagHasMatch","ownerAuthentication","errorResponse","loginResponse","forgotPasswordSuccess","setPasswordSuccess","resetPasswordSuccess","changePasswordSuccess","registerAdminSuccess","registerVeterinarianSuccess","requestChangeEmailSuccess","confirmChangeEmailSuccess","confirmChangeEmailIsCustomer","hasErrorMessages","context","getters","errorMessages","getAllErrorMessages","jwtData","JSON","parse","atob","split","jwtExpires","exp","expires","unix","utc","isValid","clone","jwtEmail","email","jwtRoles","roles","role","jwtVeterinarianOfficeId","veterinarianOfficeId","hasAcceptedTerms","hasTagGottaMatch","hasOwnerAuthenticated","changeComponentStateAction","payload","commit","component","loginAction","buttonLoading","isCustomer","_authenticationService","customerLogin","customerLoginTokenRequestAction","customerLoginTokenRequest","customerLoginTokenRequestMutation","refreshTokenAction","refreshToken","_revokeRefreshTokenAction","revokeToken","logoutAction","loading","logout","resetStateMutation","root","forgotPasswordAction","forgotPassword","setPasswordAction","setPassword","resetPasswordAction","changePasswordAction","changePassword","registerAdminAction","registerAdmin","registerVeterinarianAction","registerVeterinarian","requestChangeEmailAction","requestChangeEmail","confirmChangeEmailAction","confirmChangeEmail","acceptTermsAction","setAcceptedTerms","acceptTerms","tagResetMatchAction","tagMatch","tagMatchAction","resetOwnerAuthentication","authenticateOwner","show","errorModel","customerLoginTokenRequestSuccess","accepted","hasMatch","authenticated","namespaced","map","webpackContext","req","webpackContextResolve","keys","webpackContextKeys","VETERINARIAN_STUB_URL","GET_VETERINARIAN_OFFICES_URL","EDIT_VETERINARIAN_OFFICE_URL","CREATE_VETERINARIAN_OFFICE_URL","DELETE_VETERINARIAN_OFFICE_URL","GET_ALL_USERS_FOR_VETERINARIAN_OFFICE_URL","VeterinarianOfficesService","delete","AuthenticationGetters","VeterinarianGetters","AdminUserGetters","CustomerGetters","RegisteredTagGetters","VeterinarianUserGetters","BaseAPIService","a","baseURL","withCredentials","headers","params","stringify","interceptors","config","async","originalRequest","authenticationModule","status","errors","_retry","jwt","defaults","Authorization","AuthenticationMutation","VeterinarianMutation","VeterinarianOfficeUsersMutations","CustomersMutations","AdminUserMutations","RegisteredTagMutations","ReportMutations","CUSTOMERS_STUB_URL","CUSTOMERS_GET_BY_EMAIL_URL","CustomersService","encodedEmail","encodeURIComponent","REPORT_MODULE_NAME","DefaultState","showDownloading","reportErrorResponse","defaultState","ReportModule","getVeterinarianBillingReport","showReportDownloading","reportError","_reportService","getBillingReport","startDateUtc","endDateUtc","reset","assign","REGISTERED_TAG_STUB_URL","REGISTERED_TAG_CREATE_FOR_CUSTOMER_URL","REGISTERED_TAG_BY_ID_URL","REGISTERED_TAG_GET_BY_CODE_URL","CHECK_IF_TAG_EXISTS_URL","REGISTERED_TAG_GET_BY_VETERINARIAN_OFFICE_ID_URL","RegisteredTagService","vetOFficeId","VETERINARIAN_MODULE_NAME","veterinarianOffices","showTableLoading","currentVeterinarianOffice","currentVeterinarianOfficeUsers","selectedVeterinarianUserId","selectedVeterinarianOfficeId","newVeterinarianOffice","VeterinarianModule","getVeterinarianOfficesAction","showTableLoadingMutation","errorMutation","_veterinarianOfficesService","getVeterinarianOffices","setVeterinarianOfficesMutation","getVeterinarianOfficeByIdAction","showLoadingMutation","getVeterinarianOfficeById","setCurrentVeterinarianOfficeMutation","createVeterinarianOfficeAction","showButtonLoadingMutation","createVeterinarianOffice","dispatch","editVeterinarianOfficeAction","editVeterinarianOffice","deleteVeterinarianOfficeAction","deleteVeterinarianOffice","setSelectedVeterinarianUserIdAction","userId","setSelectedVeterinarianUserIdMutation","setSelectedVeterinarianOfficeIdAction","officeId","setSelectedVeterinarianOfficeIdMutation","getAllUsersForOfficeAction","getAllUsersForOffice","setCurrentVeterinarianOfficeUsersMutation","resetStateAction","resetVeterinarianOfficeUsers","newVeterinarianOfficeAction","newVeterinarianOfficeMutation","office","REPORT_STUB_URL","VETERINARIAN_BILLING_REPORT_URL","ReportService","VETERINARIAN_USER_MODULE_NAME","currentVeterinarianOfficeUser","lockOrUnlockUserSuccess","VeterinarianOfficeUserModule","getByIdAction","_veterinarianOfficeUsersService","getById","setCurrentVeterinarianOfficeUserMutation","updateVeterinarianOfficeUserAction","update","lockoutVeterinarianOfficeUserAction","setLockOrUnlockUserSuccessMutation","lockoutVeterinarianOfficeUser","unlockVeterinarianOfficeUserAction","unlockVeterinarianOfficeUser","BaseAPIErrorModel","title","traceId","Array","isArray","k","serverErrors","errorMessage","includes","LoginView","ResetPasswordView","ChangeEmailView","AdminView","VetView","PublicView","AdminUserComponent","AccountListComponent","AccountFormComponent","AccountUserFormComponent","RegistrationFormComponent","RegistrationListComponent","CustomerFormComponent","TermsComponent","ScanCodeComponent","ViewAccessComponent","OwnerDetailsComponent","OwnerAccessComponent","OwnerComponent","PaymentComponent","PaymentConfirmationComponent","QRCodeComponent","QRCodeStreamComponent","routes","path","redirect","meta","children","requiresAdmin","props","requiresAuth","requiresVeterinarian","requiresTagHasNoMatch","requiresAcceptingTerms","requiresOwnerAuthentication","router","to","from","savedPosition","x","y","Role","render","_vm","_h","$createElement","_c","_self","attrs","staticClass","staticRenderFns","App","PAYMENTS_STUB_URL","CREATE_PAYMENT_REQUEST_OBJECT_URL","VERIFY_PAYMENT_RESPONSE_URL","PaymentsService","EVENT_LOG_STUB_URL","LOG_EVENT_URL","EventLogService","logEventModel","containerBuilder","addSingleton","moment","rule","validation","entries","rules","classes","valid","invalid","dirty","validate","regex","RegExp","test","breakpoints","sm","md","lg","xl","Infinity","duration","position","singleton","catch","filter","toDate","format","productionTip","authModule","store","beforeEach","next","navRequiresAdmin","Admin","navRequiresAuth","Veterinarian","VeterinarianUser","navRequiresVeterinarian","isAfter","watcher","watch","bootstrap","h","$mount","CUSTOMERS_MODULE_NAME","customers","currentCustomer","publicCustomer","errorLookupResponse","CustomersModule","getAllCustomersAction","_customersService","getAllCustomers","setAllCustomersMutation","getCustomerByIdAction","getCustomerById","setCurrentCustomerMutation","getCustomerByEmailAction","errorLookupMutation","getCustomerByEmail","registerCustomerAction","registerCustomer","registerCustomerIfNeededAction","registerCustomerIfNeeded","updateCustomerAction","updateCustomer","setPublicCustomerAction","setPublicCustomerMutation","clearCurrentCustomerAction","clearCurrentCustomerMutation","PHONE_DISPLAY","PHONE_LINK","ADMIN_USER_MODULE_NAME","adminUsers","currentAdminUser","lockOrUnlockAdminUserSuccess","AdminUserModule","getAllAdminUsersAction","_adminUserService","getAllAdminUsers","setAllAdminUserssMutation","getAdminUserByIdAction","getAdminUserById","setCurrentAdminUserMutation","lockAdminUserAction","setLockOrUnlockAdminUserSuccessMutation","lockAdminUser","unlockAdminUserAction","unlockAdminUser","AuthenticationActions","VeterinarianActions","VeterinarianOfficeUsersActions","CustomersActions","AdminUserActions","RegisteredTagActions","ReportActions","REGISTERED_TAG_MODULE_NAME","registeredTags","currentRegisteredTag","doesTagExist","orderDetails","RegisteredTagModule","getTagByIdAction","setCurrentRegisteredTagMutation","_registeredTagService","getTagById","getTagByCodeAction","getTagByCode","isTagRegisteredAction","setDoesTagExistsMutation","isTagRegistered","getAllTagsAction","getAllTags","setRegisteredTagsMutation","getAllTagsByVeterinarianOfficeIdAction","getAllTagsByVeterinarianOfficeId","addNewTagAction","Customer","addNewTagForCustomer","addNewTag","updateTagAction","updateTag","resetCurrentTagAction","resetCurrentTagMutation","orderDetailsAction","orderDetailsMutation"],"mappings":"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","file":"js/app.37fed80e.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-0094cc87\":\"c40e4b1a\",\"chunk-08a54509\":\"3a8afae9\",\"chunk-1c68a910\":\"78bd5bca\",\"chunk-52c5fd00\":\"23753f87\",\"chunk-2d0e4539\":\"dc3e4998\",\"chunk-307bbe75\":\"b1d2c277\",\"chunk-349bd483\":\"0f6236d0\",\"chunk-354538ea\":\"9ccf7799\",\"chunk-3a6d3e7e\":\"cb10e720\",\"chunk-3d6f6735\":\"5f582fbe\",\"chunk-410ecd67\":\"d0f54048\",\"chunk-42df8a0f\":\"76421dd0\",\"chunk-510e5226\":\"6fcc5140\",\"chunk-61562db6\":\"abc5c263\",\"chunk-67f275d1\":\"74921a1d\",\"chunk-6a0857d4\":\"60087111\",\"chunk-74e3e90f\":\"120fa42f\",\"chunk-754dfe1c\":\"b5e18c78\",\"chunk-756a6aa2\":\"18c87236\",\"chunk-b54f5d4c\":\"f1415cf1\",\"chunk-bc9f1fea\":\"8763fc17\",\"chunk-d92ad664\":\"7648deb9\",\"chunk-f88cb64e\":\"4a1e8f6f\"}[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-1c68a910\":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-0094cc87\":\"31d6cfe0\",\"chunk-08a54509\":\"31d6cfe0\",\"chunk-1c68a910\":\"5e44303a\",\"chunk-52c5fd00\":\"31d6cfe0\",\"chunk-2d0e4539\":\"31d6cfe0\",\"chunk-307bbe75\":\"31d6cfe0\",\"chunk-349bd483\":\"31d6cfe0\",\"chunk-354538ea\":\"31d6cfe0\",\"chunk-3a6d3e7e\":\"31d6cfe0\",\"chunk-3d6f6735\":\"31d6cfe0\",\"chunk-410ecd67\":\"31d6cfe0\",\"chunk-42df8a0f\":\"31d6cfe0\",\"chunk-510e5226\":\"31d6cfe0\",\"chunk-61562db6\":\"31d6cfe0\",\"chunk-67f275d1\":\"31d6cfe0\",\"chunk-6a0857d4\":\"31d6cfe0\",\"chunk-74e3e90f\":\"31d6cfe0\",\"chunk-754dfe1c\":\"31d6cfe0\",\"chunk-756a6aa2\":\"31d6cfe0\",\"chunk-b54f5d4c\":\"31d6cfe0\",\"chunk-bc9f1fea\":\"31d6cfe0\",\"chunk-d92ad664\":\"31d6cfe0\",\"chunk-f88cb64e\":\"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","import { VeterinarianOfficeUser } from '@/models/DTO/veterinarian-office-user/veterinarian-office-user.model';\nimport { BaseAPIService } from './base-api.service';\nimport { Inject, injectable } from 'inversify-props';\nimport { VeterinarianOfficeUserUpdateRequest } from '@/models/DTO/veterinarian-office-user/veterinarian-office-user-update-request.model';\n\nexport interface VeterinarianOfficeUsersService {\n getById(id: string): Promise;\n update(\n model: VeterinarianOfficeUserUpdateRequest\n ): Promise;\n lockoutVeterinarianOfficeUser(id: string): Promise;\n unlockVeterinarianOfficeUser(id: string): Promise;\n}\n\nconst API_VERSION: string = process.env.VUE_APP_API_VERSION;\nconst VETERINARIAN_OFFICE_USER_STUB_URL = `/api/v${API_VERSION}/VeterinarianOfficeUsers`;\nconst LOCKOUT_VETERINARIAN_OFFICE_USER_URL = `${VETERINARIAN_OFFICE_USER_STUB_URL}/LockOutVeterinarianOfficeUsers/:id`;\nconst UNLOCK_VETERINARIAN_OFFICE_USER_URL = `${VETERINARIAN_OFFICE_USER_STUB_URL}/UnlockVeterinarianOfficeUsers/:id`;\n\n@injectable()\nexport class VeterinarianOfficeUsersService\n implements VeterinarianOfficeUsersService {\n @Inject()\n private readonly _baseAPIService!: BaseAPIService;\n\n public async getById(id: string): Promise {\n const resp = await this._baseAPIService.client.get(\n `${VETERINARIAN_OFFICE_USER_STUB_URL}/${id}`\n );\n return resp.data;\n }\n\n public async update(\n model: VeterinarianOfficeUserUpdateRequest\n ): Promise {\n const resp = await this._baseAPIService.client.put(\n `${VETERINARIAN_OFFICE_USER_STUB_URL}/${model.id}`,\n {\n ...model\n }\n );\n\n return resp.data;\n }\n\n public async lockoutVeterinarianOfficeUser(id: string): Promise {\n const url = LOCKOUT_VETERINARIAN_OFFICE_USER_URL.replace(':id', id);\n await this._baseAPIService.client.post(url);\n }\n\n public async unlockVeterinarianOfficeUser(id: string): Promise {\n const url = UNLOCK_VETERINARIAN_OFFICE_USER_URL.replace(':id', id);\n await this._baseAPIService.client.post(url);\n }\n}\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport AuthenticationModule, {\n AUTHENTICATION_MODULE_NAME\n} from '@/store/modules/authentication.module';\nimport VeterinarianModule, {\n VETERINARIAN_MODULE_NAME\n} from './modules/veterinarian.module';\nimport VeterinarianUserModule, {\n VETERINARIAN_USER_MODULE_NAME\n} from './modules/veterinarian-office-user.module';\nimport CustomersModule, {\n CUSTOMERS_MODULE_NAME\n} from './modules/customer.module';\nimport AdminUserModule, {\n ADMIN_USER_MODULE_NAME\n} from './modules/admin-user.module';\nimport RegisteredTagModule, {\n REGISTERED_TAG_MODULE_NAME\n} from './modules/registered-tag.module';\nimport ReportModule, { REPORT_MODULE_NAME } from './modules/report.module';\n\nVue.use(Vuex);\n\nconst debug = process.env.NODE_ENV !== 'production';\n\nexport default new Vuex.Store({\n modules: {\n [AUTHENTICATION_MODULE_NAME]: AuthenticationModule,\n [VETERINARIAN_MODULE_NAME]: VeterinarianModule,\n [VETERINARIAN_USER_MODULE_NAME]: VeterinarianUserModule,\n [CUSTOMERS_MODULE_NAME]: CustomersModule,\n [ADMIN_USER_MODULE_NAME]: AdminUserModule,\n [REGISTERED_TAG_MODULE_NAME]: RegisteredTagModule,\n [REPORT_MODULE_NAME]: ReportModule\n },\n strict: debug\n});\n","import { LoginModel } from '@/models/DTO/authentication/login.model';\nimport { LoginResponseModel } from '@/models/DTO/authentication/login-response.model';\nimport { ForgotPasswordModel } from '@/models/DTO/authentication/forgot-password.model';\nimport { SetPasswordModel } from '@/models/DTO/authentication/set-password.model';\nimport { ResetPasswordModel } from '@/models/DTO/authentication/reset-password.model';\nimport { ChangePasswordModel } from '@/models/DTO/authentication/change-password.model';\nimport { RegisterAdminModel } from '@/models/DTO/authentication/register-admin.model';\nimport { RegisterVeterinarianModel } from '@/models/DTO/authentication/register-veterinarian.model';\nimport { Inject, injectable } from 'inversify-props';\nimport { RequestChangeEmailModel } from '@/models/DTO/authentication/request-change-email.model';\nimport { ConfirmChangeEmailModel } from '@/models/DTO/authentication/confirm-change-email.model';\nimport { BaseAPIService } from './base-api.service';\nimport { RegisterCustomerModel } from '@/models/DTO/customer/register-customer.model';\nimport { Customer } from '@/models/DTO/customer/customer.model';\nimport { CustomerLoginTokenRequestModel } from '@/models/DTO/authentication/customer-login-token-request.model';\nimport { ConfirmChangeEmailResponseModel } from '@/models/DTO/authentication/confirm-change-email-response.model';\n\nconst API_VERSION: string = process.env.VUE_APP_API_VERSION;\nconst ACCOUNT_URL_STUB = `/api/v${API_VERSION}/Account`;\nconst LOGIN_URL = `${ACCOUNT_URL_STUB}/Login`;\nconst CUSTOMER_LOGIN_URL = `${ACCOUNT_URL_STUB}/CustomerLogin`;\nconst CUSTOMER_LOGIN_TOKEN_REQUEST_URL = `${ACCOUNT_URL_STUB}/CustomerLoginTokenRequest`;\nconst LOGOUT_URL = `${ACCOUNT_URL_STUB}/Logout`;\nconst REGISTER_ADMIN_URL = `${ACCOUNT_URL_STUB}/RegisterAdmin`;\nconst REGISTER_VETERINARIAN_URL = `${ACCOUNT_URL_STUB}/RegisterVeterinarianUser`;\nconst FORGOT_PASSWORD_URL = `${ACCOUNT_URL_STUB}/ForgotPassword`;\nconst SET_PASSWORD_URL = `${ACCOUNT_URL_STUB}/SetPassword`;\nconst RESET_PASSWORD_URL = `${ACCOUNT_URL_STUB}/ResetPassword`;\nconst CHANGE_PASSWORD_URL = `${ACCOUNT_URL_STUB}/ChangePassword`;\nexport const REFRESH_TOKEN_URL = `${ACCOUNT_URL_STUB}/RefreshToken`;\nconst REVOKE_REFRESH_TOKEN_URL = `${ACCOUNT_URL_STUB}/RevokeRefreshToken`;\nconst REQUEST_CHANGE_EMAIL_URL = `${ACCOUNT_URL_STUB}/RequestChangeEmail`;\nconst CONFIRM_CHANGE_EMAIL_URL = `${ACCOUNT_URL_STUB}/ConfirmChangeEmail`;\nconst REGISTER_CUSTOMER_URL = `${ACCOUNT_URL_STUB}/RegisterCustomer`;\nconst REGISTER_CUSTOMER_IF_NEEDED_URL = `${ACCOUNT_URL_STUB}/RegisterCustomerIfNeeded`;\nconst SET_ACCEPTED_TERMS_KEY = `${ACCOUNT_URL_STUB}/SetAcceptedTermsKey`;\n\nexport interface AuthenticationService {\n setPassword(model: SetPasswordModel): Promise;\n login(model: LoginModel): Promise;\n customerLoginTokenRequest(\n model: CustomerLoginTokenRequestModel\n ): Promise;\n customerLogin(model: LoginModel): Promise;\n logout(): Promise;\n refreshToken(): Promise;\n revokeToken(): Promise;\n forgotPassword(model: ForgotPasswordModel): Promise;\n resetPassword(model: ResetPasswordModel): Promise;\n changePassword(model: ChangePasswordModel): Promise;\n registerAdmin(model: RegisterAdminModel): Promise;\n registerVeterinarian(model: RegisterVeterinarianModel): Promise;\n registerCustomer(model: RegisterCustomerModel): Promise;\n requestChangeEmail(model: RequestChangeEmailModel): Promise;\n confirmChangeEmail(\n model: ConfirmChangeEmailModel\n ): Promise;\n setAcceptedTerms(): Promise;\n}\n\n@injectable()\nexport class AuthenticationService implements AuthenticationService {\n @Inject()\n private readonly _baseAPIService!: BaseAPIService;\n\n public async login(model: LoginModel): Promise {\n const response = await this._baseAPIService.client.post(\n LOGIN_URL,\n {\n ...model\n }\n );\n\n this._baseAPIService.setJWT(response.data.token);\n\n return {\n ...response.data\n };\n }\n\n public async customerLoginTokenRequest(\n model: CustomerLoginTokenRequestModel\n ): Promise {\n await this._baseAPIService.client.post(CUSTOMER_LOGIN_TOKEN_REQUEST_URL, {\n ...model\n });\n }\n\n public async customerLogin(model: LoginModel): Promise {\n const response = await this._baseAPIService.client.post(\n CUSTOMER_LOGIN_URL,\n {\n ...model\n }\n );\n\n this._baseAPIService.setJWT(response.data.token);\n\n return {\n ...response.data\n };\n }\n\n public async refreshToken(): Promise {\n const response = await this._baseAPIService.client.post(\n REFRESH_TOKEN_URL\n );\n\n this._baseAPIService.setJWT(response.data.token);\n\n return {\n ...response.data\n };\n }\n\n public async revokeToken(): Promise {\n await this._baseAPIService.client.post(REVOKE_REFRESH_TOKEN_URL);\n this._baseAPIService.unsetJWT();\n }\n\n public async logout(): Promise {\n await this._baseAPIService.client.post(LOGOUT_URL);\n this._baseAPIService.unsetJWT();\n }\n\n public async registerAdmin(model: RegisterAdminModel) {\n await this._baseAPIService.client.post(REGISTER_ADMIN_URL, {\n ...model\n });\n }\n\n public async registerVeterinarian(model: RegisterVeterinarianModel) {\n await this._baseAPIService.client.post(REGISTER_VETERINARIAN_URL, {\n ...model\n });\n }\n\n public async registerCustomer(\n model: RegisterCustomerModel\n ): Promise {\n const resp = await this._baseAPIService.client.post(REGISTER_CUSTOMER_URL, {\n ...model\n });\n\n return resp.data;\n }\n\n public async registerCustomerIfNeeded(\n model: RegisterCustomerModel\n ): Promise {\n const resp = await this._baseAPIService.client.post(\n REGISTER_CUSTOMER_IF_NEEDED_URL,\n {\n ...model\n }\n );\n\n return resp.data;\n }\n\n public async forgotPassword(model: ForgotPasswordModel): Promise {\n await this._baseAPIService.client.post(FORGOT_PASSWORD_URL, {\n ...model\n });\n }\n\n /**\n * This sets a password without needing the original password.\n * The new autogenerated password will be emailed to the user's\n * email address on file.\n */\n public async setPassword(model: SetPasswordModel): Promise {\n await this._baseAPIService.client.post(SET_PASSWORD_URL, {\n ...model\n });\n }\n\n /**\n * This is the second step in the forgot password functionality.\n */\n public async resetPassword(model: ResetPasswordModel): Promise {\n await this._baseAPIService.client.post(RESET_PASSWORD_URL, {\n ...model\n });\n }\n\n public async changePassword(model: ChangePasswordModel): Promise {\n await this._baseAPIService.client.post(CHANGE_PASSWORD_URL, {\n ...model\n });\n }\n\n public async requestChangeEmail(\n model: RequestChangeEmailModel\n ): Promise {\n await this._baseAPIService.client.post(REQUEST_CHANGE_EMAIL_URL, {\n ...model\n });\n }\n\n public async confirmChangeEmail(\n model: ConfirmChangeEmailModel\n ): Promise {\n const resp = await this._baseAPIService.client.post<\n ConfirmChangeEmailResponseModel\n >(CONFIRM_CHANGE_EMAIL_URL, {\n ...model\n });\n\n return resp.data;\n }\n\n public async setAcceptedTerms(): Promise {\n await this._baseAPIService.client.get(SET_ACCEPTED_TERMS_KEY);\n }\n}\n","import { Inject, injectable } from 'inversify-props';\nimport { BaseAPIService } from './base-api.service';\nimport { AdminUserModel } from '@/models/DTO/admin/admin-user.model';\n\nconst API_VERSION: string = process.env.VUE_APP_API_VERSION;\nconst ADMIN_USER_URL_STUB = `/api/v${API_VERSION}/AdminUser`;\nconst GET_ADMIN_USER_BY_ID_URL = `/api/v${API_VERSION}/AdminUser/:id`;\nconst ADMIN_USER_LOCK_URL = `/api/v${API_VERSION}/AdminUser/Lock/:id`;\nconst ADMIN_USER_UNLOCK_URL = `/api/v${API_VERSION}/AdminUser/Unlock/:id`;\n\nexport interface AdminUserService {\n getAllAdminUsers(): Promise;\n getAdminUserById(id: string): Promise;\n lockAdminUser(id: string): Promise;\n unlockAdminUser(id: string): Promise;\n}\n\n@injectable()\nexport class AdminUserService implements AdminUserService {\n @Inject()\n private readonly _baseAPIService!: BaseAPIService;\n\n public async getAllAdminUsers(): Promise {\n const resp = await this._baseAPIService.client.get(\n ADMIN_USER_URL_STUB\n );\n return resp.data;\n }\n\n public async getAdminUserById(id: string): Promise {\n const resp = await this._baseAPIService.client.get(\n GET_ADMIN_USER_BY_ID_URL.replace(':id', id)\n );\n return resp.data;\n }\n\n public async lockAdminUser(id: string): Promise {\n await this._baseAPIService.client.get(\n ADMIN_USER_LOCK_URL.replace(':id', id)\n );\n }\n\n public async unlockAdminUser(id: string): Promise {\n await this._baseAPIService.client.get(\n ADMIN_USER_UNLOCK_URL.replace(':id', id)\n );\n }\n}\n","export const routePath = {\n base: '/',\n admin: {\n base: '/admin',\n accounts: 'accounts',\n createAccount: 'account/create',\n addUsers: 'account/create/add-users',\n editAccount: 'account/:accountId',\n editUsers: 'account/:accountId/users',\n registrations: 'registrations',\n createCustomer: 'tag/:tagCode/customer/create',\n editCustomer: 'tag/:tagCode/customer/:customerId',\n addCustomer: 'tag/:tagCode/customer/add',\n userList: 'admins/list'\n },\n veterinarian: {\n base: '/veterinarian',\n register: 'register-tag',\n qrCodeStream: 'scan/qrcode',\n createRegistration: 'tag/:tagCode/registration/create',\n createCustomer: 'tag/:tagCode/customer/create',\n registrations: 'registrations',\n addCustomer: 'tag/:tagCode/customer/add',\n editCustomer: 'tag/:tagCode/customer/:customerId',\n editUsers: 'account/users'\n },\n public: {\n scan: '',\n findTag: ':tagCode',\n viewAccess: 'view/:tagCode',\n qrCodeStream: 'scan/qrcode',\n register: 'tag/:tagCode/customer/register',\n payment: 'tag/:tagCode/customer/payment',\n paymentConfirmation: 'tag/customer/confirmation',\n customer: 'customer/view',\n editCustomer: 'customer/edit',\n customerAccess: 'customer/access',\n terms: 'terms/view'\n },\n login: '/login',\n resetPassword: '/reset-password',\n confirmEmailChange: '/confirm-email-change'\n};\n\nexport const routeName = {\n admin: {\n default: 'admin',\n accounts: 'admin-vet-accounts',\n createAccount: 'admin-create-vet-account',\n addUsers: 'admin-create-add-users',\n editAccount: 'admin-manage-vet-account',\n editUsers: 'admin-manage-account-users',\n registrations: 'admin-veterinarian-registrations',\n createCustomer: 'admin-create-customer',\n addCustomer: 'admin-add-customer',\n editCustomer: 'admin-manage-customer',\n userList: 'admin-role-user-list'\n },\n veterinarian: {\n default: 'veterinarian',\n register: 'veterinarian-register-tag',\n registrations: 'veterinarian-registrations',\n createRegistration: 'veterinarian-create-tag-registration',\n createCustomer: 'veterinarian-create-customer',\n addCustomer: 'veterinarian-add-customer',\n editCustomer: 'veterinarian-manage-customer',\n qrCodeStream: 'veterinarian-qr-code-stream',\n editUsers: 'manage-account-users'\n },\n public: {\n default: 'public',\n qrCodeStream: 'public-qr-code-stream',\n scan: 'public-scan',\n findTag: 'public-find-tag',\n viewAccess: 'public-view-access',\n register: 'public-register-customer',\n payment: 'public-payment-customer',\n paymentConfirmation: 'public-payment-confirmation',\n customer: 'public-customer',\n editCustomer: 'public-manage-customer',\n customerAccess: 'public-customer-access',\n terms: 'public-terms'\n },\n login: 'login',\n resetPassword: 'reset-password',\n confirmEmailChange: 'confirm-email-change'\n};\n","import { VuexModule, Mutation, Action, Module } from 'vuex-module-decorators';\nimport {\n AuthenticationMutation,\n AdminUserMutations,\n VeterinarianMutation,\n VeterinarianOfficeUsersMutations,\n CustomersMutations,\n RegisteredTagMutations\n} from '@/constants/mutation.constants';\nimport { LoginResponseModel } from '@/models/DTO/authentication/login-response.model';\nimport { Inject } from 'inversify-props';\nimport { LoginModel } from '@/models/DTO/authentication/login.model';\nimport { AuthenticationGetters } from '@/constants/getters.constants';\nimport { AuthenticationActions } from '@/constants/actions.constants';\nimport { ForgotPasswordModel } from '@/models/DTO/authentication/forgot-password.model';\nimport { BaseAPIErrorModel } from '@/models/DTO/base-api-error.model';\nimport { SetPasswordModel } from '@/models/DTO/authentication/set-password.model';\nimport { ResetPasswordModel } from '@/models/DTO/authentication/reset-password.model';\nimport { ChangePasswordModel } from '@/models/DTO/authentication/change-password.model';\nimport { RegisterAdminModel } from '@/models/DTO/authentication/register-admin.model';\nimport { RegisterVeterinarianModel } from '@/models/DTO/authentication/register-veterinarian.model';\nimport { JWT } from '@/models/DTO/authentication/jwt.model';\nimport moment, { Moment } from 'moment';\nimport { RequestChangeEmailModel } from '@/models/DTO/authentication/request-change-email.model';\nimport { ConfirmChangeEmailModel } from '@/models/DTO/authentication/confirm-change-email.model';\nimport { AuthenticationService } from '@/services/authentication.service';\nimport { CustomerLoginTokenRequestModel } from '@/models/DTO/authentication/customer-login-token-request.model';\n\nexport const AUTHENTICATION_MODULE_NAME = 'authentication';\n\n// TODO: create default state factory function\n\n@Module({\n namespaced: true,\n name: AUTHENTICATION_MODULE_NAME\n})\nexport default class AuthenticationModule extends VuexModule {\n // #region Services\n @Inject()\n private readonly _authenticationService!: AuthenticationService;\n // #endregion\n\n // #region State\n public isLoginComponent = true;\n\n // Show for full page loading event\n public showLoading = false;\n\n // Show on button only\n public showButtonLoading = false;\n\n public acceptedTermsToViewCustomerData = false;\n public tagHasMatch = true;\n public ownerAuthentication = false;\n public errorResponse: BaseAPIErrorModel | null = null;\n public loginResponse: LoginResponseModel | null = null;\n public forgotPasswordSuccess: boolean | null = null;\n public setPasswordSuccess: boolean | null = null;\n public resetPasswordSuccess: boolean | null = null;\n public changePasswordSuccess: boolean | null = null;\n public registerAdminSuccess: boolean | null = null;\n public registerVeterinarianSuccess: boolean | null = null;\n public requestChangeEmailSuccess: boolean | null = null;\n public confirmChangeEmailSuccess: boolean | null = null;\n public confirmChangeEmailIsCustomer: boolean | null = null;\n public customerLoginTokenRequestSuccess: boolean | null;\n // #endregion\n\n // #region Getters\n public get [AuthenticationGetters.hasErrorMessages](): boolean {\n return this.context.getters[AuthenticationGetters.errorMessages].length > 0;\n }\n\n public get [AuthenticationGetters.errorMessages](): string[] {\n return this.errorResponse?.getAllErrorMessages?.() ?? [];\n }\n\n public get [AuthenticationGetters.jwtData](): JWT | null {\n return this.loginResponse?.token\n ? JSON.parse(atob(this.loginResponse.token.split('.')[1]))\n : null;\n }\n\n public get [AuthenticationGetters.jwtExpires](): Moment | null {\n const exp = this[AuthenticationGetters.jwtData]?.exp;\n\n if (!exp) {\n return null;\n }\n\n const expires = moment.unix(exp).utc();\n\n if (!expires.isValid()) {\n return null;\n }\n\n return expires.clone();\n }\n\n public get [AuthenticationGetters.jwtEmail](): string {\n return this.context.getters[AuthenticationGetters.jwtData]?.email;\n }\n\n public get [AuthenticationGetters.jwtRoles](): string[] {\n const roles =\n this.context.getters[AuthenticationGetters.jwtData]\n ?.role /* note \".role\" here */ ?? [];\n return typeof roles === 'string' ? [roles] : roles;\n }\n\n public get [AuthenticationGetters.jwtVeterinarianOfficeId](): string {\n return this.context.getters[AuthenticationGetters.jwtData]\n ?.veterinarianOfficeId;\n }\n\n public get [AuthenticationGetters.hasAcceptedTerms](): boolean {\n return this.acceptedTermsToViewCustomerData;\n }\n\n public get [AuthenticationGetters.hasTagGottaMatch](): boolean {\n return this.tagHasMatch;\n }\n\n public get [AuthenticationGetters.hasOwnerAuthenticated](): boolean {\n return this.ownerAuthentication;\n }\n // #endregion\n\n // #region Action\n @Action\n public async [AuthenticationActions.changeComponentStateAction](\n payload: boolean\n ): Promise {\n this.context.commit(AuthenticationMutation.component, payload);\n }\n\n @Action\n public async [AuthenticationActions.loginAction](payload: LoginModel) {\n try {\n this.context.commit(AuthenticationMutation.buttonLoading, true);\n\n // remove any login errors\n this.context.commit(AuthenticationMutation.error, null);\n\n let resp: LoginResponseModel | null = null;\n\n if (payload.isCustomer) {\n resp = await this._authenticationService.customerLogin({\n ...payload\n });\n } else {\n resp = await this._authenticationService.login({\n ...payload\n });\n }\n\n // success\n this.context.commit(AuthenticationMutation.login, { ...resp });\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n } finally {\n this.context.commit(AuthenticationMutation.buttonLoading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.customerLoginTokenRequestAction](\n payload: CustomerLoginTokenRequestModel\n ) {\n try {\n this.context.commit(AuthenticationMutation.buttonLoading, true);\n\n // remove any login errors\n this.context.commit(AuthenticationMutation.error, null);\n\n await this._authenticationService.customerLoginTokenRequest({\n ...payload\n });\n\n // success\n this.context.commit(\n AuthenticationMutation.customerLoginTokenRequestMutation,\n true\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n } finally {\n this.context.commit(AuthenticationMutation.buttonLoading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.refreshTokenAction]() {\n try {\n const resp = await this._authenticationService.refreshToken();\n\n // success same as login\n this.context.commit(AuthenticationMutation.login, { ...resp });\n } catch (error) {\n if (error?.response?.data) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n this.context.commit(AuthenticationMutation.error, e);\n } else {\n console.log(error);\n }\n }\n }\n\n /**\n * This should only be called by the logout action.\n * It removes an HTTPS cookie for the refresh token.\n *\n * @param {RevokeTokenModel} [payload]\n * @memberof AuthenticationModule\n */\n @Action /* yes, private! */\n private async [AuthenticationActions._revokeRefreshTokenAction]() {\n try {\n // remove any login errors\n this.context.commit(AuthenticationMutation.error, null);\n\n await this._authenticationService.revokeToken();\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n }\n }\n\n @Action\n public async [AuthenticationActions.logoutAction]() {\n try {\n this.context.commit(AuthenticationMutation.loading, true);\n\n // remove any login errors\n this.context.commit(AuthenticationMutation.error, null);\n\n await this._authenticationService.logout();\n\n this.context.commit(\n `adminUser/${AdminUserMutations.resetStateMutation}`,\n null,\n {\n root: true\n }\n );\n this.context.commit(\n `veterinarian/${VeterinarianMutation.resetStateMutation}`,\n null,\n {\n root: true\n }\n );\n this.context.commit(\n `veterinarianUser/${VeterinarianOfficeUsersMutations.resetStateMutation}`,\n null,\n {\n root: true\n }\n );\n this.context.commit(\n `customers/${CustomersMutations.resetStateMutation}`,\n null,\n {\n root: true\n }\n );\n this.context.commit(\n `registeredTag/${RegisteredTagMutations.resetStateMutation}`,\n null,\n {\n root: true\n }\n );\n this.context.commit(AuthenticationMutation.logout);\n } catch (error) {\n console.log(error.response.data);\n } finally {\n this.context.commit(AuthenticationMutation.loading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.forgotPasswordAction](\n payload: ForgotPasswordModel\n ) {\n try {\n this.context.commit(AuthenticationMutation.buttonLoading, true);\n\n // remove any errors\n this.context.commit(AuthenticationMutation.error, null);\n\n await this._authenticationService.forgotPassword({\n ...payload\n });\n\n // success\n this.context.commit(AuthenticationMutation.forgotPassword, true);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n } finally {\n this.context.commit(AuthenticationMutation.buttonLoading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.setPasswordAction](\n payload: SetPasswordModel\n ) {\n try {\n // Loading is not needed for this operation\n // this.context.commit(AuthenticationMutation.loading, true);\n\n // remove any errors\n this.context.commit(AuthenticationMutation.error, null);\n\n await this._authenticationService.setPassword({\n ...payload\n });\n\n // success\n this.context.commit(AuthenticationMutation.setPassword, true);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n } finally {\n this.context.commit(AuthenticationMutation.loading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.resetPasswordAction](\n payload: ResetPasswordModel\n ) {\n try {\n this.context.commit(AuthenticationMutation.buttonLoading, true);\n\n // remove any errors\n this.context.commit(AuthenticationMutation.error, null);\n\n await this._authenticationService.resetPassword({\n ...payload\n });\n\n // success\n this.context.commit(AuthenticationMutation.resetPassword, true);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n } finally {\n this.context.commit(AuthenticationMutation.buttonLoading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.changePasswordAction](\n payload: ChangePasswordModel\n ) {\n try {\n this.context.commit(AuthenticationMutation.buttonLoading, true);\n\n // remove any errors\n this.context.commit(AuthenticationMutation.error, null);\n\n await this._authenticationService.changePassword({\n ...payload\n });\n\n // success\n this.context.commit(AuthenticationMutation.changePassword, true);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n } finally {\n this.context.commit(AuthenticationMutation.buttonLoading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.registerAdminAction](\n payload: RegisterAdminModel\n ) {\n try {\n this.context.commit(AuthenticationMutation.buttonLoading, true);\n\n // remove any errors\n this.context.commit(AuthenticationMutation.error, null);\n\n await this._authenticationService.registerAdmin({\n ...payload\n });\n\n // success\n this.context.commit(AuthenticationMutation.registerAdmin, true);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n } finally {\n this.context.commit(AuthenticationMutation.buttonLoading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.registerVeterinarianAction](\n payload: RegisterVeterinarianModel\n ) {\n try {\n this.context.commit(AuthenticationMutation.buttonLoading, true);\n\n // remove any errors\n this.context.commit(AuthenticationMutation.error, null);\n\n await this._authenticationService.registerVeterinarian({\n ...payload\n });\n\n // success\n this.context.commit(AuthenticationMutation.registerVeterinarian, true);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n } finally {\n this.context.commit(AuthenticationMutation.buttonLoading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.requestChangeEmailAction](\n payload: RequestChangeEmailModel\n ) {\n try {\n this.context.commit(AuthenticationMutation.buttonLoading, true);\n\n // remove any errors\n this.context.commit(AuthenticationMutation.error, null);\n\n await this._authenticationService.requestChangeEmail({\n ...payload\n });\n\n // success\n this.context.commit(AuthenticationMutation.requestChangeEmail, true);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n } finally {\n this.context.commit(AuthenticationMutation.buttonLoading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.confirmChangeEmailAction](\n payload: ConfirmChangeEmailModel\n ) {\n try {\n this.context.commit(AuthenticationMutation.loading, true);\n\n // remove any errors\n this.context.commit(AuthenticationMutation.error, null);\n\n const {\n isCustomer\n } = await this._authenticationService.confirmChangeEmail({\n ...payload\n });\n\n // success\n this.context.commit(AuthenticationMutation.confirmChangeEmail, [\n true,\n isCustomer\n ]);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AuthenticationMutation.error, e);\n } finally {\n this.context.commit(AuthenticationMutation.loading, false);\n }\n }\n\n @Action\n public async [AuthenticationActions.acceptTermsAction](\n payload: boolean\n ): Promise {\n this.context.commit(AuthenticationMutation.loading, true);\n\n await this._authenticationService.setAcceptedTerms();\n\n this.context.commit(AuthenticationMutation.acceptTerms, payload);\n this.context.commit(AuthenticationMutation.loading, false);\n }\n\n @Action\n public async [AuthenticationActions.tagResetMatchAction](): Promise {\n return this.context.commit(AuthenticationMutation.tagMatch, true);\n }\n\n @Action\n public async [AuthenticationActions.tagMatchAction](\n payload: boolean\n ): Promise {\n return this.context.commit(AuthenticationMutation.tagMatch, payload);\n }\n\n @Action\n public async [AuthenticationActions.resetOwnerAuthentication](): Promise<\n void\n > {\n return this.context.commit(AuthenticationMutation.authenticateOwner, false);\n }\n\n @Action\n public async [AuthenticationActions.authenticateOwner](\n payload: boolean\n ): Promise {\n return this.context.commit(\n AuthenticationMutation.authenticateOwner,\n payload\n );\n }\n // #endregion\n\n // #region Mutation\n @Mutation\n private [AuthenticationMutation.loading](show: boolean) {\n this.showLoading = show;\n }\n\n @Mutation\n private [AuthenticationMutation.buttonLoading](show: boolean) {\n this.showButtonLoading = show;\n }\n\n @Mutation\n private [AuthenticationMutation.component](isLoginComponent: boolean) {\n this.isLoginComponent = isLoginComponent;\n }\n\n @Mutation\n private [AuthenticationMutation.error](errorModel: BaseAPIErrorModel | null) {\n this.errorResponse = errorModel;\n }\n\n @Mutation\n private [AuthenticationMutation.login](response: LoginResponseModel | null) {\n if (response === null) {\n this.loginResponse = response;\n } else {\n this.loginResponse = {\n ...response\n };\n }\n }\n\n @Mutation\n private [AuthenticationMutation.customerLoginTokenRequestMutation](\n data: boolean | null\n ) {\n this.customerLoginTokenRequestSuccess = data;\n }\n\n @Mutation\n private [AuthenticationMutation.logout]() {\n this.loginResponse = null;\n }\n\n @Mutation\n private [AuthenticationMutation.forgotPassword](response: boolean | null) {\n this.forgotPasswordSuccess = response;\n }\n\n @Mutation\n private [AuthenticationMutation.setPassword](response: boolean | null) {\n this.setPasswordSuccess = response;\n }\n\n @Mutation\n private [AuthenticationMutation.resetPassword](response: boolean | null) {\n this.resetPasswordSuccess = response;\n }\n\n @Mutation\n private [AuthenticationMutation.changePassword](response: boolean | null) {\n this.changePasswordSuccess = response;\n }\n\n @Mutation\n private [AuthenticationMutation.registerAdmin](response: boolean | null) {\n this.registerAdminSuccess = response;\n }\n\n @Mutation\n private [AuthenticationMutation.registerVeterinarian](\n response: boolean | null\n ) {\n this.registerVeterinarianSuccess = response;\n }\n\n @Mutation\n private [AuthenticationMutation.requestChangeEmail](\n response: boolean | null\n ) {\n this.requestChangeEmailSuccess = response;\n }\n\n @Mutation\n private [AuthenticationMutation.confirmChangeEmail](response: boolean[]) {\n this.confirmChangeEmailSuccess = response[0];\n this.confirmChangeEmailIsCustomer = response[1];\n }\n\n @Mutation\n private [AuthenticationMutation.acceptTerms](accepted: boolean) {\n this.acceptedTermsToViewCustomerData = accepted;\n }\n\n @Mutation\n private [AuthenticationMutation.tagMatch](hasMatch: boolean) {\n this.tagHasMatch = hasMatch;\n }\n\n @Mutation\n private [AuthenticationMutation.authenticateOwner](authenticated: boolean) {\n this.ownerAuthentication = authenticated;\n }\n // #endregion\n}\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-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.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-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.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\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\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\";","import { VeterinarianOffice } from '@/models/DTO/veterinarian-office/veterinarian-office.model';\nimport { Inject, injectable } from 'inversify-props';\nimport { BaseAPIService } from './base-api.service';\nimport { VeterinarianOfficeUser } from '@/models/DTO/veterinarian-office-user/veterinarian-office-user.model';\n\nconst API_VERSION: string = process.env.VUE_APP_API_VERSION;\nconst VETERINARIAN_STUB_URL = `/api/v${API_VERSION}/VeterinarianOffices`;\nconst GET_VETERINARIAN_OFFICES_URL = VETERINARIAN_STUB_URL;\nconst EDIT_VETERINARIAN_OFFICE_URL = VETERINARIAN_STUB_URL;\nconst CREATE_VETERINARIAN_OFFICE_URL = VETERINARIAN_STUB_URL;\nconst DELETE_VETERINARIAN_OFFICE_URL = VETERINARIAN_STUB_URL;\nconst GET_ALL_USERS_FOR_VETERINARIAN_OFFICE_URL =\n VETERINARIAN_STUB_URL + '/:id/Users';\n\nexport interface VeterinarianOfficesService {\n getVeterinarianOffices(): Promise;\n getVeterinarianOfficeById(id: string): Promise;\n createVeterinarianOffice(\n model: VeterinarianOffice\n ): Promise;\n editVeterinarianOffice(\n model: VeterinarianOffice\n ): Promise;\n deleteVeterinarianOffice(id: string): Promise;\n getAllUsersForOffice(id: string): Promise;\n}\n\n@injectable()\nexport class VeterinarianOfficesService implements VeterinarianOfficesService {\n @Inject()\n private readonly _baseAPIService!: BaseAPIService;\n\n public async getVeterinarianOffices(): Promise {\n const resp = await this._baseAPIService.client.get(\n GET_VETERINARIAN_OFFICES_URL\n );\n\n return resp.data;\n }\n\n public async getVeterinarianOfficeById(\n id: string\n ): Promise {\n const resp = await this._baseAPIService.client.get(\n `${GET_VETERINARIAN_OFFICES_URL}/${id}`\n );\n\n return resp.data;\n }\n\n public async createVeterinarianOffice(\n model: VeterinarianOffice\n ): Promise {\n const resp = await this._baseAPIService.client.post(\n CREATE_VETERINARIAN_OFFICE_URL,\n {\n ...model\n }\n );\n\n return resp.data;\n }\n\n public async editVeterinarianOffice(\n model: VeterinarianOffice\n ): Promise {\n const resp = await this._baseAPIService.client.put(\n `${EDIT_VETERINARIAN_OFFICE_URL}/${model.id}`,\n {\n ...model\n }\n );\n\n return resp.data;\n }\n\n public async deleteVeterinarianOffice(\n id: string\n ): Promise {\n const resp = await this._baseAPIService.client.delete(\n `${DELETE_VETERINARIAN_OFFICE_URL}/${id}`\n );\n\n return resp.data;\n }\n\n public async getAllUsersForOffice(\n id: string\n ): Promise {\n const url = GET_ALL_USERS_FOR_VETERINARIAN_OFFICE_URL.replace(':id', id);\n\n const resp = await this._baseAPIService.client.get(url);\n return resp.data;\n }\n}\n","export enum AuthenticationGetters {\n hasErrorMessages = 'hasErrorMessages',\n errorMessages = 'errorMessages',\n jwtData = 'jwtData',\n jwtEmail = 'jwtEmail',\n jwtRoles = 'jwtRoles',\n jwtExpires = 'jwtExpires',\n jwtVeterinarianOfficeId = 'jwtVeterinarianOfficeId',\n hasAcceptedTerms = 'hasAcceptedTerms',\n hasTagGottaMatch = 'hasTagGottaMatch',\n hasOwnerAuthenticated = 'hasOwnerAuthenticated'\n}\n\nexport enum VeterinarianGetters {\n hasErrorMessages = 'hasErrorMessages',\n errorMessages = 'errorMessages'\n}\n\nexport enum AdminUserGetters {\n hasErrorMessages = 'hasErrorMessages',\n errorMessages = 'errorMessages'\n}\n\nexport enum CustomerGetters {\n hasErrorMessages = 'hasErrorMessages',\n errorMessages = 'errorMessages'\n}\n\nexport enum RegisteredTagGetters {\n hasErrorMessages = 'hasErrorMessages',\n errorMessages = 'errorMessages'\n}\n\nexport enum VeterinarianUserGetters {\n hasErrorMessages = 'hasErrorMessages',\n errorMessages = 'errorMessages'\n}\n","import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';\nimport qs from 'qs';\nimport AuthenticationModule from '@/store/modules/authentication.module';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '@/store';\nimport { REFRESH_TOKEN_URL } from './authentication.service';\nimport router from '@/router';\nimport { routeName } from '@/constants/route.constants';\nimport { AuthenticationActions } from '@/constants/actions.constants';\nimport { injectable } from 'inversify-props';\n\nexport interface BaseAPIService {\n setJWT(jwt: string): void;\n unsetJWT(): void;\n}\n\n@injectable()\nexport class BaseAPIService implements BaseAPIService {\n public readonly client: AxiosInstance;\n\n constructor() {\n this.client = axios.create({\n baseURL: process.env.VUE_APP_API_BASE_URL,\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/json'\n },\n paramsSerializer(params) {\n return qs.stringify(params);\n }\n });\n\n // request interceptor\n this.client.interceptors.request.use(\n (config) => {\n // console.log('params');\n // console.log(config.params);\n\n // console.log('data');\n // console.log(config.data);\n\n return config;\n },\n (error) => {\n console.error('base api service request error');\n console.error(error);\n\n return Promise.reject(error);\n }\n );\n\n // response interceptor\n this.client.interceptors.response.use(\n (response) => {\n // Any status code that lie within the range of 2xx cause this function to trigger\n // console.log('response');\n // console.log(response);\n\n return response;\n },\n async (error) => {\n // Any status codes that falls outside the range of 2xx cause this function to trigger\n const originalRequest: AxiosRequestConfig & {\n _retry: boolean;\n } = error.config;\n\n const authenticationModule: AuthenticationModule = getModule(\n AuthenticationModule,\n store\n );\n\n if (error.response.status >= 400 && error.response.status <= 499) {\n // handle individual cases in this block\n\n if (originalRequest.url === REFRESH_TOKEN_URL) {\n await router.replace({ name: routeName.login });\n throw error;\n }\n\n if (error.response.status === 403) {\n error.response.data = {\n errors: ['Forbidden.']\n };\n throw error;\n }\n\n // don't throw error here\n }\n\n if (error.response.status === 401 && !originalRequest._retry) {\n originalRequest._retry = true;\n\n await authenticationModule[\n AuthenticationActions.refreshTokenAction\n ]();\n\n originalRequest.headers[\n 'Authorization'\n ] = `Bearer ${authenticationModule.loginResponse?.token}`;\n\n return await this.client(originalRequest);\n }\n\n throw error;\n }\n );\n }\n\n public setJWT(jwt: string): void {\n this.client.defaults.headers = {\n ...this.client.defaults.headers,\n Authorization: 'Bearer ' + jwt\n };\n }\n\n public unsetJWT(): void {\n if (this.client.defaults.headers['Authorization']) {\n delete this.client.defaults.headers['Authorization'];\n }\n }\n}\n","export enum AuthenticationMutation {\n loading = 'showLoadingMutation',\n buttonLoading = 'showButtonLoadingMutation',\n component = 'changeComponentStateMutation',\n error = 'errorMutation',\n login = 'loginMutation',\n forgotPassword = 'forgotPasswordMutation',\n setPassword = 'setPasswordMutation',\n logout = 'logoutMutation',\n resetPassword = 'resetPasswordMutation',\n acceptTerms = 'acceptTermsMutation',\n tagMatch = 'tagMatchMutation',\n changePassword = 'changePasswordMutation',\n registerAdmin = 'registerAdminMutation',\n registerVeterinarian = 'registerVeterinarianMutation',\n authenticateOwner = 'authenticateOwnerMutation',\n requestChangeEmail = 'requestChangeEmailMutation',\n confirmChangeEmail = 'confirmChangeEmailMutation',\n customerLoginTokenRequestMutation = 'customerLoginTokenRequestMutation'\n}\n\nexport enum VeterinarianMutation {\n showLoadingMutation = 'showLoadingMutation',\n showButtonLoadingMutation = 'showButtonLoadingMutation',\n showTableLoadingMutation = 'showTableLoadingMutation',\n errorMutation = 'errorMutation',\n setVeterinarianOfficesMutation = 'setVeterinarianOfficesMutation',\n setCurrentVeterinarianOfficeMutation = 'setCurrentVeterinarianOfficeMutation',\n setSelectedVeterinarianOfficeIdMutation = 'setSelectedVeterinarianOfficeIdMutation',\n setSelectedVeterinarianUserIdMutation = 'setSelectedVeterinarianUserIdMutation',\n setCurrentVeterinarianOfficeUsersMutation = 'setCurrentVeterinarianOfficeUsersMutation',\n resetStateMutation = 'resetStateMutation',\n resetVeterinarianOfficeUsers = 'resetVeterinarianOfficeUsersMutation',\n newVeterinarianOfficeMutation = 'newVeterinarianOfficeMutation'\n}\n\nexport enum VeterinarianOfficeUsersMutations {\n showLoadingMutation = 'showLoadingMutation',\n showButtonLoadingMutation = 'showButtonLoadingMutation',\n errorMutation = 'errorMutation',\n setCurrentVeterinarianOfficeUserMutation = 'setCurrentVeterinarianOfficeUserMutation',\n setLockOrUnlockUserSuccessMutation = 'setLockOrUnlockUserSuccessMutation',\n resetStateMutation = 'resetStateMutation'\n}\n\nexport enum CustomersMutations {\n showLoadingMutation = 'showLoadingMutation',\n showButtonLoadingMutation = 'showButtonLoadingMutation',\n errorMutation = 'errorMutation',\n errorLookupMutation = 'errorLookupMutation',\n setAllCustomersMutation = 'setAllCustomersMutation',\n resetStateMutation = 'resetStateMutation',\n setCurrentCustomerMutation = 'setCurrentCustomerMutation',\n setPublicCustomerMutation = 'setPublicCustomerMutation',\n clearCurrentCustomerMutation = 'clearCurrentCustomerMutation'\n}\n\nexport enum AdminUserMutations {\n showLoadingMutation = 'showLoadingMutation',\n showTableLoadingMutation = 'showTableLoadingMutation',\n errorMutation = 'errorMutation',\n setAllAdminUserssMutation = 'setAllAdminUserssMutation',\n resetStateMutation = 'resetStateMutation',\n setCurrentAdminUserMutation = 'setCurrentAdminUserMutation',\n setLockOrUnlockAdminUserSuccessMutation = 'setLockOrUnlockAdminUserSuccessMutation'\n}\n\nexport enum RegisteredTagMutations {\n showLoadingMutation = 'showLoadingMutation',\n showButtonLoadingMutation = 'showButtonLoadingMutation',\n showTableLoadingMutation = 'showTableLoadingMutation',\n errorMutation = 'errorMutation',\n resetStateMutation = 'resetStateMutation',\n setCurrentRegisteredTagMutation = 'setCurrentRegisteredTagMutation',\n setRegisteredTagsMutation = 'setRegisteredTagsMutation',\n setDoesTagExistsMutation = 'setDoesTagExistsMutation',\n resetCurrentTagMutation = 'resetCurrentTagMutation',\n orderDetailsMutation = 'orderDetailsMutation'\n}\n\nexport enum ReportMutations {\n showReportDownloading = 'showReportDownloadingMutation',\n reportError = 'reportErrorMutation',\n reset = 'resetMutation'\n}\n","import { Inject, injectable } from 'inversify-props';\nimport { BaseAPIService } from './base-api.service';\nimport { Customer } from '@/models/DTO/customer/customer.model';\nimport { CustomerUpdateRequest } from '@/models/DTO/customer/customer-update-request.model';\n\nconst API_VERSION: string = process.env.VUE_APP_API_VERSION;\nconst CUSTOMERS_STUB_URL = `/api/v${API_VERSION}/Customers`;\nconst CUSTOMERS_GET_BY_EMAIL_URL = `${CUSTOMERS_STUB_URL}/GetByEmail?email=`;\n\nexport interface CustomersService {\n getAllCustomers(): Promise;\n getCustomerById(id: string): Promise;\n getCustomerByEmail(email: string): Promise;\n updateCustomer(model: CustomerUpdateRequest): Promise;\n}\n\n@injectable()\nexport class CustomersService implements CustomersService {\n @Inject()\n private readonly _baseAPIService!: BaseAPIService;\n\n public async getAllCustomers(): Promise {\n const resp = await this._baseAPIService.client.get(\n CUSTOMERS_STUB_URL\n );\n return resp.data;\n }\n\n public async getCustomerById(id: string): Promise {\n const resp = await this._baseAPIService.client.get(\n CUSTOMERS_STUB_URL + `/${id}`\n );\n return resp.data;\n }\n\n public async getCustomerByEmail(email: string): Promise {\n const encodedEmail = encodeURIComponent(email);\n\n const resp = await this._baseAPIService.client.get(\n CUSTOMERS_GET_BY_EMAIL_URL + encodedEmail\n );\n\n return resp.data;\n }\n\n public async updateCustomer(model: CustomerUpdateRequest): Promise {\n const resp = await this._baseAPIService.client.put(\n CUSTOMERS_STUB_URL + `/${model.id}`,\n {\n ...model\n }\n );\n return resp.data;\n }\n}\n","import { Module, VuexModule, Action, Mutation } from 'vuex-module-decorators';\nimport { Inject } from 'inversify-props';\nimport { BaseAPIErrorModel } from '@/models/DTO/base-api-error.model';\nimport { ReportService } from '@/services/report.service';\nimport { ReportActions } from '@/constants/actions.constants';\nimport { ReportMutations } from '@/constants/mutation.constants';\nimport { BillingReportRequest } from '@/models/DTO/report/billing-report-request.model';\n\nexport const REPORT_MODULE_NAME = 'report';\n\nclass DefaultState {\n public showDownloading = false;\n public reportErrorResponse: BaseAPIErrorModel | null = null;\n}\n\nconst defaultState = new DefaultState();\n\n@Module({\n namespaced: true,\n name: REPORT_MODULE_NAME\n})\nexport default class ReportModule extends VuexModule {\n @Inject()\n private readonly _reportService!: ReportService;\n\n public showDownloading = defaultState.showDownloading;\n public reportErrorResponse = defaultState.reportErrorResponse;\n\n @Action\n public async [ReportActions.getVeterinarianBillingReport](\n payload: BillingReportRequest\n ): Promise {\n try {\n this.context.commit(ReportMutations.showReportDownloading, true);\n this.context.commit(ReportMutations.reportError, null);\n\n const response: string = await this._reportService.getBillingReport(\n payload.startDateUtc,\n payload.endDateUtc\n );\n\n return response;\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(ReportMutations.reportError, e);\n return null;\n } finally {\n this.context.commit(ReportMutations.showReportDownloading, false);\n }\n }\n\n @Mutation\n private [ReportMutations.showReportDownloading](show: boolean) {\n this.showDownloading = show;\n }\n\n @Mutation\n private [ReportMutations.reset]() {\n Object.assign(this, defaultState);\n }\n\n @Mutation\n private [ReportMutations.reportError](errorModel: BaseAPIErrorModel | null) {\n this.reportErrorResponse = errorModel;\n }\n}\n","import { Inject, injectable } from 'inversify-props';\nimport { BaseAPIService } from './base-api.service';\nimport { RegisteredTag } from '@/models/DTO/registered-tag/registered-tag.model';\nimport { RegisteredTagRequest } from '@/models/DTO/registered-tag/registered-tag-request.model';\nimport { CheckIfTagExistsResponse } from '@/models/DTO/registered-tag/check-if-tag-exists-response.model';\nimport { UpdateRegisteredTagRequest } from '@/models/DTO/registered-tag/update-registered-tag-request.model';\n\nconst API_VERSION: string = process.env.VUE_APP_API_VERSION;\nconst REGISTERED_TAG_STUB_URL = `/api/v${API_VERSION}/RegisteredTag`;\nconst REGISTERED_TAG_CREATE_FOR_CUSTOMER_URL = `${REGISTERED_TAG_STUB_URL}/CreateForCustomer`;\nconst REGISTERED_TAG_BY_ID_URL = `${REGISTERED_TAG_STUB_URL}/:id`;\nconst REGISTERED_TAG_GET_BY_CODE_URL = `${REGISTERED_TAG_STUB_URL}/GetRegisteredTagByCode/:code`;\nconst CHECK_IF_TAG_EXISTS_URL = `${REGISTERED_TAG_STUB_URL}/IsTagRegistered/:code`;\nconst REGISTERED_TAG_GET_BY_VETERINARIAN_OFFICE_ID_URL = `${REGISTERED_TAG_STUB_URL}/GetByVeterinarianOfficeId/:id`;\n\nexport interface RegisteredTagService {\n getTagById(id: string): Promise;\n getTagByCode(code: string): Promise;\n isTagRegistered(code: string): Promise;\n getAllTags(): Promise;\n getAllTagsByVeterinarianOfficeId(\n vetOFficeId: string\n ): Promise;\n addNewTag(model: RegisteredTagRequest): Promise;\n addNewTagForCustomer(model: RegisteredTagRequest): Promise;\n updateTag(model: UpdateRegisteredTagRequest): Promise;\n}\n\n@injectable()\nexport class RegisteredTagService implements RegisteredTagService {\n @Inject()\n private readonly _baseAPIService!: BaseAPIService;\n\n public async getTagById(id: string): Promise {\n const resp = await this._baseAPIService.client.get(\n REGISTERED_TAG_BY_ID_URL.replace(':id', id)\n );\n return resp.data;\n }\n\n public async getTagByCode(code: string): Promise {\n const resp = await this._baseAPIService.client.get(\n REGISTERED_TAG_GET_BY_CODE_URL.replace(':code', code)\n );\n return resp.data;\n }\n\n public async isTagRegistered(\n code: string\n ): Promise {\n const resp = await this._baseAPIService.client.get<\n CheckIfTagExistsResponse\n >(CHECK_IF_TAG_EXISTS_URL.replace(':code', code));\n return resp.data;\n }\n\n public async getAllTags(): Promise {\n const resp = await this._baseAPIService.client.get(\n REGISTERED_TAG_STUB_URL\n );\n return resp.data;\n }\n\n public async getAllTagsByVeterinarianOfficeId(\n vetOFficeId: string\n ): Promise {\n const resp = await this._baseAPIService.client.get(\n REGISTERED_TAG_GET_BY_VETERINARIAN_OFFICE_ID_URL.replace(\n ':id',\n vetOFficeId\n )\n );\n return resp.data;\n }\n\n public async addNewTag(model: RegisteredTagRequest): Promise {\n const resp = await this._baseAPIService.client.post(\n REGISTERED_TAG_STUB_URL,\n {\n ...model\n }\n );\n return resp.data;\n }\n\n public async addNewTagForCustomer(\n model: RegisteredTagRequest\n ): Promise {\n const resp = await this._baseAPIService.client.post(\n REGISTERED_TAG_CREATE_FOR_CUSTOMER_URL,\n {\n ...model\n }\n );\n return resp.data;\n }\n\n public async updateTag(\n model: UpdateRegisteredTagRequest\n ): Promise {\n const resp = await this._baseAPIService.client.put(\n REGISTERED_TAG_BY_ID_URL.replace(':id', model.id),\n {\n ...model\n }\n );\n return resp.data;\n }\n}\n","import { Module, VuexModule, Action, Mutation } from 'vuex-module-decorators';\nimport { VeterinarianOffice } from '@/models/DTO/veterinarian-office/veterinarian-office.model';\nimport { Inject } from 'inversify-props';\nimport { VeterinarianOfficesService } from '@/services/veterinarian-offices.service';\nimport { VeterinarianMutation } from '@/constants/mutation.constants';\nimport { VeterinarianActions } from '@/constants/actions.constants';\nimport { BaseAPIErrorModel } from '@/models/DTO/base-api-error.model';\nimport { VeterinarianOfficeUser } from '@/models/DTO/veterinarian-office-user/veterinarian-office-user.model';\nimport { VeterinarianGetters } from '@/constants/getters.constants';\n\nexport const VETERINARIAN_MODULE_NAME = 'veterinarian';\n\nclass DefaultState {\n public veterinarianOffices: VeterinarianOffice[] = [];\n public showLoading = false;\n public showButtonLoading = false;\n public showTableLoading = false;\n public errorResponse: BaseAPIErrorModel | null = null;\n public currentVeterinarianOffice: VeterinarianOffice | null = null;\n public currentVeterinarianOfficeUsers: VeterinarianOfficeUser[] | null = null;\n public selectedVeterinarianUserId = '';\n public selectedVeterinarianOfficeId = '';\n public newVeterinarianOffice: VeterinarianOffice | null = null;\n}\n\nconst defaultState = new DefaultState();\n\n@Module({\n namespaced: true,\n name: VETERINARIAN_MODULE_NAME\n})\nexport default class VeterinarianModule extends VuexModule {\n // #region Services\n @Inject()\n private readonly _veterinarianOfficesService!: VeterinarianOfficesService;\n // #endregion\n\n // #region State\n public veterinarianOffices: VeterinarianOffice[] =\n defaultState.veterinarianOffices;\n\n // Use with full page loading\n public showLoading = defaultState.showLoading;\n\n // Show on button only\n public showButtonLoading = defaultState.showButtonLoading;\n\n // Use with all gets for a table\n public showTableLoading = defaultState.showTableLoading;\n\n public errorResponse: BaseAPIErrorModel | null = defaultState.errorResponse;\n public currentVeterinarianOffice: VeterinarianOffice | null =\n defaultState.currentVeterinarianOffice;\n public currentVeterinarianOfficeUsers: VeterinarianOfficeUser[] | null =\n defaultState.currentVeterinarianOfficeUsers;\n public selectedVeterinarianUserId = defaultState.selectedVeterinarianUserId;\n public selectedVeterinarianOfficeId =\n defaultState.selectedVeterinarianOfficeId;\n public newVeterinarianOffice: VeterinarianOffice | null =\n defaultState.newVeterinarianOffice;\n // #endregion\n\n // #region Getters\n public get [VeterinarianGetters.hasErrorMessages](): boolean {\n return this.context.getters[VeterinarianGetters.errorMessages].length > 0;\n }\n\n public get [VeterinarianGetters.errorMessages](): string[] {\n return this.errorResponse?.getAllErrorMessages?.() ?? [];\n }\n // #endregion\n\n // #region Actions\n @Action\n public async [VeterinarianActions.getVeterinarianOfficesAction](): Promise<\n void\n > {\n try {\n this.context.commit(VeterinarianMutation.showTableLoadingMutation, true);\n\n // remove any errors\n this.context.commit(VeterinarianMutation.errorMutation, null);\n\n const resp = await this._veterinarianOfficesService.getVeterinarianOffices();\n\n // success\n this.context.commit(VeterinarianMutation.setVeterinarianOfficesMutation, [\n ...resp\n ]);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(VeterinarianMutation.errorMutation, e);\n } finally {\n this.context.commit(VeterinarianMutation.showTableLoadingMutation, false);\n }\n }\n\n @Action\n public async [VeterinarianActions.getVeterinarianOfficeByIdAction](\n id: string\n ): Promise {\n try {\n this.context.commit(VeterinarianMutation.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(VeterinarianMutation.errorMutation, null);\n\n const resp = await this._veterinarianOfficesService.getVeterinarianOfficeById(\n id\n );\n\n // success\n this.context.commit(\n VeterinarianMutation.setCurrentVeterinarianOfficeMutation,\n {\n ...resp\n }\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(VeterinarianMutation.errorMutation, e);\n } finally {\n this.context.commit(VeterinarianMutation.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [VeterinarianActions.createVeterinarianOfficeAction](\n model: VeterinarianOffice\n ): Promise {\n try {\n this.context.commit(VeterinarianMutation.showButtonLoadingMutation, true);\n\n // remove any errors\n this.context.commit(VeterinarianMutation.errorMutation, null);\n\n const resp = await this._veterinarianOfficesService.createVeterinarianOffice(\n {\n ...model\n }\n );\n\n // Get updated list of offices, perform asynchronously\n this.context.dispatch(VeterinarianActions.getVeterinarianOfficesAction);\n\n // success\n this.context.commit(\n VeterinarianMutation.setCurrentVeterinarianOfficeMutation,\n {\n ...resp\n }\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(VeterinarianMutation.errorMutation, e);\n } finally {\n this.context.commit(\n VeterinarianMutation.showButtonLoadingMutation,\n false\n );\n }\n }\n\n @Action\n public async [VeterinarianActions.editVeterinarianOfficeAction](\n model: VeterinarianOffice\n ): Promise {\n try {\n this.context.commit(VeterinarianMutation.showButtonLoadingMutation, true);\n\n // remove any errors\n this.context.commit(VeterinarianMutation.errorMutation, null);\n\n const resp = await this._veterinarianOfficesService.editVeterinarianOffice(\n {\n ...model\n }\n );\n\n // Get updated list of offices, perform asynchronously\n this.context.dispatch(VeterinarianActions.getVeterinarianOfficesAction);\n\n // success\n this.context.commit(\n VeterinarianMutation.setCurrentVeterinarianOfficeMutation,\n {\n ...resp\n }\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(VeterinarianMutation.errorMutation, e);\n } finally {\n this.context.commit(\n VeterinarianMutation.showButtonLoadingMutation,\n false\n );\n }\n }\n\n @Action\n public async [VeterinarianActions.deleteVeterinarianOfficeAction](\n id: string\n ): Promise {\n try {\n this.context.commit(VeterinarianMutation.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(VeterinarianMutation.errorMutation, null);\n\n const resp = await this._veterinarianOfficesService.deleteVeterinarianOffice(\n id\n );\n\n // success\n this.context.commit(\n VeterinarianMutation.setCurrentVeterinarianOfficeMutation,\n {\n ...resp\n }\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(VeterinarianMutation.errorMutation, e);\n } finally {\n this.context.commit(VeterinarianMutation.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [VeterinarianActions.setSelectedVeterinarianUserIdAction](\n userId: string\n ): Promise {\n return this.context.commit(\n VeterinarianMutation.setSelectedVeterinarianUserIdMutation,\n userId\n );\n }\n\n @Action\n public async [VeterinarianActions.setSelectedVeterinarianOfficeIdAction](\n officeId: string\n ): Promise {\n return this.context.commit(\n VeterinarianMutation.setSelectedVeterinarianOfficeIdMutation,\n officeId\n );\n }\n\n @Action\n public async [VeterinarianActions.getAllUsersForOfficeAction](\n id: string\n ): Promise {\n try {\n this.context.commit(VeterinarianMutation.showTableLoadingMutation, true);\n\n // remove any errors\n this.context.commit(VeterinarianMutation.errorMutation, null);\n\n const resp = await this._veterinarianOfficesService.getAllUsersForOffice(\n id\n );\n\n // success\n this.context.commit(\n VeterinarianMutation.setCurrentVeterinarianOfficeUsersMutation,\n [...resp]\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(VeterinarianMutation.errorMutation, e);\n } finally {\n this.context.commit(VeterinarianMutation.showTableLoadingMutation, false);\n }\n }\n\n @Action\n public async [VeterinarianActions.resetStateAction](): Promise {\n this.context.commit(VeterinarianMutation.resetStateMutation);\n }\n\n @Action\n public async [VeterinarianActions.resetVeterinarianOfficeUsers](): Promise<\n void\n > {\n this.context.commit(VeterinarianMutation.resetVeterinarianOfficeUsers);\n }\n\n @Action\n public async [VeterinarianActions.newVeterinarianOfficeAction](\n payload: VeterinarianOffice | null\n ): Promise {\n this.context.commit(\n VeterinarianMutation.newVeterinarianOfficeMutation,\n payload\n );\n }\n // #endregion\n\n // #region Mutation\n @Mutation\n private [VeterinarianMutation.showLoadingMutation](show: boolean) {\n this.showLoading = show;\n }\n\n @Mutation\n private [VeterinarianMutation.showButtonLoadingMutation](show: boolean) {\n this.showButtonLoading = show;\n }\n\n @Mutation\n private [VeterinarianMutation.showTableLoadingMutation](show: boolean) {\n this.showTableLoading = show;\n }\n\n @Mutation\n private [VeterinarianMutation.errorMutation](\n errorModel: BaseAPIErrorModel | null\n ) {\n this.errorResponse = errorModel;\n }\n\n @Mutation\n private [VeterinarianMutation.setVeterinarianOfficesMutation](\n data: VeterinarianOffice[]\n ) {\n this.veterinarianOffices = data ? [...data] : [];\n }\n\n @Mutation\n private [VeterinarianMutation.setCurrentVeterinarianOfficeMutation](\n data: VeterinarianOffice\n ) {\n this.currentVeterinarianOffice = { ...data };\n }\n\n @Mutation\n private [VeterinarianMutation.setCurrentVeterinarianOfficeUsersMutation](\n data: VeterinarianOfficeUser[]\n ) {\n this.currentVeterinarianOfficeUsers = [...data];\n }\n\n @Mutation\n private [VeterinarianMutation.setSelectedVeterinarianUserIdMutation](\n userId: string\n ) {\n this.selectedVeterinarianUserId = userId;\n }\n\n @Mutation\n private [VeterinarianMutation.setSelectedVeterinarianOfficeIdMutation](\n officeId: string\n ) {\n this.selectedVeterinarianOfficeId = officeId;\n }\n\n @Mutation\n private [VeterinarianMutation.resetStateMutation]() {\n Object.assign(this, defaultState);\n }\n\n @Mutation\n private [VeterinarianMutation.resetVeterinarianOfficeUsers]() {\n this.currentVeterinarianOfficeUsers =\n defaultState.currentVeterinarianOfficeUsers;\n }\n\n @Mutation\n private [VeterinarianMutation.newVeterinarianOfficeMutation](\n office: VeterinarianOffice | null\n ) {\n if (!office) {\n this.newVeterinarianOffice = null;\n } else {\n this.newVeterinarianOffice = { ...office };\n }\n }\n // #endregion\n}\n","import { Inject, injectable } from 'inversify-props';\nimport { BaseAPIService } from './base-api.service';\n\nconst API_VERSION = process.env.VUE_APP_API_VERSION;\nconst REPORT_STUB_URL = `/api/v${API_VERSION}/Reports`;\nconst VETERINARIAN_BILLING_REPORT_URL = `${REPORT_STUB_URL}/VeterinarianBillingReport`;\n\nexport interface ReportService {\n getBillingReport(startDateUtc: string, endDateUtc: string): Promise;\n}\n\n@injectable()\nexport class ReportService implements ReportService {\n @Inject()\n private readonly _baseAPIService!: BaseAPIService;\n\n public async getBillingReport(\n startDateUtc: string,\n endDateUtc: string\n ): Promise {\n const resp = await this._baseAPIService.client.get(\n `${VETERINARIAN_BILLING_REPORT_URL}?startDateUtc=${startDateUtc}&endDateUtc=${endDateUtc}`\n );\n return resp.data;\n }\n}\n","import { Module, VuexModule, Action, Mutation } from 'vuex-module-decorators';\nimport { Inject } from 'inversify-props';\nimport { VeterinarianOfficeUsersService } from '@/services/veterinarian-office-user.service';\nimport { BaseAPIErrorModel } from '@/models/DTO/base-api-error.model';\nimport { VeterinarianOfficeUser } from '@/models/DTO/veterinarian-office-user/veterinarian-office-user.model';\nimport { VeterinarianOfficeUsersActions } from '@/constants/actions.constants';\nimport { VeterinarianOfficeUsersMutations } from '@/constants/mutation.constants';\nimport { VeterinarianOfficeUserUpdateRequest } from '@/models/DTO/veterinarian-office-user/veterinarian-office-user-update-request.model';\nimport { VeterinarianUserGetters } from '@/constants/getters.constants';\n\nexport const VETERINARIAN_USER_MODULE_NAME = 'veterinarianUser';\n\nclass DefaultState {\n public showLoading = false;\n public showButtonLoading = false;\n public errorResponse: BaseAPIErrorModel | null = null;\n public currentVeterinarianOfficeUser: VeterinarianOfficeUser | null = null;\n public lockOrUnlockUserSuccess: boolean | null = null;\n}\n\nconst defaultState = new DefaultState();\n\n@Module({\n namespaced: true,\n name: VETERINARIAN_USER_MODULE_NAME\n})\nexport default class VeterinarianOfficeUserModule extends VuexModule {\n //#region Services\n @Inject()\n private readonly _veterinarianOfficeUsersService!: VeterinarianOfficeUsersService;\n //#endregion\n\n //#region State\n public showLoading = defaultState.showLoading;\n public showButtonLoading = defaultState.showButtonLoading;\n public errorResponse: BaseAPIErrorModel | null = defaultState.errorResponse;\n public currentVeterinarianOfficeUser: VeterinarianOfficeUser | null =\n defaultState.currentVeterinarianOfficeUser;\n public lockOrUnlockUserSuccess: boolean | null =\n defaultState.lockOrUnlockUserSuccess;\n //#endregion\n\n // #region Getters\n public get [VeterinarianUserGetters.hasErrorMessages](): boolean {\n return (\n this.context.getters[VeterinarianUserGetters.errorMessages].length > 0\n );\n }\n\n public get [VeterinarianUserGetters.errorMessages](): string[] {\n return this.errorResponse?.getAllErrorMessages?.() ?? [];\n }\n //#endregion\n\n //#region Actions\n @Action\n public async [VeterinarianOfficeUsersActions.getByIdAction](\n id: string\n ): Promise {\n try {\n this.context.commit(\n VeterinarianOfficeUsersMutations.showLoadingMutation,\n true\n );\n\n // remove any errors\n this.context.commit(VeterinarianOfficeUsersMutations.errorMutation, null);\n\n const resp = await this._veterinarianOfficeUsersService.getById(id);\n\n // success\n this.context.commit(\n VeterinarianOfficeUsersMutations.setCurrentVeterinarianOfficeUserMutation,\n {\n ...resp\n }\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(VeterinarianOfficeUsersMutations.errorMutation, e);\n } finally {\n this.context.commit(\n VeterinarianOfficeUsersMutations.showLoadingMutation,\n false\n );\n }\n }\n\n @Action\n public async [VeterinarianOfficeUsersActions.updateVeterinarianOfficeUserAction](\n model: VeterinarianOfficeUserUpdateRequest\n ): Promise {\n try {\n this.context.commit(\n VeterinarianOfficeUsersMutations.showButtonLoadingMutation,\n true\n );\n\n // remove any errors\n this.context.commit(VeterinarianOfficeUsersMutations.errorMutation, null);\n\n const resp = await this._veterinarianOfficeUsersService.update({\n ...model\n });\n\n // success\n this.context.commit(\n VeterinarianOfficeUsersMutations.setCurrentVeterinarianOfficeUserMutation,\n {\n ...resp\n }\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(VeterinarianOfficeUsersMutations.errorMutation, e);\n } finally {\n this.context.commit(\n VeterinarianOfficeUsersMutations.showButtonLoadingMutation,\n false\n );\n }\n }\n\n @Action\n public async [VeterinarianOfficeUsersActions.lockoutVeterinarianOfficeUserAction](\n id: string\n ): Promise {\n try {\n this.context.commit(\n VeterinarianOfficeUsersMutations.showLoadingMutation,\n true\n );\n\n // remove any errors\n this.context.commit(VeterinarianOfficeUsersMutations.errorMutation, null);\n this.context.commit(\n VeterinarianOfficeUsersMutations.setLockOrUnlockUserSuccessMutation,\n null\n );\n\n await this._veterinarianOfficeUsersService.lockoutVeterinarianOfficeUser(\n id\n );\n\n // success\n this.context.commit(\n VeterinarianOfficeUsersMutations.setLockOrUnlockUserSuccessMutation,\n true\n );\n } catch (error) {\n // fail\n this.context.commit(\n VeterinarianOfficeUsersMutations.setLockOrUnlockUserSuccessMutation,\n false\n );\n\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(VeterinarianOfficeUsersMutations.errorMutation, e);\n } finally {\n this.context.commit(\n VeterinarianOfficeUsersMutations.showLoadingMutation,\n false\n );\n }\n }\n\n @Action\n public async [VeterinarianOfficeUsersActions.unlockVeterinarianOfficeUserAction](\n id: string\n ): Promise {\n try {\n this.context.commit(\n VeterinarianOfficeUsersMutations.showLoadingMutation,\n true\n );\n\n // remove any errors\n this.context.commit(VeterinarianOfficeUsersMutations.errorMutation, null);\n this.context.commit(\n VeterinarianOfficeUsersMutations.setLockOrUnlockUserSuccessMutation,\n null\n );\n\n await this._veterinarianOfficeUsersService.unlockVeterinarianOfficeUser(\n id\n );\n\n // success\n this.context.commit(\n VeterinarianOfficeUsersMutations.setLockOrUnlockUserSuccessMutation,\n true\n );\n } catch (error) {\n // fail\n this.context.commit(\n VeterinarianOfficeUsersMutations.setLockOrUnlockUserSuccessMutation,\n false\n );\n\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(VeterinarianOfficeUsersMutations.errorMutation, e);\n } finally {\n this.context.commit(\n VeterinarianOfficeUsersMutations.showLoadingMutation,\n false\n );\n }\n }\n\n @Action\n public async [VeterinarianOfficeUsersActions.resetStateAction](): Promise<\n void\n > {\n this.context.commit(VeterinarianOfficeUsersMutations.resetStateMutation);\n }\n //#endregion\n\n //#region Mutations\n @Mutation\n private [VeterinarianOfficeUsersMutations.showLoadingMutation](\n data: boolean\n ) {\n this.showLoading = data;\n }\n\n @Mutation\n private [VeterinarianOfficeUsersMutations.showButtonLoadingMutation](\n data: boolean\n ) {\n this.showButtonLoading = data;\n }\n\n @Mutation\n private [VeterinarianOfficeUsersMutations.errorMutation](\n data: BaseAPIErrorModel | null\n ) {\n this.errorResponse = data;\n }\n\n @Mutation\n private [VeterinarianOfficeUsersMutations.setCurrentVeterinarianOfficeUserMutation](\n data: VeterinarianOfficeUser | null\n ) {\n this.currentVeterinarianOfficeUser = data;\n }\n\n @Mutation\n private [VeterinarianOfficeUsersMutations.setLockOrUnlockUserSuccessMutation](\n data: boolean | null\n ) {\n this.lockOrUnlockUserSuccess = data;\n }\n\n @Mutation\n private [VeterinarianOfficeUsersMutations.resetStateMutation]() {\n Object.assign(this, defaultState);\n }\n //#endregion\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport interface BaseAPIErrorModel {\n type?: string | null | undefined;\n title?: string | null | undefined;\n status?: number | null | undefined;\n traceId?: string | null | undefined;\n errors?: any | null | undefined;\n\n getAllErrorMessages(): string[];\n}\n\nexport class BaseAPIErrorModel implements BaseAPIErrorModel {\n type?: string | null | undefined;\n title?: string | null | undefined;\n status?: number | null | undefined;\n traceId?: string | null | undefined;\n errors?: any | null | undefined;\n\n constructor(error: BaseAPIErrorModel) {\n this.type = error?.type;\n this.title = error?.title;\n this.status = error?.status;\n this.traceId = error?.traceId;\n this.errors = error?.errors;\n }\n\n public getAllErrorMessages(): string[] {\n const errorMessages: string[] = [];\n\n if (typeof this.errors !== 'undefined') {\n if (Array.isArray(this.errors)) {\n for (let i = 0; i !== this.errors.length; i++) {\n errorMessages.push(this.errors[i]);\n }\n } else if (typeof this.errors === 'object') {\n if ((this.errors?.length ?? 0) != 0) {\n for (const k in this.errors) {\n for (let i = 0; i !== this.errors[k].length; i++) {\n errorMessages.push(this.errors[k][i]);\n }\n }\n }\n\n if ((this.errors?.errors?.length ?? 0) != 0) {\n const serverErrors = this.errors?.errors as any[];\n\n for (let i = 0; i !== serverErrors.length; i++) {\n if (serverErrors[i].errorMessage) {\n errorMessages.push(serverErrors[i].errorMessage);\n }\n }\n }\n }\n } else {\n if (!errorMessages.includes('Oops..')) {\n errorMessages.push('Oops.. Something Went Wrong..');\n }\n }\n\n return errorMessages;\n }\n}\n","import Vue from 'vue';\nimport { routePath, routeName } from '@/constants/route.constants';\nimport VueRouter, { RouteConfig } from 'vue-router';\n\nconst LoginView = () => import('../views/login/login.view.vue');\nconst ResetPasswordView = () =>\n import('../views/login/reset-password.view.vue');\nconst ChangeEmailView = () => import('../views/email/change-email.view.vue');\nconst AdminView = () => import('../views/admin/admin.view.vue');\nconst VetView = () => import('../views/veterinarian/vet.view.vue');\nconst PublicView = () => import('../views/public/public.view.vue');\nconst AdminUserComponent = () =>\n import('../components/admin/admin-user.component.vue');\nconst AccountListComponent = () =>\n import('../components/account/account-list.component.vue');\nconst AccountFormComponent = () =>\n import('../components/account/account-form.component.vue');\nconst AccountUserFormComponent = () =>\n import('../components/account/account-user-form.component.vue');\nconst RegistrationFormComponent = () =>\n import('../components/registration/registration-form.component.vue');\nconst RegistrationListComponent = () =>\n import('../components/registration/registration-list.component.vue');\nconst CustomerFormComponent = () =>\n import('../components/customer/customer-form.component.vue');\nconst TermsComponent = () => import('../components/public/terms.component.vue');\nconst ScanCodeComponent = () =>\n import('../components/public/scan-code.component.vue');\nconst ViewAccessComponent = () =>\n import('../components/public/view-access.component.vue');\nconst OwnerDetailsComponent = () =>\n import('../components/public/owner-details.component.vue');\nconst OwnerAccessComponent = () =>\n import('../components/public/owner-access.component.vue');\nconst OwnerComponent = () => import('../components/public/owner.component.vue');\nconst PaymentComponent = () =>\n import('../components/public/payment.component.vue');\nconst PaymentConfirmationComponent = () =>\n import('../components/public/payment-confirmation.component.vue');\nconst QRCodeComponent = () =>\n import('../components/public/qr-code.component.vue');\nconst QRCodeStreamComponent = () =>\n import('../components/scan/qr-code-stream.component.vue');\n\nVue.use(VueRouter);\n\nconst routes: Array = [\n // #region Redirects\n {\n path: routePath.veterinarian.base,\n redirect: { name: routeName.veterinarian.register }\n },\n {\n path: routePath.admin.base,\n redirect: { name: routeName.admin.accounts }\n },\n // #endregion\n {\n path: routePath.login,\n name: routeName.login,\n component: LoginView,\n meta: {\n title: 'Log in to Paw Finders'\n }\n },\n {\n path: routePath.resetPassword,\n name: routeName.resetPassword,\n component: ResetPasswordView,\n meta: {\n title: 'Forgot password? Set a new password in Paw Finders'\n }\n },\n {\n path: routePath.confirmEmailChange,\n name: routeName.confirmEmailChange,\n component: ChangeEmailView,\n meta: {\n title: 'Confirm your new email in Paw Finders'\n }\n },\n // #region Admin routes\n {\n path: routePath.admin.base,\n component: AdminView,\n children: [\n {\n path: routePath.admin.accounts,\n name: routeName.admin.accounts,\n component: AccountListComponent,\n meta: {\n requiresAdmin: true,\n title: 'Veterinarian accounts in Paw Finders'\n }\n },\n {\n path: routePath.admin.userList,\n name: routeName.admin.userList,\n component: AdminUserComponent,\n meta: {\n requiresAdmin: true,\n title: 'Manage admin users in Paw Finders'\n }\n },\n {\n path: routePath.admin.createAccount,\n name: routeName.admin.createAccount,\n component: AccountFormComponent,\n props: {\n title: 'Create Account'\n },\n meta: {\n requiresAdmin: true,\n title: 'Create veterinarian account in Paw Finders'\n }\n },\n {\n path: routePath.admin.editAccount,\n name: routeName.admin.editAccount,\n component: AccountFormComponent,\n props: {\n title: 'Manage Account'\n },\n meta: {\n requiresAdmin: true,\n title: 'Manage veterinarian account in Paw Finders'\n }\n },\n {\n path: routePath.admin.addUsers,\n name: routeName.admin.addUsers,\n component: AccountUserFormComponent,\n props: {\n title: 'Add Users'\n },\n meta: {\n requiresAdmin: true,\n title: 'Add users to veterinarian account in Paw Finders'\n }\n },\n {\n path: routePath.admin.editUsers,\n name: routeName.admin.editUsers,\n component: AccountUserFormComponent,\n props: {\n title: 'Manage Users'\n },\n meta: {\n requiresAdmin: true,\n title: 'Manage veterinarian account users in Paw Finders'\n }\n },\n {\n path: routePath.admin.registrations,\n name: routeName.admin.registrations,\n component: RegistrationListComponent,\n meta: {\n requiresAdmin: true,\n title: 'Tag registrations in Paw Finders'\n }\n },\n {\n path: routePath.admin.editCustomer,\n name: routeName.admin.editCustomer,\n component: CustomerFormComponent,\n props: {\n title: 'Manage Customer Registration'\n },\n meta: {\n requiresAdmin: true,\n title: 'Manage tag registration for customer in Paw Finders'\n }\n },\n // Used when creating customer for pre-registered tag\n {\n path: routePath.admin.createCustomer,\n name: routeName.admin.createCustomer,\n component: CustomerFormComponent,\n props: {\n title: 'Register Customer'\n },\n meta: {\n requiresAdmin: true,\n title: 'Add customer to tag registration in Paw Finders'\n }\n },\n // Used when changing ownership\n {\n path: routePath.admin.addCustomer,\n name: routeName.admin.addCustomer,\n component: CustomerFormComponent,\n props: {\n title: 'Add Customer to Registration'\n },\n meta: {\n requiresAdmin: true,\n title: 'Add customer to tag registration in Paw Finders'\n }\n }\n ]\n },\n // #endregion\n // #region Veterinarian routes\n {\n path: routePath.veterinarian.base,\n component: VetView,\n children: [\n {\n path: routePath.veterinarian.register,\n name: routeName.veterinarian.register,\n component: RegistrationFormComponent,\n meta: {\n requiresAuth: true,\n title: 'Register a tag with Paw Finders'\n }\n },\n {\n path: routePath.veterinarian.registrations,\n name: routeName.veterinarian.registrations,\n component: RegistrationListComponent,\n meta: {\n requiresAuth: true,\n title: 'Tag registrations in Paw Finders'\n }\n },\n // Used when registering a new tag\n {\n path: routePath.veterinarian.createRegistration,\n name: routeName.veterinarian.createRegistration,\n component: CustomerFormComponent,\n props: {\n title: 'Register Customer'\n },\n meta: {\n requiresAuth: true,\n title: 'Create tag registration for customer in Paw Finders'\n }\n },\n // Used when creating customer for pre-registered tag\n {\n path: routePath.veterinarian.createCustomer,\n name: routeName.veterinarian.createCustomer,\n component: CustomerFormComponent,\n props: {\n title: 'Register Customer'\n },\n meta: {\n requiresAuth: true,\n title: 'Add customer to tag registration in Paw Finders'\n }\n },\n // Used when changing ownership\n {\n path: routePath.veterinarian.addCustomer,\n name: routeName.veterinarian.addCustomer,\n component: CustomerFormComponent,\n props: {\n title: 'Add Customer to Registration'\n },\n meta: {\n requiresAuth: true,\n title: 'Add customer to tag registration in Paw Finders'\n }\n },\n {\n path: routePath.veterinarian.editCustomer,\n name: routeName.veterinarian.editCustomer,\n component: CustomerFormComponent,\n props: {\n title: 'Manage Customer Registration'\n },\n meta: {\n requiresAuth: true,\n title: 'Manage tag registration for customer in Paw Finders'\n }\n },\n {\n path: routePath.veterinarian.qrCodeStream,\n name: routeName.veterinarian.qrCodeStream,\n component: QRCodeStreamComponent,\n meta: {\n requiresAuth: true,\n title: 'Scan QR Code in Paw Finders'\n }\n },\n {\n path: routePath.veterinarian.editUsers,\n name: routeName.veterinarian.editUsers,\n component: AccountUserFormComponent,\n meta: {\n requiresVeterinarian: true,\n title: 'Add users to veterinarian account in Paw Finders'\n }\n }\n ]\n },\n // #endregion\n // #region Public routes\n {\n path: routePath.base,\n component: PublicView,\n children: [\n {\n path: routePath.public.scan,\n name: routeName.public.scan,\n component: ScanCodeComponent,\n meta: {\n title: 'Scan tag with Paw Finders'\n }\n },\n {\n path: routePath.public.terms,\n name: routeName.public.terms,\n component: TermsComponent,\n meta: {\n title: 'Paw Finders terms & conditions'\n }\n },\n {\n path: routePath.public.qrCodeStream,\n name: routeName.public.qrCodeStream,\n component: QRCodeComponent,\n meta: {\n title: 'Scan QR Code in Paw Finders'\n }\n },\n {\n path: routePath.public.register,\n name: routeName.public.register,\n component: OwnerComponent,\n props: {\n title: 'Create Owner Info'\n },\n meta: {\n requiresTagHasNoMatch: true,\n title: 'Register a tag with Paw Finders'\n }\n },\n {\n path: routePath.public.payment,\n name: routeName.public.payment,\n component: PaymentComponent,\n meta: {\n requiresTagHasNoMatch: true,\n title: 'Pay for tag registration in Paw Finders'\n }\n },\n {\n path: routePath.public.paymentConfirmation,\n name: routeName.public.paymentConfirmation,\n component: PaymentConfirmationComponent,\n meta: {\n requiresTagHasNoMatch: true,\n title: 'Registration confirmation in Paw Finders'\n }\n },\n {\n path: routePath.public.viewAccess,\n name: routeName.public.viewAccess,\n component: ViewAccessComponent,\n props: true,\n meta: {\n title: 'Accept Paw Finders terms of use.'\n }\n },\n {\n path: routePath.public.findTag,\n name: routeName.public.findTag,\n component: ScanCodeComponent,\n props: true,\n meta: {\n title: 'Find a pet or register a tag with Paw Finders'\n }\n },\n {\n path: routePath.public.customer,\n name: routeName.public.customer,\n component: OwnerDetailsComponent,\n meta: {\n requiresAcceptingTerms: true,\n title: 'Owner Details in Paw Finders'\n }\n },\n {\n path: routePath.public.customerAccess,\n name: routeName.public.customerAccess,\n component: OwnerAccessComponent,\n meta: {\n requiresAcceptingTerms: true,\n title: 'Confirm you are the owner in Paw Finders'\n }\n },\n {\n path: routePath.public.editCustomer,\n name: routeName.public.editCustomer,\n component: OwnerComponent,\n props: {\n title: 'Manage Owner Info'\n },\n meta: {\n requiresOwnerAuthentication: true,\n title: 'Manage owner information in Paw Finders'\n }\n }\n ]\n }\n // #endregion\n];\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes,\n scrollBehavior(to, from, savedPosition) {\n if (savedPosition) {\n return savedPosition;\n } else {\n return { x: 0, y: 0 };\n }\n }\n});\n\nexport default router;\n","export enum Role {\n Admin = 'Admin',\n Veterinarian = 'Veterinarian',\n VeterinarianUser = 'Veterinarian_User',\n Customer = 'Customer'\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('b-container',{staticClass:\"bg-white\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{staticClass:\"px-0\"},[_c('router-view')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class App extends Vue {\n // TODO: Upload all email images directly to server and use an absolute link on the templates\n // TODO: Update the email templates and send to Scott to put with API\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../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=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../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=ts&\"","import { render, staticRenderFns } from \"./app.vue?vue&type=template&id=166371be&\"\nimport script from \"./app.vue?vue&type=script&lang=ts&\"\nexport * from \"./app.vue?vue&type=script&lang=ts&\"\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","import { Inject, injectable } from 'inversify-props';\nimport { BaseAPIService } from './base-api.service';\nimport { PaymentRequestBuilder } from '@/models/DTO/payments/payment-request-builder.model';\nimport { PaymentRequest } from '@/models/DTO/payments/payment-request.model';\nimport { VerifyPaymentRequestModel } from '@/models/DTO/payments/verify-payment-request.model';\nimport { VerifyPaymentResponse } from '@/models/DTO/payments/verify-payment-response.model';\n\nconst API_VERSION: string = process.env.VUE_APP_API_VERSION;\nconst PAYMENTS_STUB_URL = `/api/v${API_VERSION}/Payments`;\nconst CREATE_PAYMENT_REQUEST_OBJECT_URL = `${PAYMENTS_STUB_URL}/CreatePaymentRequestObject`;\nconst VERIFY_PAYMENT_RESPONSE_URL = `${PAYMENTS_STUB_URL}/VerifyPaymentResponse`;\n\nexport interface PaymentsService {\n createPaymentRequestObject(\n model: PaymentRequestBuilder\n ): Promise;\n\n verifyPaymentResponse(\n model: VerifyPaymentRequestModel\n ): Promise;\n}\n\n@injectable()\nexport class PaymentsService implements PaymentsService {\n @Inject()\n private readonly _baseAPIService!: BaseAPIService;\n\n public async createPaymentRequestObject(\n model: PaymentRequestBuilder\n ): Promise {\n const resp = await this._baseAPIService.client.post(\n CREATE_PAYMENT_REQUEST_OBJECT_URL,\n {\n ...model\n }\n );\n\n return resp.data;\n }\n\n public async verifyPaymentResponse(\n model: VerifyPaymentRequestModel\n ): Promise {\n const resp = await this._baseAPIService.client.post(\n VERIFY_PAYMENT_RESPONSE_URL,\n {\n ...model\n }\n );\n\n return resp.data;\n }\n}\n","import { LogEventRequestModel } from '@/models/DTO/event-log/log-event.model';\nimport { Inject, injectable } from 'inversify-props';\nimport { BaseAPIService } from './base-api.service';\n\nconst API_VERSION: string = process.env.VUE_APP_API_VERSION;\nconst EVENT_LOG_STUB_URL = `/api/v${API_VERSION}/EventLog`;\nconst LOG_EVENT_URL = `${EVENT_LOG_STUB_URL}/LogEvent`;\n\nexport interface EventLogService {\n logEvent(logEventModel: LogEventRequestModel): Promise;\n}\n\n@injectable()\nexport class EventLogService implements EventLogService {\n @Inject()\n private readonly _baseAPIService!: BaseAPIService;\n\n public async logEvent(logEventModel: LogEventRequestModel): Promise {\n await this._baseAPIService.client.post(LOG_EVENT_URL, {\n ...logEventModel\n });\n }\n}\n","import { container } from 'inversify-props';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { VeterinarianOfficesService } from '../services/veterinarian-offices.service';\nimport { BaseAPIService } from '../services/base-api.service';\nimport { VeterinarianOfficeUsersService } from '../services/veterinarian-office-user.service';\nimport { CustomersService } from '../services/customers.service';\nimport { AdminUserService } from '../services/admin-user.service';\nimport { RegisteredTagService } from '../services/registered-tag.service';\nimport { PaymentsService } from '../services/payments.service';\nimport { EventLogService } from '../services/event-log.service';\nimport { ReportService } from '@/services/report.service';\n\nexport function containerBuilder(): void {\n // this base service gets injected to all other services that\n // authenticate with our API\n container.addSingleton(BaseAPIService);\n container.addSingleton(AuthenticationService);\n container.addSingleton(\n VeterinarianOfficesService\n );\n container.addSingleton(\n VeterinarianOfficeUsersService\n );\n container.addSingleton(CustomersService);\n container.addSingleton(AdminUserService);\n container.addSingleton(RegisteredTagService);\n container.addSingleton(PaymentsService);\n container.addSingleton(EventLogService);\n container.addSingleton(ReportService);\n}\n","import Vue from 'vue';\nimport {\n BootstrapVue,\n BIcon,\n BIconstack,\n BIconPerson,\n BIconPersonPlus,\n BIconPower,\n BIconDownload,\n BIconTag,\n BIconCheck,\n BIconClipboard,\n BIconInfo,\n BIconArrowRight,\n BIconArrowLeft,\n BIconBuilding,\n BIconShieldLock,\n BIconCircle,\n BIconPersonDash,\n BIconPeople,\n BIconFunnel,\n BIconPlus,\n BIconFullscreen,\n BIconDash,\n BIconSquareFill,\n BIconArrowRepeat,\n BIconPlusCircle,\n BIconArrowClockwise,\n BIconAt,\n BIconLock,\n BIconUnlock,\n BIconInfoCircle,\n BIconLockFill,\n BIconAsterisk,\n BIconSearch,\n BIconCameraVideoOff,\n BIconSlash,\n BIconLink45deg,\n BIconFileEarmarkSpreadsheet\n} from 'bootstrap-vue';\n\nVue.use(BootstrapVue);\nVue.component('BIcon', BIcon);\nVue.component('BIconstack', BIconstack);\nVue.component('BIconPerson', BIconPerson);\nVue.component('BIconPersonPlus', BIconPersonPlus);\nVue.component('BIconPower', BIconPower);\nVue.component('BIconDownload', BIconDownload);\nVue.component('BIconTag', BIconTag);\nVue.component('BIconCheck', BIconCheck);\nVue.component('BIconClipboard', BIconClipboard);\nVue.component('BIconInfo', BIconInfo);\nVue.component('BIconArrowRight', BIconArrowRight);\nVue.component('BIconArrowLeft', BIconArrowLeft);\nVue.component('BIconBuilding', BIconBuilding);\nVue.component('BIconShieldLock', BIconShieldLock);\nVue.component('BIconCircle', BIconCircle);\nVue.component('BIconPersonDash', BIconPersonDash);\nVue.component('BIconPeople', BIconPeople);\nVue.component('BIconFunnel', BIconFunnel);\nVue.component('BIconPlus', BIconPlus);\nVue.component('BIconFullscreen', BIconFullscreen);\nVue.component('BIconDash', BIconDash);\nVue.component('BIconSquareFill', BIconSquareFill);\nVue.component('BIconArrowRepeat', BIconArrowRepeat);\nVue.component('BIconPlusCircle', BIconPlusCircle);\nVue.component('BIconArrowClockwise', BIconArrowClockwise);\nVue.component('BIconAt', BIconAt);\nVue.component('BIconLock', BIconLock);\nVue.component('BIconUnlock', BIconUnlock);\nVue.component('BIconInfoCircle', BIconInfoCircle);\nVue.component('BIconLockFill', BIconLockFill);\nVue.component('BIconAsterisk', BIconAsterisk);\nVue.component('BIconSearch', BIconSearch);\nVue.component('BIconCameraVideoOff', BIconCameraVideoOff);\nVue.component('BIconSlash', BIconSlash);\nVue.component('BIconLink45deg', BIconLink45deg);\nVue.component('BIconFileEarmarkSpreadsheet', BIconFileEarmarkSpreadsheet);\n","import Vue from 'vue';\nimport VueMoment from 'vue-moment';\nimport moment from 'moment';\n\nVue.use(VueMoment, {\n moment\n});\n","import { configure } from 'vee-validate';\nimport { extend } from 'vee-validate';\nimport * as rules from 'vee-validate/dist/rules';\n\nfor (const [rule, validation] of Object.entries(rules)) {\n extend(rule, {\n ...validation\n });\n}\n\nconfigure({\n classes: {\n valid: 'is-valid',\n invalid: 'is-invalid',\n dirty: ['is-dirty', 'is-dirty']\n }\n});\n\nextend('password', {\n validate: (value) => {\n const regex = new RegExp(\n '^(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{6,}$'\n );\n return regex.test(value);\n }\n});\n","import Vue from 'vue';\nimport VueMq from 'vue-mq';\n\n/**\n * 'sm' => 0 > screenWidth < 770\n * 'md' => 770 >= screenWidth < 992\n * 'lg' => 992 >= screenWidth < 1200\n * 'xl' => 1200 >= screenWidth\n */\nVue.use(VueMq, {\n breakpoints: {\n sm: 770,\n md: 992,\n lg: 1200,\n xl: Infinity\n }\n});\n","import Vue from 'vue';\nimport Toasted from 'vue-toasted';\n\nVue.use(Toasted, {\n duration: 3000,\n position: 'top-center',\n singleton: true\n});\n","import Vue from 'vue';\nimport JsonCSV from 'vue-json-csv';\n\nVue.component('downloadCsv', JsonCSV);\n","import { loadScript } from '@paypal/paypal-js';\n\nloadScript({\n 'client-id': process.env.VUE_APP_PAYPAL_CLIENT_ID,\n 'enable-funding': 'venmo',\n 'disable-funding': 'card,paylater',\n commit: true\n})\n .then(() => {\n // start to use the PayPal JS SDK script\n })\n .catch((err: unknown) => {\n console.error('failed to load the PayPal JS SDK script', err);\n });\n","import Vue from 'vue';\nimport moment from 'moment';\n\nVue.filter('localTime', (value: string) => {\n const utc: Date = moment.utc(value).toDate();\n return moment(utc).format('M/D/YYYY h:mm a');\n});\n\nVue.filter('localTimeOnly', (value: string) => {\n const utc: Date = moment.utc(value).toDate();\n return moment(utc).format('h:mm a');\n});\n\nVue.filter('localDateOnly', (value: string) => {\n const utc: Date = moment.utc(value).toDate();\n return moment(utc).format('M/D/YYYY');\n});\n","import 'reflect-metadata'; // only import this in main.ts\nimport Vue from 'vue';\nimport App from './app.vue';\nimport router from './router';\nimport store from './store';\nimport { containerBuilder } from './dependency-injection/app.container';\nimport AuthenticationModule, {\n AUTHENTICATION_MODULE_NAME\n} from '@/store/modules/authentication.module';\nimport { getModule } from 'vuex-module-decorators';\nimport { routeName } from '@/constants/route.constants';\nimport { Role } from '@/constants/role.constants';\nimport moment from 'moment';\n\n// Plugins\nimport './plugins/index';\n\n// Filters\nimport './filters/index';\n\n// Styles\nimport './app.scss';\nimport { AuthenticationGetters } from './constants/getters.constants';\nimport { AuthenticationActions } from './constants/actions.constants';\n\n// TODO: Remove all console.log statements in production builds? https://stackoverflow.com/a/53326364\n\nVue.config.productionTip = false;\n\nconst authModule: AuthenticationModule = getModule(AuthenticationModule, store);\n\nrouter.beforeEach((to, from, next) => {\n if (to.meta && to.meta.title) {\n document.title = `${to.meta.title} ${process.env.VUE_APP_TITLE}`;\n }\n\n const navRequiresAdmin = (roles: string[]) => {\n if (roles.includes(Role.Admin)) {\n next();\n } else {\n next({ name: routeName.login, replace: true });\n }\n };\n\n const navRequiresAuth = (roles: string[]) => {\n if (\n roles.includes(Role.Veterinarian) ||\n roles.includes(Role.VeterinarianUser)\n ) {\n next();\n } else {\n next({ name: routeName.login, replace: true });\n }\n };\n\n const navRequiresVeterinarian = (roles: string[]) => {\n if (roles.includes(Role.Veterinarian)) {\n next();\n } else {\n if (\n authModule.loginResponse?.token &&\n authModule.jwtExpires?.isAfter(moment())\n ) {\n next({ name: routeName.veterinarian.register, replace: true });\n } else {\n next({ name: routeName.login, replace: true });\n }\n }\n };\n\n if (to.meta && to.meta.requiresAdmin) {\n if (authModule.jwtRoles.length === 0) {\n const watcher = store.watch(\n () => {\n const roles =\n store.getters[\n `${AUTHENTICATION_MODULE_NAME}/${AuthenticationGetters.jwtRoles}`\n ];\n\n if (roles.length === 0) {\n // don't await the watcher will catch it when it completes\n authModule[AuthenticationActions.refreshTokenAction]();\n return null;\n }\n\n return roles;\n },\n (jwtRoles) => {\n watcher(); // stop watching\n navRequiresAdmin(jwtRoles);\n }\n );\n } else {\n navRequiresAdmin(authModule.jwtRoles);\n }\n } else if (to.meta && to.meta.requiresAuth) {\n if (authModule.jwtRoles.length === 0) {\n const watcher = store.watch(\n () => {\n const roles =\n store.getters[\n `${AUTHENTICATION_MODULE_NAME}/${AuthenticationGetters.jwtRoles}`\n ];\n\n if (roles.length === 0) {\n // don't await the watcher will catch it when it completes\n authModule[AuthenticationActions.refreshTokenAction]();\n return null;\n }\n\n return roles;\n },\n (jwtRoles) => {\n watcher(); // stop watching\n navRequiresAuth(jwtRoles);\n }\n );\n } else {\n navRequiresAuth(authModule.jwtRoles);\n }\n } else if (to.meta && to.meta.requiresVeterinarian) {\n if (authModule.jwtRoles.length === 0) {\n const watcher = store.watch(\n () => {\n const roles =\n store.getters[\n `${AUTHENTICATION_MODULE_NAME}/${AuthenticationGetters.jwtRoles}`\n ];\n\n if (roles.length === 0) {\n // don't await the watcher will catch it when it completes\n authModule[AuthenticationActions.refreshTokenAction]();\n return null;\n }\n\n return roles;\n },\n (jwtRoles) => {\n watcher(); // stop watching\n navRequiresVeterinarian(jwtRoles);\n }\n );\n } else {\n navRequiresVeterinarian(authModule.jwtRoles);\n }\n } else if (to.meta && to.meta.requiresAcceptingTerms) {\n if (authModule.hasAcceptedTerms) {\n next();\n } else {\n next({ name: routeName.public.scan, replace: true });\n }\n } else if (to.meta && to.meta.requiresTagHasNoMatch) {\n if (!authModule.hasTagGottaMatch) {\n next();\n } else {\n next({ name: routeName.public.scan, replace: true });\n }\n } else if (to.meta && to.meta.requiresOwnerAuthentication) {\n if (authModule.hasOwnerAuthenticated) {\n next();\n } else {\n next({ name: routeName.public.scan, replace: true });\n }\n } else {\n next();\n }\n});\n\nexport class AppModule {\n constructor() {\n containerBuilder();\n\n this.bootstrap();\n }\n\n private async bootstrap(): Promise {\n return new Vue({\n router,\n store,\n render: (h) => h(App)\n }).$mount('#app');\n }\n}\n\nnew AppModule();\n","import { Module, VuexModule, Action, Mutation } from 'vuex-module-decorators';\nimport { Inject } from 'inversify-props';\nimport { CustomersService } from '@/services/customers.service';\nimport { Customer } from '@/models/DTO/customer/customer.model';\nimport { CustomersActions } from '@/constants/actions.constants';\nimport { CustomersMutations } from '@/constants/mutation.constants';\nimport { BaseAPIErrorModel } from '@/models/DTO/base-api-error.model';\nimport { RegisterCustomerModel } from '@/models/DTO/customer/register-customer.model';\nimport { CustomerUpdateRequest } from '@/models/DTO/customer/customer-update-request.model';\nimport { CustomerGetters } from '@/constants/getters.constants';\nimport { AuthenticationService } from '@/services/authentication.service';\n\nexport const CUSTOMERS_MODULE_NAME = 'customers';\n\nclass DefaultState {\n public customers: Customer[] = [];\n public currentCustomer: Customer | null = null;\n public publicCustomer: Customer | null = null;\n public errorResponse: BaseAPIErrorModel | null = null;\n public errorLookupResponse: BaseAPIErrorModel | null = null;\n public showLoading = false;\n public showButtonLoading = false;\n}\n\nconst defaultState = new DefaultState();\n\n@Module({\n namespaced: true,\n name: CUSTOMERS_MODULE_NAME\n})\nexport default class CustomersModule extends VuexModule {\n // #region Services\n @Inject()\n private readonly _customersService!: CustomersService;\n\n @Inject()\n private readonly _authenticationService!: AuthenticationService;\n // #endregion\n\n // #region State\n public customers: Customer[] = defaultState.customers;\n public currentCustomer: Customer | null = defaultState.currentCustomer;\n public publicCustomer: Customer | null = defaultState.publicCustomer;\n public showLoading = defaultState.showLoading;\n public showButtonLoading = defaultState.showButtonLoading;\n public errorResponse: BaseAPIErrorModel | null = defaultState.errorResponse;\n public errorLookupResponse: BaseAPIErrorModel | null =\n defaultState.errorLookupResponse;\n // #endregion\n\n // #region Getters\n public get [CustomerGetters.hasErrorMessages](): boolean {\n return this.context.getters[CustomerGetters.errorMessages].length > 0;\n }\n\n public get [CustomerGetters.errorMessages](): string[] {\n return this.errorResponse?.getAllErrorMessages?.() ?? [];\n }\n // #endregion\n\n // #region Actions\n @Action\n public async [CustomersActions.getAllCustomersAction](): Promise {\n try {\n this.context.commit(CustomersMutations.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(CustomersMutations.errorMutation, null);\n\n const resp = await this._customersService.getAllCustomers();\n\n // success\n this.context.commit(CustomersMutations.setAllCustomersMutation, [\n ...resp\n ]);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(CustomersMutations.errorMutation, e);\n } finally {\n this.context.commit(CustomersMutations.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [CustomersActions.getCustomerByIdAction](\n id: string\n ): Promise {\n try {\n this.context.commit(CustomersMutations.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(CustomersMutations.errorMutation, null);\n\n const resp = await this._customersService.getCustomerById(id);\n\n // success\n this.context.commit(CustomersMutations.setCurrentCustomerMutation, {\n ...resp\n });\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(CustomersMutations.errorMutation, e);\n } finally {\n this.context.commit(CustomersMutations.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [CustomersActions.getCustomerByEmailAction](\n email: string\n ): Promise {\n try {\n this.context.commit(CustomersMutations.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(CustomersMutations.errorLookupMutation, null);\n\n const resp = await this._customersService.getCustomerByEmail(email);\n\n // success\n this.context.commit(CustomersMutations.setCurrentCustomerMutation, {\n ...resp\n });\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(CustomersMutations.errorLookupMutation, e);\n } finally {\n this.context.commit(CustomersMutations.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [CustomersActions.registerCustomerAction](\n payload: RegisterCustomerModel\n ): Promise {\n try {\n this.context.commit(CustomersMutations.showButtonLoadingMutation, true);\n\n // remove any errors\n this.context.commit(CustomersMutations.errorMutation, null);\n\n const resp = await this._authenticationService.registerCustomer({\n ...payload\n });\n\n // success\n this.context.commit(CustomersMutations.setCurrentCustomerMutation, {\n ...resp\n });\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(CustomersMutations.errorMutation, e);\n } finally {\n this.context.commit(CustomersMutations.showButtonLoadingMutation, false);\n }\n }\n\n @Action\n public async [CustomersActions.registerCustomerIfNeededAction](\n payload: RegisterCustomerModel\n ): Promise {\n try {\n this.context.commit(CustomersMutations.showButtonLoadingMutation, true);\n\n // remove any errors\n this.context.commit(CustomersMutations.errorMutation, null);\n\n const resp = await this._authenticationService.registerCustomerIfNeeded({\n ...payload\n });\n\n // success\n this.context.commit(CustomersMutations.setCurrentCustomerMutation, {\n ...resp\n });\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(CustomersMutations.errorMutation, e);\n } finally {\n this.context.commit(CustomersMutations.showButtonLoadingMutation, false);\n }\n }\n\n @Action\n public async [CustomersActions.updateCustomerAction](\n payload: CustomerUpdateRequest\n ): Promise {\n try {\n this.context.commit(CustomersMutations.showButtonLoadingMutation, true);\n\n // remove any errors\n this.context.commit(CustomersMutations.errorMutation, null);\n\n const resp = await this._customersService.updateCustomer({\n ...payload\n });\n\n // success\n this.context.commit(CustomersMutations.setCurrentCustomerMutation, {\n ...resp\n });\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(CustomersMutations.errorMutation, e);\n } finally {\n this.context.commit(CustomersMutations.showButtonLoadingMutation, false);\n }\n }\n\n /**\n * Stores customer data until Paya payment is confirmed\n * @param payload\n */\n @Action\n public async [CustomersActions.setPublicCustomerAction](\n payload: RegisterCustomerModel\n ): Promise {\n return this.context.commit(CustomersMutations.setPublicCustomerMutation, {\n ...payload\n });\n }\n\n @Action\n public async [CustomersActions.clearCurrentCustomerAction](): Promise {\n return this.context.commit(CustomersMutations.clearCurrentCustomerMutation);\n }\n\n @Action\n public async [CustomersActions.resetStateAction](): Promise {\n return this.context.commit(CustomersMutations.resetStateMutation);\n }\n // #endregion\n\n // #region Mutations\n @Mutation\n private [CustomersMutations.setAllCustomersMutation](data: Customer[]) {\n this.customers = [...data];\n }\n\n @Mutation\n private [CustomersMutations.setCurrentCustomerMutation](data: Customer) {\n this.currentCustomer = { ...data };\n }\n\n @Mutation\n private [CustomersMutations.showLoadingMutation](show: boolean) {\n this.showLoading = show;\n }\n\n @Mutation\n private [CustomersMutations.showButtonLoadingMutation](show: boolean) {\n this.showButtonLoading = show;\n }\n\n @Mutation\n private [CustomersMutations.errorMutation](\n errorModel: BaseAPIErrorModel | null\n ) {\n this.errorResponse = errorModel;\n }\n\n @Mutation\n private [CustomersMutations.errorLookupMutation](\n errorModel: BaseAPIErrorModel | null\n ) {\n this.errorLookupResponse = errorModel;\n }\n\n @Mutation\n private [CustomersMutations.setPublicCustomerMutation](data: Customer) {\n this.publicCustomer = { ...data };\n }\n\n @Mutation\n private [CustomersMutations.clearCurrentCustomerMutation]() {\n this.currentCustomer = null;\n }\n\n @Mutation\n private [CustomersMutations.resetStateMutation]() {\n Object.assign(this, defaultState);\n }\n // #endregion\n}\n","import Vue from 'vue';\n\nexport const PHONE_DISPLAY = 'phone';\nexport const PHONE_LINK = 'phone_link';\n\nVue.filter(PHONE_DISPLAY, (value: string) => {\n if (!value) {\n return '';\n }\n\n return value.replace(\n /(?:\\()?(\\d{3})(?:\\))?(?:\\s)?(?:-)?(\\d{3})?(?:-)?(\\d{4})/,\n '($1) $2-$3'\n );\n});\n\nVue.filter(PHONE_LINK, (value: string) => {\n if (!value) {\n return '';\n }\n\n return value.replace(/([+]+\\d{1})|[()-.\\s]/g, '');\n});\n","import { Module, VuexModule, Action, Mutation } from 'vuex-module-decorators';\nimport { Inject } from 'inversify-props';\nimport { BaseAPIErrorModel } from '@/models/DTO/base-api-error.model';\nimport { AdminUserModel } from '@/models/DTO/admin/admin-user.model';\nimport { AdminUserService } from '@/services/admin-user.service';\nimport { AdminUserActions } from '@/constants/actions.constants';\nimport { AdminUserMutations } from '@/constants/mutation.constants';\nimport { AdminUserGetters } from '@/constants/getters.constants';\n\nexport const ADMIN_USER_MODULE_NAME = 'adminUser';\n\nclass DefaultState {\n public adminUsers: AdminUserModel[] = [];\n public currentAdminUser: AdminUserModel | null = null;\n public errorResponse: BaseAPIErrorModel | null = null;\n public showLoading = false;\n public showTableLoading = false;\n public lockOrUnlockAdminUserSuccess: boolean | null = null;\n}\n\nconst defaultState = new DefaultState();\n\n@Module({\n namespaced: true,\n name: ADMIN_USER_MODULE_NAME\n})\nexport default class AdminUserModule extends VuexModule {\n // #region Services\n @Inject()\n private readonly _adminUserService!: AdminUserService;\n // #endregion\n\n // #region State\n public adminUsers: AdminUserModel[] = defaultState.adminUsers;\n public currentAdminUser: AdminUserModel | null =\n defaultState.currentAdminUser;\n public showLoading = defaultState.showLoading;\n public showTableLoading = defaultState.showTableLoading;\n public errorResponse: BaseAPIErrorModel | null = defaultState.errorResponse;\n public lockOrUnlockAdminUserSuccess: boolean | null =\n defaultState.lockOrUnlockAdminUserSuccess;\n // #endregion\n\n // #region Getters\n public get [AdminUserGetters.hasErrorMessages](): boolean {\n return this.context.getters[AdminUserGetters.errorMessages].length > 0;\n }\n\n public get [AdminUserGetters.errorMessages](): string[] {\n return this.errorResponse?.getAllErrorMessages?.() ?? [];\n }\n // #endregion\n\n // #region Actions\n @Action\n public async [AdminUserActions.getAllAdminUsersAction](): Promise {\n try {\n this.context.commit(AdminUserMutations.showTableLoadingMutation, true);\n\n // remove any errors\n this.context.commit(AdminUserMutations.errorMutation, null);\n\n const resp = await this._adminUserService.getAllAdminUsers();\n\n // success\n this.context.commit(AdminUserMutations.setAllAdminUserssMutation, [\n ...resp\n ]);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AdminUserMutations.errorMutation, e);\n } finally {\n this.context.commit(AdminUserMutations.showTableLoadingMutation, false);\n }\n }\n\n @Action\n public async [AdminUserActions.getAdminUserByIdAction](\n id: string\n ): Promise {\n try {\n // Not needed for this operation\n // this.context.commit(AdminUserMutations.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(AdminUserMutations.errorMutation, null);\n\n const resp = await this._adminUserService.getAdminUserById(id);\n\n // success\n this.context.commit(AdminUserMutations.setCurrentAdminUserMutation, {\n ...resp\n });\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AdminUserMutations.errorMutation, e);\n } finally {\n this.context.commit(AdminUserMutations.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [AdminUserActions.resetStateAction](): Promise {\n this.context.commit(AdminUserMutations.resetStateMutation);\n }\n\n @Action\n public async [AdminUserActions.lockAdminUserAction](\n id: string\n ): Promise {\n try {\n // Not needed for this operation\n // this.context.commit(AdminUserMutations.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(AdminUserMutations.errorMutation, null);\n this.context.commit(\n AdminUserMutations.setLockOrUnlockAdminUserSuccessMutation,\n null\n );\n\n await this._adminUserService.lockAdminUser(id);\n\n // success\n this.context.commit(\n AdminUserMutations.setLockOrUnlockAdminUserSuccessMutation,\n true\n );\n } catch (error) {\n // fail\n this.context.commit(\n AdminUserMutations.setLockOrUnlockAdminUserSuccessMutation,\n false\n );\n\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AdminUserMutations.errorMutation, e);\n } finally {\n this.context.commit(AdminUserMutations.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [AdminUserActions.unlockAdminUserAction](\n id: string\n ): Promise {\n try {\n // Not needed for this operation\n // this.context.commit(AdminUserMutations.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(AdminUserMutations.errorMutation, null);\n this.context.commit(\n AdminUserMutations.setLockOrUnlockAdminUserSuccessMutation,\n null\n );\n\n await this._adminUserService.unlockAdminUser(id);\n\n // success\n this.context.commit(\n AdminUserMutations.setLockOrUnlockAdminUserSuccessMutation,\n true\n );\n } catch (error) {\n // fail\n this.context.commit(\n AdminUserMutations.setLockOrUnlockAdminUserSuccessMutation,\n false\n );\n\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(AdminUserMutations.errorMutation, e);\n } finally {\n this.context.commit(AdminUserMutations.showLoadingMutation, false);\n }\n }\n // #endregion\n\n // #region Mutations\n @Mutation\n private [AdminUserMutations.setAllAdminUserssMutation](\n data: AdminUserModel[]\n ) {\n this.adminUsers = [...data];\n }\n\n @Mutation\n private [AdminUserMutations.setCurrentAdminUserMutation](\n data: AdminUserModel\n ) {\n this.currentAdminUser = { ...data };\n }\n\n @Mutation\n private [AdminUserMutations.showLoadingMutation](show: boolean) {\n this.showLoading = show;\n }\n\n @Mutation\n private [AdminUserMutations.showTableLoadingMutation](show: boolean) {\n this.showTableLoading = show;\n }\n\n @Mutation\n private [AdminUserMutations.errorMutation](\n errorModel: BaseAPIErrorModel | null\n ) {\n this.errorResponse = errorModel;\n }\n\n @Mutation\n private [AdminUserMutations.resetStateMutation]() {\n Object.assign(this, defaultState);\n }\n\n @Mutation\n private [AdminUserMutations.setLockOrUnlockAdminUserSuccessMutation](\n data: boolean | null\n ) {\n this.lockOrUnlockAdminUserSuccess = data;\n }\n // #endregion\n}\n","export enum AuthenticationActions {\n changeComponentStateAction = 'changeComponentStateAction',\n loginAction = 'loginAction',\n registerAdminAction = 'registerAdminAction',\n forgotPasswordAction = 'forgotPasswordAction',\n setPasswordAction = 'setPasswordAction',\n logoutAction = 'logoutAction',\n resetPasswordAction = 'resetPasswordAction',\n acceptTermsAction = 'acceptTermsAction',\n tagMatchAction = 'tagMatchAction',\n tagResetMatchAction = 'tagResetMatchAction',\n changePasswordAction = 'changePasswordAction',\n registerVeterinarianAction = 'registerVeterinarianAction',\n authenticateOwner = 'authenticateOwnerAction',\n resetOwnerAuthentication = 'resetOwnerAuthenticationAction',\n refreshTokenAction = 'refreshTokenAction',\n _revokeRefreshTokenAction = '_revokeRefreshTokenAction',\n requestChangeEmailAction = 'requestChangeEmailAction',\n confirmChangeEmailAction = 'confirmChangeEmailAction',\n customerLoginTokenRequestAction = 'customerLoginTokenRequestAction'\n}\n\nexport enum VeterinarianActions {\n getVeterinarianOfficesAction = 'getVeterinarianOfficesAction',\n getVeterinarianOfficeByIdAction = 'getVeterinarianOfficeByIdAction',\n editVeterinarianOfficeAction = 'editVeterinarianOfficeAction',\n createVeterinarianOfficeAction = 'createVeterinarianOfficeAction',\n deleteVeterinarianOfficeAction = 'deleteVeterinarianOfficeAction',\n setSelectedVeterinarianOfficeIdAction = 'setSelectedVeterinarianOfficeIdAction',\n setSelectedVeterinarianUserIdAction = 'setSelectedVeterinarianUserIdAction',\n getAllUsersForOfficeAction = 'getAllUsersForOfficeAction',\n resetStateAction = 'resetStateAction',\n resetVeterinarianOfficeUsers = 'resetVeterinarianOfficeUsersAction',\n newVeterinarianOfficeAction = 'newVeterinarianOfficeAction'\n}\n\nexport enum VeterinarianOfficeUsersActions {\n getByIdAction = 'getByIdAction',\n updateVeterinarianOfficeUserAction = 'updateVeterinarianOfficeUserAction',\n lockoutVeterinarianOfficeUserAction = 'lockoutVeterinarianOfficeUserAction',\n unlockVeterinarianOfficeUserAction = 'unlockVeterinarianOfficeUserAction',\n resetStateAction = 'resetStateAction'\n}\n\nexport enum CustomersActions {\n getAllCustomersAction = 'getAllCustomersAction',\n resetStateAction = 'resetStateAction',\n getCustomerByIdAction = 'getCustomerByIdAction',\n registerCustomerAction = 'registerCustomerAction',\n updateCustomerAction = 'updateCustomerAction',\n getCustomerByEmailAction = 'getCustomerByEmailAction',\n setPublicCustomerAction = 'setPublicCustomerAction',\n clearCurrentCustomerAction = 'clearCurrentCustomerAction',\n registerCustomerIfNeededAction = 'registerCustomerIfNeededAction'\n}\n\nexport enum AdminUserActions {\n getAllAdminUsersAction = 'getAllAdminUsersAction',\n resetStateAction = 'resetStateAction',\n getAdminUserByIdAction = 'getAdminUserByIdAction',\n lockAdminUserAction = 'lockAdminUserAction',\n unlockAdminUserAction = 'unlockAdminUserAction'\n}\n\nexport enum RegisteredTagActions {\n resetStateAction = 'resetStateAction',\n getTagByIdAction = 'getTagByIdAction',\n getTagByCodeAction = 'getTagByCodeAction',\n getAllTagsAction = 'getAllTagsAction',\n getAllTagsByVeterinarianOfficeIdAction = 'getAllTagsByVeterinarianOfficeIdAction',\n addNewTagAction = 'addNewTagAction',\n isTagRegisteredAction = 'isTagRegisteredAction',\n setPublicPreRegisteredTagAction = 'setPublicPreRegisteredTagAction',\n updateTagAction = 'updateTagAction',\n resetCurrentTagAction = 'resetCurrentTagAction',\n orderDetailsAction = 'orderDetailsAction'\n}\n\nexport enum ReportActions {\n getVeterinarianBillingReport = 'getVeterinarianBillingReportAction'\n}\n","import { RegisteredTag } from '@/models/DTO/registered-tag/registered-tag.model';\nimport { BaseAPIErrorModel } from '@/models/DTO/base-api-error.model';\nimport {\n Module,\n VuexModule,\n Action,\n Mutation,\n getModule\n} from 'vuex-module-decorators';\nimport { Inject } from 'inversify-props';\nimport { RegisteredTagService } from '@/services/registered-tag.service';\nimport { RegisteredTagActions } from '@/constants/actions.constants';\nimport { RegisteredTagMutations } from '@/constants/mutation.constants';\nimport { RegisteredTagGetters } from '@/constants/getters.constants';\nimport { RegisteredTagRequest } from '@/models/DTO/registered-tag/registered-tag-request.model';\nimport { CheckIfTagExistsResponse } from '@/models/DTO/registered-tag/check-if-tag-exists-response.model';\nimport { UpdateRegisteredTagRequest } from '@/models/DTO/registered-tag/update-registered-tag-request.model';\nimport AuthenticationModule from './authentication.module';\nimport { Role } from '@/constants/role.constants';\nimport store from '../';\nimport { PayPalVenmoOrderDetails } from '@/models/paypal-venmo-order-details';\n\nexport const REGISTERED_TAG_MODULE_NAME = 'registeredTag';\n\nclass DefaultState {\n public registeredTags: RegisteredTag[] = [];\n public currentRegisteredTag: RegisteredTag | null = null;\n public errorResponse: BaseAPIErrorModel | null = null;\n public showLoading = false;\n public showButtonLoading = false;\n public showTableLoading = false;\n public doesTagExist: CheckIfTagExistsResponse | null = null;\n public orderDetails: PayPalVenmoOrderDetails | null = null;\n}\n\nconst defaultState = new DefaultState();\n\n@Module({\n namespaced: true,\n name: REGISTERED_TAG_MODULE_NAME\n})\nexport default class RegisteredTagModule extends VuexModule {\n // #region Services\n @Inject()\n private readonly _registeredTagService!: RegisteredTagService;\n // #endregion\n\n // #region State\n public registeredTags: RegisteredTag[] = defaultState.registeredTags;\n public currentRegisteredTag: RegisteredTag | null =\n defaultState.currentRegisteredTag;\n public errorResponse: BaseAPIErrorModel | null = defaultState.errorResponse;\n public showLoading = defaultState.showLoading;\n public showButtonLoading = defaultState.showButtonLoading;\n public showTableLoading = defaultState.showTableLoading;\n public doesTagExist: CheckIfTagExistsResponse | null =\n defaultState.doesTagExist;\n public orderDetails: PayPalVenmoOrderDetails | null =\n defaultState.orderDetails;\n // #endregion\n\n // #region Getters\n public get [RegisteredTagGetters.hasErrorMessages](): boolean {\n return this.context.getters[RegisteredTagGetters.errorMessages].length > 0;\n }\n\n public get [RegisteredTagGetters.errorMessages](): string[] {\n return this.errorResponse?.getAllErrorMessages?.() ?? [];\n }\n // #endregion\n\n // #region Actions\n @Action\n public async [RegisteredTagActions.getTagByIdAction](\n id: string\n ): Promise {\n try {\n this.context.commit(RegisteredTagMutations.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(RegisteredTagMutations.errorMutation, null);\n\n // remove current tag\n this.context.commit(\n RegisteredTagMutations.setCurrentRegisteredTagMutation,\n null\n );\n\n const resp = await this._registeredTagService.getTagById(id);\n\n // success\n this.context.commit(\n RegisteredTagMutations.setCurrentRegisteredTagMutation,\n {\n ...resp\n }\n );\n } catch (error) {\n console.log('module', error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(RegisteredTagMutations.errorMutation, e);\n } finally {\n this.context.commit(RegisteredTagMutations.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [RegisteredTagActions.getTagByCodeAction](\n code: string\n ): Promise {\n try {\n this.context.commit(RegisteredTagMutations.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(RegisteredTagMutations.errorMutation, null);\n\n // remove current tag\n this.context.commit(\n RegisteredTagMutations.setCurrentRegisteredTagMutation,\n null\n );\n\n const resp = await this._registeredTagService.getTagByCode(code);\n\n // success\n this.context.commit(\n RegisteredTagMutations.setCurrentRegisteredTagMutation,\n {\n ...resp\n }\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(RegisteredTagMutations.errorMutation, e);\n } finally {\n this.context.commit(RegisteredTagMutations.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [RegisteredTagActions.isTagRegisteredAction](\n code: string\n ): Promise {\n try {\n this.context.commit(RegisteredTagMutations.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(RegisteredTagMutations.errorMutation, null);\n\n // remove previous response\n this.context.commit(\n RegisteredTagMutations.setDoesTagExistsMutation,\n null\n );\n\n const resp = await this._registeredTagService.isTagRegistered(code);\n\n // success\n this.context.commit(RegisteredTagMutations.setDoesTagExistsMutation, {\n ...resp\n });\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(RegisteredTagMutations.errorMutation, e);\n } finally {\n this.context.commit(RegisteredTagMutations.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [RegisteredTagActions.getAllTagsAction](): Promise {\n try {\n this.context.commit(RegisteredTagMutations.showLoadingMutation, true);\n\n // remove any errors\n this.context.commit(RegisteredTagMutations.errorMutation, null);\n\n const resp = await this._registeredTagService.getAllTags();\n\n // success\n this.context.commit(RegisteredTagMutations.setRegisteredTagsMutation, [\n ...resp\n ]);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(RegisteredTagMutations.errorMutation, e);\n } finally {\n this.context.commit(RegisteredTagMutations.showLoadingMutation, false);\n }\n }\n\n @Action\n public async [RegisteredTagActions.getAllTagsByVeterinarianOfficeIdAction](\n id: string\n ): Promise {\n try {\n this.context.commit(\n RegisteredTagMutations.showTableLoadingMutation,\n true\n );\n\n // remove any errors\n this.context.commit(RegisteredTagMutations.errorMutation, null);\n\n const resp = await this._registeredTagService.getAllTagsByVeterinarianOfficeId(\n id\n );\n\n // success\n this.context.commit(RegisteredTagMutations.setRegisteredTagsMutation, [\n ...resp\n ]);\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(RegisteredTagMutations.errorMutation, e);\n } finally {\n this.context.commit(\n RegisteredTagMutations.showTableLoadingMutation,\n false\n );\n }\n }\n\n @Action\n public async [RegisteredTagActions.addNewTagAction](\n payload: RegisteredTagRequest\n ): Promise {\n try {\n this.context.commit(\n RegisteredTagMutations.showButtonLoadingMutation,\n true\n );\n\n // remove any errors\n this.context.commit(RegisteredTagMutations.errorMutation, null);\n\n // remove current tag\n this.context.commit(\n RegisteredTagMutations.setCurrentRegisteredTagMutation,\n null\n );\n\n let resp: RegisteredTag;\n\n const authModule: AuthenticationModule = getModule(\n AuthenticationModule,\n store\n );\n\n if (\n authModule.jwtRoles.length === 0 ||\n authModule.jwtRoles.includes(Role.Customer)\n ) {\n resp = await this._registeredTagService.addNewTagForCustomer({\n ...payload\n });\n } else {\n resp = await this._registeredTagService.addNewTag({\n ...payload\n });\n }\n\n // success\n this.context.commit(\n RegisteredTagMutations.setCurrentRegisteredTagMutation,\n {\n ...resp\n }\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(RegisteredTagMutations.errorMutation, e);\n } finally {\n this.context.commit(\n RegisteredTagMutations.showButtonLoadingMutation,\n false\n );\n }\n }\n\n @Action\n public async [RegisteredTagActions.updateTagAction](\n payload: UpdateRegisteredTagRequest\n ): Promise {\n try {\n this.context.commit(\n RegisteredTagMutations.showButtonLoadingMutation,\n true\n );\n\n // remove any errors\n this.context.commit(RegisteredTagMutations.errorMutation, null);\n\n // remove current tag\n this.context.commit(\n RegisteredTagMutations.setCurrentRegisteredTagMutation,\n null\n );\n\n const resp = await this._registeredTagService.updateTag({\n ...payload\n });\n\n // success\n this.context.commit(\n RegisteredTagMutations.setCurrentRegisteredTagMutation,\n {\n ...resp\n }\n );\n } catch (error) {\n console.log(error.response.data);\n\n const e = new BaseAPIErrorModel(error.response.data);\n\n this.context.commit(RegisteredTagMutations.errorMutation, e);\n } finally {\n this.context.commit(\n RegisteredTagMutations.showButtonLoadingMutation,\n false\n );\n }\n }\n\n @Action\n public async [RegisteredTagActions.resetStateAction](): Promise {\n this.context.commit(RegisteredTagMutations.resetStateMutation);\n }\n\n @Action\n public async [RegisteredTagActions.resetCurrentTagAction](): Promise {\n this.context.commit(RegisteredTagMutations.resetCurrentTagMutation);\n }\n\n @Action\n public async [RegisteredTagActions.orderDetailsAction](\n payload: PayPalVenmoOrderDetails\n ): Promise {\n this.context.commit(RegisteredTagMutations.orderDetailsMutation, payload);\n }\n // #endregion\n\n // #region Mutations\n @Mutation\n private [RegisteredTagMutations.setRegisteredTagsMutation](\n data: RegisteredTag[]\n ) {\n this.registeredTags = data;\n }\n\n @Mutation\n private [RegisteredTagMutations.setCurrentRegisteredTagMutation](\n data: RegisteredTag | null\n ) {\n this.currentRegisteredTag = data;\n }\n\n @Mutation\n private [RegisteredTagMutations.setDoesTagExistsMutation](\n data: CheckIfTagExistsResponse | null\n ) {\n this.doesTagExist = data;\n }\n\n @Mutation\n private [RegisteredTagMutations.showLoadingMutation](show: boolean) {\n this.showLoading = show;\n }\n\n @Mutation\n private [RegisteredTagMutations.showButtonLoadingMutation](show: boolean) {\n this.showButtonLoading = show;\n }\n\n @Mutation\n private [RegisteredTagMutations.showTableLoadingMutation](show: boolean) {\n this.showTableLoading = show;\n }\n\n @Mutation\n private [RegisteredTagMutations.errorMutation](\n errorModel: BaseAPIErrorModel | null\n ) {\n this.errorResponse = errorModel;\n }\n\n @Mutation\n private [RegisteredTagMutations.resetStateMutation]() {\n Object.assign(this, defaultState);\n }\n\n @Mutation\n private [RegisteredTagMutations.resetCurrentTagMutation]() {\n this.currentRegisteredTag = defaultState.currentRegisteredTag;\n this.doesTagExist = defaultState.doesTagExist;\n }\n\n @Mutation\n private [RegisteredTagMutations.orderDetailsMutation](\n data: PayPalVenmoOrderDetails\n ) {\n if (!data) {\n this.orderDetails = null;\n }\n\n this.orderDetails = { ...data };\n }\n // #endregion\n}\n"],"sourceRoot":""}