{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7e02","webpack:///./src/App.vue?47c3","webpack:///./src/util.ts","webpack:///./src/store/index.ts","webpack:///./src/App.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?bff9","webpack:///./src/views/Associations.vue?a4f0","webpack:///./src/views/Associations.vue","webpack:///./src/views/Associations.vue?6431","webpack:///./src/views/Associations.vue?89f2","webpack:///./src/views/Employees.vue?919b","webpack:///./src/components/empty-table.vue?f56c","webpack:///./src/components/empty-table.vue","webpack:///./src/components/empty-table.vue?0242","webpack:///./src/components/empty-table.vue?8df5","webpack:///./src/views/Employees.vue","webpack:///./src/views/Employees.vue?3371","webpack:///./src/views/Employees.vue?c24d","webpack:///./src/views/UnitSearch.vue?1db5","webpack:///./src/views/UnitSearch.vue","webpack:///./src/views/UnitSearch.vue?4c27","webpack:///./src/views/UnitSearch.vue?a81c","webpack:///./src/views/AuditLog.vue?0726","webpack:///./src/views/AuditLog.vue","webpack:///./src/views/AuditLog.vue?3e90","webpack:///./src/views/AuditLog.vue?b644","webpack:///./src/views/AssociationCollections.vue?3441","webpack:///./src/views/AssociationCollections.vue","webpack:///./src/views/AssociationCollections.vue?9506","webpack:///./src/views/AssociationCollections.vue?f93d","webpack:///./src/views/owner-detail/OwnerDetail.vue?1e4d","webpack:///./src/views/owner-detail/OwnerDetail.vue","webpack:///./src/views/owner-detail/OwnerDetail.vue?9cfa","webpack:///./src/views/owner-detail/OwnerDetail.vue?8f04","webpack:///./src/views/owner-detail/UnitInfo.vue?0409","webpack:///./src/views/owner-detail/UnitInfo.vue","webpack:///./src/views/owner-detail/UnitInfo.vue?6c65","webpack:///./src/views/owner-detail/UnitInfo.vue?2fe0","webpack:///./src/views/owner-detail/OwnerPayments.vue?ad0b","webpack:///./src/views/owner-detail/OwnerPayments.vue","webpack:///./src/views/owner-detail/OwnerPayments.vue?cf32","webpack:///./src/views/owner-detail/OwnerPayments.vue?c293","webpack:///./src/views/owner-detail/OwnerAssessments.vue?7171","webpack:///./src/views/owner-detail/OwnerAssessments.vue","webpack:///./src/views/owner-detail/OwnerAssessments.vue?805a","webpack:///./src/views/owner-detail/OwnerAssessments.vue?7a89","webpack:///./src/router/index.ts","webpack:///./src/main.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","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","on","$event","preventDefault","onLogout","_v","_l","route","path","_s","title","_e","shouldShowNav","staticRenderFns","axios","default","http","baseURL","loginUrl","logoutUrl","interceptors","response","use","error","status","location","assign","toString","startsWith","commit","Promise","reject","ClaimType","Role","toTitleCase","toLocaleUpperCase","substr","getRouteConfig","router","findRouteByName","options","routes","config","find","children","childConfig","USMoneyFormat","Intl","NumberFormat","style","currency","money","parseFloat","Number","isNaN","Error","format","dateFormatValue","DateTimeFormat","month","day","year","dateFormat","Date","getTime","getRole","claims","isAdmin","some","hasClaim","CAN_LIST_USERS","CAN_EDIT_USERS","ADMIN","isEmployee","CAN_LIST_DATA","EMPLOYEE","isAssociationUser","ASSOCIATION_CLAIM","ASSOCIATION","claim","type","hasClaimType","claimType","claimValue","canPerformOperations","operations","operation","userClaim","store","state","errors","isLoggedIn","user","associations","currentAssociation","associationCollections","currentOwner","currentUnits","allUnits","unitPayments","unitAssessments","employees","auditLogFilters","auditLogs","getters","isUserAdmin","isUserEmployee","isUserAssociation","userAssociationId","parseInt","currentAssociationId","associationId","mutations","ADD_ERROR","REMOVE_FIRST_ERROR","UPDATE_LOGIN","UPDATE_USER","UPDATE_ASSOCIATIONS","UPDATE_CURRENT_ASSOCIATION","UPDATE_CURRENT_ASSOCIATION_COLLECTIONS","UPDATE_CURRENT_OWNER","UPDATE_ALL_UNITS","UPDATE_CURRENT_OWNER_UNITS","CLEAR_CURRENT_UNITS","UPDATE_UNITS_PAYMENTS","UPDATE_UNITS_ASSESSMENTS","UPDATE_EMPLOYEES","ADD_NEW_EMPLOYEE","employee","UPDATE_AUDITLOGFILTERS","filterList","UPDATE_AUDITLOGS","logs","actions","GET_LOGIN_STATE","LOGOUT","post","GET_ASSOCIATION","association","GET_ASSOCIATION_BY_NUMBER","associationNumber","GET_ASSOCIATIONS","GET_ASSOCIATION_COLLECTIONS","dispatch","a","GET_ASSOCIATION_COLLECTIONS_BY_NUMBER","GET_OWNER","ownerId","owner","GET_UNITS","units","GET_OWNER_UNITS","GET_UNITS_PAYMENTS","unitId","payments","GET_UNITS_ASSESSMENTS","assessments","GET_EMPLOYEES","EMPLOYEE_CREATE","password","role","EMPLOYEE_UPDATE","put","EMPLOYEE_DELETE","id","delete","GET_AUDITLOGFILTERS","selectedFilters","params","GET_AUDITLOGS","Store","URLS","login","logout","username","userName","newCount","oldCount","errorMessage","$store","$bvToast","toast","autoHideDelay","$router","filter","meta","component","model","callback","$$v","expression","filterOn","fields","currentPage","perPage","onFiltered","scopedSlots","_u","fn","item","totalRows","thClass","tdClass","sortable","label","filteredItems","rows","directives","rawName","modifiers","onClickNewEmployee","firstName","lastName","employeeRole","formatLastLogin","lastLogin","onClickEditButton","onClickDeleteButton","staticStyle","modalTitle","onFormModalOk","onFormModalHidden","ref","stopPropagation","onSubmit","indexOf","_k","keyCode","field","input","currentEmployee","$set","formModalMode","wantsToUpdatePassword","currentEmployeePassword","currentEmployeeRoleOptions","currentEmployeeRoleSelected","_t","rowName","String","required","text","dateString","parse","date","bvModalEvt","$nextTick","$bvModal","hide","action","valid","$refs","form","checkValidity","msgBoxConfirm","confirmDelete","f","components","EmptyTable","onSubmitFilter","startDate","onFilterInputChange","endDate","display","selected","onFocusFilterInput","onBlurFilterInput","option","domProps","currentLog","formatTimestamp","description","parseOldDataFromLog","oldData","oldRecordValue","oldRecordKey","todaysDate","lastWeekDate","inDetail","start_date","end_date","admin","unit","event","target","refreshLogs","dateTimeString","hour","minute","second","log","all","split","fromEntries","map","row","entries","filters","getOptionSelection","associationName","collections","_f","$route","number","ownerName","childViewName","ownerAssociationId","tabIndex","routeTo","Unit","Payments","Assessments","OwnerRoute","replace","includes","console","fullName","onClickReportButton","onModalHidden","onViewReport","onPrintReport","onCancelModal","proxy","reportDateOptions","reportDateOptionSelected","reportDate","reportInlcudesRemarks","reportForUnit","openReportPage","wantsPrint","query","URLSearchParams","append","urlString","url","URL","origin","open","unitSelectOptions","selectedUnit","getType","selectedUnitValue","toUpperCase","unitNumber","excludeKeys","keys","k","totals","totalAmount","reduce","total","amount","totalAttorneyFees","attorneyFee","totalLateFees","lateFee","totalCost","cost","totalDisbursed","disbursedAmount","redirect","to","AssociationCollections","alias","OwnerPayments","OwnerAssessments","base","beforeEach","from","next","productionTip","render","h","$mount","init"],"mappings":"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","file":"js/app.1cffe652.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 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// 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\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 \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('header',[_c('b-navbar',{staticClass:\"navbar navbar-expand-sm navbar-light navbar-toggleable-sm bg-white border-bottom box-shadow mb-3\",attrs:{\"toggleable\":\"md\"}},[_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-navbar-brand',{attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"w-25\",attrs:{\"src\":\"/images/logo.jpg\"}})]),_c('b-navbar-nav',{staticClass:\"ml-auto\"},[[_c('b-nav-item',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onLogout($event)}}},[_vm._v(\"Logout\")])]],2)],1)],1)],1),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[(_vm.shouldShowNav)?_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-nav',{attrs:{\"vertical\":\"\"}},_vm._l((_vm.routes),function(route){return _c('b-nav-item',{key:route.name,attrs:{\"to\":route.path,\"exact\":\"\"}},[_vm._v(_vm._s(route.title))])}),1)],1):_vm._e(),_c('b-col',{attrs:{\"cols\":_vm.shouldShowNav ? '10' : '12'}},[_c('router-view')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import VueRouter, { RouteConfig } from 'vue-router';\r\nimport { ClaimDto } from './interfaces/dto/ClaimDto';\r\nimport store from './store';\r\n\r\nconst { default: axios } = require('axios');\r\n\r\n// Set up axios\r\nexport const http = axios.create({\r\n baseURL: \"/api/\"\r\n});\r\n\r\nexport const loginUrl = '/identity/account/login';\r\nexport const logoutUrl = '/identity/account/logout';\r\n\r\nhttp.interceptors.response.use(null, function (error: any) {\r\n\r\n if (error.response.status === 401) {\r\n // Redirect to login\r\n window.location.assign(loginUrl);\r\n } else if (error.response.status.toString().startsWith(\"4\")) {\r\n store.commit(\"ADD_ERROR\", error.response.data);\r\n }\r\n return Promise.reject(error);\r\n});\r\n\r\nexport const parseBool = (value: string): boolean => {\r\n if (typeof value === 'boolean') return value;\r\n\r\n switch (value) {\r\n case undefined:\r\n case null:\r\n case '':\r\n case 'False':\r\n return false;\r\n\r\n default:\r\n return true;\r\n }\r\n}\r\n\r\nexport const toTitleCase = (s: string): string => {\r\n if (!s || typeof s != \"string\") return s;\r\n\r\n return s[0].toLocaleUpperCase() + s.substr(1);\r\n}\r\n\r\n/***\r\n * View Utils\r\n */\r\n\r\nexport const getRouteConfig = (router: VueRouter, name: string) =>\r\n findRouteByName(router.options.routes, name);\r\n\r\nconst findRouteByName = (routes: RouteConfig[], name: string): RouteConfig => {\r\n let config = null;\r\n\r\n routes.find((route) => {\r\n const children = route.children;\r\n\r\n if (children) {\r\n const childConfig = findRouteByName(children, name)\r\n if (childConfig) {\r\n config = childConfig;\r\n return true;\r\n }\r\n }\r\n\r\n if (route.name === name) {\r\n config = route;\r\n return true;\r\n }\r\n })\r\n\r\n return config;\r\n}\r\n\r\n/**\r\n * Filter Functions\r\n */\r\n\r\nconst USMoneyFormat = new Intl.NumberFormat(\"en-US\", {\r\n style: 'currency',\r\n currency: 'USD',\r\n})\r\nexport const money = (value: number | string): string => {\r\n if (typeof value === \"string\") {\r\n value = parseFloat(value);\r\n\r\n if (Number.isNaN(value)) {\r\n throw Error(`money Filter: The provided value (${value}) cannot be parsed.`);\r\n }\r\n }\r\n\r\n return USMoneyFormat.format(value);\r\n}\r\n\r\n\r\nconst dateFormatValue = new Intl.DateTimeFormat(\"en\", { month: \"long\", day: \"numeric\", year: \"numeric\" });\r\nexport const dateFormat = (value: Date | string): string => {\r\n if (typeof value === \"string\") {\r\n value = new Date(value);\r\n\r\n if (Number.isNaN(value.getTime())) {\r\n throw Error(`date Filter: The provided value (${value}) cannot be parsed.`);\r\n }\r\n }\r\n\r\n return dateFormatValue.format(value);\r\n}\r\n\r\n/**\r\n * Claims and Roles\r\n */\r\nexport const getRole = (claims: ClaimDto[]): Role => {\r\n const isAdmin = claims.some(c => hasClaim(c, ClaimType.CAN_LIST_USERS, \"True\")) &&\r\n claims.some(c => hasClaim(c, ClaimType.CAN_EDIT_USERS, \"True\"));\r\n if (isAdmin) {\r\n return Role.ADMIN\r\n }\r\n\r\n const isEmployee = claims.some(c => hasClaim(c, ClaimType.CAN_LIST_DATA, \"True\"));\r\n if (isEmployee) {\r\n return Role.EMPLOYEE;\r\n }\r\n\r\n const isAssociationUser = claims.some(c => hasClaim(c, ClaimType.ASSOCIATION_CLAIM));\r\n if (isAssociationUser) {\r\n return Role.ASSOCIATION;\r\n }\r\n}\r\n\r\nexport const hasClaim = (claim: ClaimDto, type: string, value?: string) => {\r\n const hasClaimType = claim.claimType === type;\r\n\r\n if (typeof value === \"undefined\") {\r\n return hasClaimType\r\n }\r\n\r\n return hasClaimType && claim.claimValue === value;\r\n}\r\n\r\nexport const canPerformOperations = (operations: ClaimType[], claims: ClaimDto[]) => {\r\n return operations.some(\r\n operation => claims.some(userClaim => {\r\n const claimValue = operation === ClaimType.ASSOCIATION_CLAIM ?\r\n userClaim.claimValue :\r\n \"True\";\r\n\r\n return hasClaim(userClaim, operation, claimValue);\r\n })\r\n )\r\n}\r\n\r\nexport enum ClaimType {\r\n CAN_LIST_USERS = \"CanListUsers\",\r\n CAN_EDIT_USERS = \"CanEditUsers\",\r\n CAN_LIST_DATA = \"CanListData\",\r\n CAN_EDIT_DATA = \"CanEditData\",\r\n ASSOCIATION_CLAIM = \"AssociationClaim\",\r\n}\r\n\r\nexport enum Role {\r\n ADMIN = \"Administrator\",\r\n EMPLOYEE = \"Employee\",\r\n ASSOCIATION = \"Associtation\",\r\n}","import { Assessment } from '@/interfaces/models/Assessment';\nimport { AssociationCollections } from '@/interfaces/dto/AssociationCollections';\nimport { AssociationDto } from '@/interfaces/dto/AssociationDto';\nimport { UnitInfoDto } from '@/interfaces/dto/UnitInfoDto';\nimport { UserDto } from '@/interfaces/dto/UserDto';\nimport { Owner } from '@/interfaces/models/Owner';\nimport { Payment } from '@/interfaces/models/Payment';\nimport { getRole, http, logoutUrl, parseBool, Role } from '@/util';\nimport Vue from 'vue'\nimport Vuex, { ActionContext } from 'vuex'\nimport { AuditLogFilters } from '@/interfaces/dto/AuditLogFilters';\nimport { AuditLog } from '@/interfaces/models/AuditLog';\n\nVue.use(Vuex)\n\nconst store: AppStore = {\n state: {\n errors: [],\n isLoggedIn: false,\n user: null,\n associations: [],\n currentAssociation: null,\n associationCollections: null,\n currentOwner: null,\n currentUnits: null,\n allUnits: null,\n unitPayments: null,\n unitAssessments: null,\n employees: null,\n auditLogFilters: null,\n auditLogs: null,\n },\n getters: {\n isUserAdmin(state: AppState): boolean {\n return state.user &&\n getRole(state.user.claims) === Role.ADMIN;\n },\n isUserEmployee(state: AppState): boolean {\n return state.user &&\n getRole(state.user.claims) === Role.EMPLOYEE;\n },\n isUserAssociation(state: AppState): boolean {\n return state.user &&\n getRole(state.user.claims) === Role.ASSOCIATION;\n },\n userAssociationId(state: AppState): number {\n if (!state.user || !state.user.claims) {\n return null;\n }\n\n return parseInt(state.user.claims\n .find(c => c.claimType === 'AssociationClaim').claimValue);\n },\n currentAssociationId(state: AppState): number {\n return state.currentAssociation.associationId;\n }\n },\n mutations: {\n ADD_ERROR(state: AppState, error: string): void {\n state.errors.push(error);\n },\n REMOVE_FIRST_ERROR(state: AppState): void {\n state.errors.shift();\n },\n UPDATE_LOGIN(state: AppState, isLoggedIn: boolean): void {\n state.isLoggedIn = isLoggedIn;\n },\n UPDATE_USER(state: AppState, user: UserDto): void {\n state.user = user;\n },\n UPDATE_ASSOCIATIONS(state: AppState, associations: AssociationDto[]) {\n state.associations = associations;\n },\n UPDATE_CURRENT_ASSOCIATION(state: AppState, currentAssociation: AssociationDto) {\n state.currentAssociation = currentAssociation;\n },\n UPDATE_CURRENT_ASSOCIATION_COLLECTIONS(state: AppState, associationCollections: AssociationCollections[]) {\n state.associationCollections = associationCollections;\n },\n UPDATE_CURRENT_OWNER(state: AppState, currentOwner: Owner) {\n state.currentOwner = currentOwner;\n },\n UPDATE_ALL_UNITS(state: AppState, allUnits: UnitInfoDto[]) {\n state.allUnits = allUnits;\n },\n UPDATE_CURRENT_OWNER_UNITS(state: AppState, currentUnits: UnitInfoDto[]) {\n state.currentUnits = currentUnits;\n },\n CLEAR_CURRENT_UNITS(state: AppState, currentUnits: UnitInfoDto[]) {\n state.currentUnits = null;\n },\n UPDATE_UNITS_PAYMENTS(state: AppState, unitPayments: Payment[]) {\n state.unitPayments = unitPayments;\n },\n UPDATE_UNITS_ASSESSMENTS(state: AppState, unitAssessments: Assessment[]) {\n state.unitAssessments = unitAssessments;\n },\n UPDATE_EMPLOYEES(state: AppState, employees: UserDto[]) {\n state.employees = employees;\n },\n ADD_NEW_EMPLOYEE(state: AppState, employee: UserDto) {\n state.employees.push(employee);\n },\n UPDATE_AUDITLOGFILTERS(state: AppState, filterList: AuditLogFilters) {\n state.auditLogFilters = filterList;\n },\n UPDATE_AUDITLOGS(state: AppState, logs: AuditLog[]) {\n state.auditLogs = logs;\n },\n },\n actions: {\n async GET_LOGIN_STATE({ commit }: ActionContext) {\n const { data: user } = await http.get('user');\n\n if (user) {\n commit('UPDATE_USER', user);\n commit('UPDATE_LOGIN', true);\n }\n },\n async LOGOUT({ commit }: ActionContext) {\n await http.post('user/logout')\n\n commit('UPDATE_USER', null);\n commit('UPDATE_LOGIN', false);\n\n window.location.assign(logoutUrl);\n },\n async GET_ASSOCIATION({ commit }: ActionContext, associationId: number) {\n const { data: association } = await http.get(`associations/${associationId}`);\n\n commit('UPDATE_CURRENT_ASSOCIATION', association);\n },\n async GET_ASSOCIATION_BY_NUMBER({ commit }: ActionContext, associationNumber: string) {\n const { data: association } = await http.get(`associations/number/${associationNumber}`);\n\n commit('UPDATE_CURRENT_ASSOCIATION', association);\n },\n async GET_ASSOCIATIONS({ commit }: ActionContext) {\n const { data: associations } = await http.get('associations');\n\n commit('UPDATE_ASSOCIATIONS', associations);\n },\n async GET_ASSOCIATION_COLLECTIONS({ dispatch, commit, state }: ActionContext, associationId: number) {\n if (!associationId) {\n throw new Error(\"GET_ASSOCIATION_COLLECTIONS expects an association Id!\")\n }\n\n let association: AssociationDto;\n if (state.associations?.length) {\n association = state.associations.find((a) =>\n a.associationId\n // Perform loose equality because `store.dispatch` can't guarantee that associationId is `number`\n ==\n associationId);\n\n commit('UPDATE_CURRENT_ASSOCIATION', association);\n }\n\n if (!(association || state.currentAssociation?.associationId === associationId)) {\n await dispatch(\"GET_ASSOCIATION\", associationId);\n\n association = state.currentAssociation;\n }\n\n const { data: associationCollections } = await http.get(`associations/collections/${associationId}`);\n\n commit('UPDATE_CURRENT_ASSOCIATION_COLLECTIONS', associationCollections);\n },\n async GET_ASSOCIATION_COLLECTIONS_BY_NUMBER({ dispatch, commit }: ActionContext, associationNumber: string) {\n if (!associationNumber) {\n throw new Error(\"GET_ASSOCIATION_COLLECTIONS expects an association Id!\")\n }\n\n const { data: association }: { data: AssociationDto } =\n await dispatch(\"GET_ASSOCIATION_BY_NUMBER\", associationNumber);\n\n commit('UPDATE_CURRENT_ASSOCIATION', association);\n\n const { data: associationCollections } = await http.get(`associations/collections/${association.associationId}`);\n\n commit('UPDATE_CURRENT_ASSOCIATION_COLLECTIONS', associationCollections);\n },\n async GET_OWNER({ commit }: ActionContext, ownerId: number) {\n const { data: owner } = await http.get(`owner/${ownerId}`);\n\n commit('UPDATE_CURRENT_OWNER', owner);\n },\n async CLEAR_CURRENT_UNITS({ commit }: ActionContext) {\n commit('CLEAR_CURRENT_UNITS');\n },\n async GET_UNITS({ commit }: ActionContext) {\n const { data: units } = await http.get(`unit`);\n\n commit('UPDATE_ALL_UNITS', units);\n },\n async GET_OWNER_UNITS({ commit }: ActionContext, ownerId: number) {\n const { data: units } = await http.get(`unit/owner/${ownerId}`);\n\n commit('UPDATE_CURRENT_OWNER_UNITS', units);\n },\n async GET_UNITS_PAYMENTS({ commit }: ActionContext, unitId: number) {\n const { data: payments } = await http.get(`unit/${unitId}/payments`);\n\n commit('UPDATE_UNITS_PAYMENTS', payments);\n },\n async GET_UNITS_ASSESSMENTS({ commit }: ActionContext, unitId: number) {\n const { data: assessments } = await http.get(`unit/${unitId}/assessments`);\n\n commit('UPDATE_UNITS_ASSESSMENTS', assessments);\n },\n async GET_EMPLOYEES({ commit }: ActionContext) {\n const { data: employees } = await http.get('employees');\n\n commit('UPDATE_EMPLOYEES', employees);\n },\n async EMPLOYEE_CREATE({ commit }: ActionContext,\n { user, password, role }: { user: UserDto, password: string, role: string }) {\n const { data: employee } = await http.post('employees', { user, password, role });\n\n commit('ADD_NEW_EMPLOYEE', employee);\n },\n async EMPLOYEE_UPDATE({ dispatch }: ActionContext,\n { user, password, role }: { user: UserDto, password: string, role: string }) {\n await http.put('employees', { user, password, role });\n\n dispatch('GET_EMPLOYEES');\n },\n async EMPLOYEE_DELETE({ dispatch }: ActionContext, id: number) {\n await http.delete(`employees/${id}`);\n\n dispatch('GET_EMPLOYEES');\n },\n async GET_AUDITLOGFILTERS({ commit }: ActionContext, selectedFilters: Record) {\n const { data: filterList } = await http.get('auditlog/filters', { params: selectedFilters });\n\n commit('UPDATE_AUDITLOGFILTERS', filterList);\n },\n async GET_AUDITLOGS({ commit }: ActionContext, selectedFilters: Record) {\n const { data: logs } = await http.get('auditlog', { params: selectedFilters });\n\n commit('UPDATE_AUDITLOGS', logs);\n },\n },\n modules: {\n }\n}\n\nexport default new Vuex.Store(store)\n\nexport interface AppStore {\n state: AppState;\n getters?: any;\n mutations: any;\n actions: any;\n modules: any;\n}\n\nexport interface AppState {\n errors: string[];\n isLoggedIn: boolean;\n\n user: UserDto;\n associations: AssociationDto[],\n currentAssociation: AssociationDto,\n associationCollections: AssociationCollections[]\n currentOwner: Owner,\n currentUnits: UnitInfoDto[],\n allUnits: UnitInfoDto[],\n unitPayments: Payment[],\n unitAssessments: Assessment[],\n employees: UserDto[];\n auditLogFilters: AuditLogFilters,\n auditLogs: AuditLog[]\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport store from \"./store\";\nimport { canPerformOperations } from \"./util\";\n\n@Component\nexport default class App extends Vue {\n public readonly URLS = {\n login: \"/identity/account/login\",\n logout: \"/identity/account/logout\",\n };\n\n public username = store.state.user.userName;\n\n public onLogout() {\n store.dispatch(\"LOGOUT\");\n }\n\n public get shouldShowNav() {\n return !store.getters.isUserAssociation;\n }\n\n public get shouldShowUserNameWelcome() {\n return !store.getters.isUserAssociation;\n }\n\n public get routes() {\n return this.$router.options.routes.filter(\n (route) =>\n route.hasOwnProperty(\"title\") &&\n (!route.meta.operations ||\n canPerformOperations(\n route.meta.operations,\n this.$store.state.user.claims\n ))\n );\n }\n\n public get errorCount() {\n return this.$store.state.errors.length;\n }\n\n @Watch(\"errorCount\")\n public onErrorCountChange(newCount: number, oldCount: number) {\n if (newCount > oldCount) {\n const errorMessage = this.$store.state.errors[0];\n this.$bvToast.toast(errorMessage, {\n title: \"We had a problem processing your last request\",\n autoHideDelay: 10000,\n });\n this.$store.commit(\"REMOVE_FIRST_ERROR\");\n }\n }\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=63510cb0&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{staticClass:\"my-1\",attrs:{\"lg\":\"6\"}},[_c('b-form-group',{staticClass:\"mb-0 mt-2\",attrs:{\"label\":\"Filter\",\"label-cols-sm\":\"2\",\"label-align-sm\":\"right\",\"label-size\":\"sm\",\"label-for\":\"unit-payment-filter-input\"}},[_c('b-form-input',{staticClass:\"mr-3\",attrs:{\"autofocus\":\"\",\"debounce\":\"250\",\"type\":\"search\",\"id\":\"unit-payment-filter-input\",\"placeholder\":\"Type to Search\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}}),_c('b-button',{attrs:{\"disabled\":!_vm.filter},on:{\"click\":function($event){_vm.filter = ''}}},[_vm._v(\"Clear\")])],1)],1),_c('b-col',{staticClass:\"my-1\",attrs:{\"lg\":\"6\"}},[_c('b-form-group',{staticClass:\"mb-0 mt-3\",attrs:{\"label\":\"Filter On\",\"label-cols-sm\":\"2\",\"label-align-sm\":\"right\",\"label-size\":\"sm\",\"description\":\"Leave all unchecked to filter on all data\"}},[_c('b-form-checkbox-group',{staticClass:\"mt-1\",model:{value:(_vm.filterOn),callback:function ($$v) {_vm.filterOn=$$v},expression:\"filterOn\"}},[_c('b-form-checkbox',{attrs:{\"value\":\"number\"}},[_vm._v(\"Number\")]),_c('b-form-checkbox',{attrs:{\"value\":\"name\"}},[_vm._v(\"Name\")])],1)],1)],1)],1),_c('b-row',[_c('b-col',{staticClass:\"mr-auto ml-auto\",attrs:{\"lg\":\"12\"}},[_c('b-table',{attrs:{\"fields\":_vm.fields,\"items\":_vm.associations,\"small\":\"\",\"current-page\":_vm.currentPage,\"per-page\":_vm.perPage,\"sticky-header\":\"100%\",\"head-variant\":\"light\",\"filter\":_vm.filter,\"filter-included-fields\":_vm.filterOn},on:{\"filtered\":_vm.onFiltered},scopedSlots:_vm._u([{key:\"cell(name)\",fn:function(data){return [_c('router-link',{attrs:{\"to\":{ name: 'AssociationCollections', params: { associationId: data.item.associationId }}}},[_vm._v(\" \"+_vm._s(data.value)+\" \")])]}}])}),_c('b-pagination',{staticClass:\"my-0\",attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage,\"align\":\"fill\",\"size\":\"sm\"},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport Component from \"vue-class-component\";\nimport { Association } from \"../interfaces/models/Association\";\nimport store from \"../store\";\n\n@Component\nexport default class Associations extends Vue {\n public currentPage = 1;\n public perPage = 50;\n\n public filter = \"\";\n public filterOn: any[] = [];\n\n public filteredItems: Association[];\n\n public get associations(): Association[] {\n if (!store.state.associations) return [] as Association[];\n\n return store.state.associations;\n }\n\n public fields = [\n { key: \"associationId\", thClass: \"d-none\", tdClass: \"d-none\" },\n { key: \"units\", thClass: \"d-none\", tdClass: \"d-none\" },\n { key: \"name\", sortable: true },\n { key: \"number\", sortable: true },\n { key: \"interestRate\", sortable: true },\n { key: \"unitQuantity\", label: \"Number of Units\", sortable: true },\n { key: \"password\" },\n ];\n\n public get totalRows() {\n const rows = this.filteredItems ? this.filteredItems : this.associations;\n\n return rows.length + 1;\n }\n\n public onFiltered(filteredItems: Association[]) {\n // Trigger pagination to update the number of buttons/pages due to filtering\n this.filteredItems = filteredItems;\n }\n\n public async created() {\n await store.dispatch(\"GET_ASSOCIATIONS\");\n }\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!./Associations.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!./Associations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Associations.vue?vue&type=template&id=00a193b3&\"\nimport script from \"./Associations.vue?vue&type=script&lang=ts&\"\nexport * from \"./Associations.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('b-button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.employees-modal-form\",modifiers:{\"employees-modal-form\":true}}],attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.onClickNewEmployee}},[_vm._v(\"New Employee\")])],1)],1),_c('b-row',[_c('b-col',{staticClass:\"my-1\",attrs:{\"lg\":\"6\"}},[_c('b-form-group',{staticClass:\"mb-0 mt-2\"},[_c('b-form-input',{staticClass:\"mr-3\",attrs:{\"autofocus\":\"\",\"debounce\":\"250\",\"type\":\"search\",\"id\":\"employee-filter-input\",\"placeholder\":\"Type to Search\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}}),_c('b-button',{attrs:{\"disabled\":!_vm.filter},on:{\"click\":function($event){_vm.filter = ''}}},[_vm._v(\"Clear\")])],1)],1),_c('b-col',{staticClass:\"my-1\",attrs:{\"lg\":\"6\"}},[_c('b-form-group',{staticClass:\"mb-0 mt-3\",attrs:{\"label\":\"Filter On\",\"label-cols-sm\":\"2\",\"label-align-sm\":\"right\",\"label-size\":\"sm\",\"description\":\"Leave all unchecked to filter on all data\"}},[_c('b-form-checkbox-group',{staticClass:\"mt-1\",model:{value:(_vm.filterOn),callback:function ($$v) {_vm.filterOn=$$v},expression:\"filterOn\"}},[_c('b-form-checkbox',{attrs:{\"value\":\"firstName\"}},[_vm._v(\"First Name\")]),_c('b-form-checkbox',{attrs:{\"value\":\"lastName\"}},[_vm._v(\"Last Name\")]),_c('b-form-checkbox',{attrs:{\"value\":\"email\"}},[_vm._v(\"email\")])],1)],1)],1)],1),_c('b-row',[_c('b-col',{staticClass:\"mr-auto ml-auto\",attrs:{\"lg\":\"12\"}},[(_vm.employees.length)?_c('b-table',{attrs:{\"fields\":_vm.fields,\"items\":_vm.employees,\"small\":\"\",\"sticky-header\":\"100%\",\"head-variant\":\"light\",\"filter\":_vm.filter,\"filter-included-fields\":_vm.filterOn},on:{\"filtered\":_vm.onFiltered},scopedSlots:_vm._u([{key:\"cell(firstName)\",fn:function(data){return [(data.item.firstName)?_c('span',[_vm._v(\" \"+_vm._s(data.item.firstName)+\" \")]):_c('span',[_vm._v(\"(No \"),_c('em',[_vm._v(\"first name\")]),_vm._v(\" supplied)\")])]}},{key:\"cell(lastName)\",fn:function(data){return [(data.item.lastName)?_c('span',[_vm._v(\" \"+_vm._s(data.item.lastName)+\" \")]):_c('span',[_vm._v(\"(No \"),_c('em',[_vm._v(\"last name\")]),_vm._v(\" supplied)\")])]}},{key:\"cell(role)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm.employeeRole(data.item))+\" \")]}},{key:\"cell(lastLogin)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm.formatLastLogin(data.item.lastLogin))+\" \")]}},{key:\"cell(edit)\",fn:function(data){return [_c('b-button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.employees-modal-form\",modifiers:{\"employees-modal-form\":true}}],staticClass:\"mr-1\",attrs:{\"size\":\"sm\",\"pill\":\"\"},on:{\"click\":function($event){return _vm.onClickEditButton(data.item)}}},[_vm._v(\" Edit \")])]}},{key:\"cell(delete)\",fn:function(data){return [_c('b-button',{staticClass:\"mr-1\",attrs:{\"size\":\"sm\",\"pill\":\"\"},on:{\"click\":function($event){return _vm.onClickDeleteButton(data.item)}}},[_vm._v(\" Delete \")])]}}],null,false,2301001981)}):_c('empty-table',{attrs:{\"row-name\":\"employees\"}}),(_vm.currentEmployee)?_c('b-modal',{staticStyle:{\"min-height\":\"40rem\"},attrs:{\"id\":\"employees-modal-form\",\"centered\":\"\",\"title\":_vm.modalTitle},on:{\"ok\":_vm.onFormModalOk,\"hidden\":_vm.onFormModalHidden}},[_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('form',{ref:\"form\",on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onSubmit($event)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.onSubmit($event)}}},[_vm._l((_vm.modalFormFields),function(field){return _c('b-form-group',{key:field.key,attrs:{\"label\":field.label}},[_c('b-form-input',{attrs:{\"type\":field.input,\"placeholder\":\"Value not supplied\",\"required\":\"\",\"autocomplete\":\"`employees-modal-${field.key}`\",\"name\":(\"employees-modal-\" + (field.key))},model:{value:(_vm.currentEmployee[field.key]),callback:function ($$v) {_vm.$set(_vm.currentEmployee, field.key, $$v)},expression:\"currentEmployee[field.key]\"}})],1)}),_c('b-form-group',{attrs:{\"label\":\"Password\"}},[_c('b-form-input',{attrs:{\"type\":\"password\",\"required\":_vm.formModalMode === 'create' ||_vm.wantsToUpdatePassword,\"disabled\":_vm.formModalMode === 'edit' && !_vm.wantsToUpdatePassword,\"autocomplete\":\"employees-modal=password\",\"name\":\"employees-modal-password\"},model:{value:(_vm.currentEmployeePassword),callback:function ($$v) {_vm.currentEmployeePassword=$$v},expression:\"currentEmployeePassword\"}})],1),(_vm.formModalMode === 'edit')?_c('b-form-checkbox',{attrs:{\"name\":\"employees-checkbox-wants-password\",\"value\":true,\"unchecked-value\":false},model:{value:(_vm.wantsToUpdatePassword),callback:function ($$v) {_vm.wantsToUpdatePassword=$$v},expression:\"wantsToUpdatePassword\"}},[_vm._v(\" Check to update password \")]):_vm._e(),_c('b-form-radio-group',{attrs:{\"options\":_vm.currentEmployeeRoleOptions,\"name\":\"employees-radio-role\",\"required\":\"\"},model:{value:(_vm.currentEmployeeRoleSelected),callback:function ($$v) {_vm.currentEmployeeRoleSelected=$$v},expression:\"currentEmployeeRoleSelected\"}})],2)])],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h1',[_vm._t(\"default\",[_vm._v(\"No \"+_vm._s(_vm.rowName)+\" to show \")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { Prop } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class EmptyTable extends Vue {\r\n @Prop({ type: String, required: false }) readonly rowName: string | undefined;\r\n}\r\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!./empty-table.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!./empty-table.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./empty-table.vue?vue&type=template&id=70529c5a&\"\nimport script from \"./empty-table.vue?vue&type=script&lang=ts&\"\nexport * from \"./empty-table.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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport EmptyTable from \"../components/empty-table.vue\";\r\nimport { UserDto } from \"../interfaces/dto/UserDto\";\r\nimport { getRole, Role } from \"../util\";\r\n\r\n@Component({ components: { EmptyTable } })\r\nexport default class Employees extends Vue {\r\n public filter = \"\";\r\n public filterOn: any[] = [];\r\n\r\n public filteredItems: UserDto[];\r\n\r\n public get employees(): UserDto[] {\r\n const employees = this.$store.state.employees;\r\n if (!employees) return [] as UserDto[];\r\n\r\n return employees;\r\n }\r\n\r\n public fields = [\r\n { key: \"claims\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"id\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"firstName\", label: \"First Name\", sortable: true, input: \"text\" },\r\n { key: \"lastName\", label: \"Last Name\", sortable: true, input: \"text\" },\r\n { key: \"userName\", label: \"Username\", sortable: true, input: \"text\" },\r\n { key: \"email\", label: \"Email\", sortable: true, input: \"email\" },\r\n { key: \"role\", label: \"Role\", sortable: true },\r\n { key: \"lastLogin\", sortable: true },\r\n { key: \"edit\", label: \"\" },\r\n { key: \"delete\", label: \"\" },\r\n ];\r\n\r\n public employeeRole(user: UserDto): Role {\r\n return getRole(user.claims);\r\n }\r\n\r\n public formatLastLogin(dateString?: string): string {\r\n if (dateString && !Number.isNaN(Date.parse(dateString))) {\r\n const date = new Date(dateString);\r\n\r\n return new Intl.DateTimeFormat(\"en-US\").format(date);\r\n }\r\n\r\n return \"(Has not logged in)\";\r\n }\r\n\r\n public get totalRows() {\r\n const rows = this.filteredItems ? this.filteredItems : this.employees;\r\n\r\n return rows.length + 1;\r\n }\r\n\r\n public onFiltered(filteredItems: UserDto[]) {\r\n // Trigger pagination to update the number of buttons/pages due to filtering\r\n this.filteredItems = filteredItems;\r\n }\r\n\r\n public async created() {\r\n await this.$store.dispatch(\"GET_EMPLOYEES\");\r\n }\r\n\r\n public formModalMode: string = null;\r\n\r\n public currentEmployee: UserDto = null;\r\n\r\n public get modalTitle() {\r\n return this.formModalMode === \"edit\"\r\n ? `Edit ${this.currentEmployee.userName}`\r\n : \"Create a new employee\";\r\n }\r\n\r\n public get modalFormFields() {\r\n return this.fields.filter((f) => !!f.input);\r\n }\r\n\r\n public wantsToUpdatePassword = false;\r\n public currentEmployeePassword = \"\";\r\n\r\n public currentEmployeeRoleOptions = [\r\n { text: \"Admin\", value: Role.ADMIN },\r\n { text: \"Employee\", value: Role.EMPLOYEE },\r\n ];\r\n public currentEmployeeRoleSelected = \"\";\r\n\r\n public onClickEditButton(user: UserDto) {\r\n this.currentEmployee = user;\r\n this.currentEmployeeRoleSelected = getRole(user.claims);\r\n this.formModalMode = \"edit\";\r\n }\r\n\r\n public onClickNewEmployee() {\r\n this.currentEmployee = {} as UserDto;\r\n this.formModalMode = \"create\";\r\n }\r\n\r\n public onFormModalOk(bvModalEvt: any) {\r\n // Prevent modal from closing\r\n bvModalEvt.preventDefault();\r\n\r\n this.onSubmit();\r\n }\r\n\r\n public onSubmit() {\r\n // if (!this.checkFormValidity()) {\r\n // return;\r\n // }\r\n\r\n this.$nextTick(() => {\r\n this.$bvModal.hide(\"employees-modal-form\");\r\n });\r\n\r\n const action =\r\n this.formModalMode === \"create\" ? \"EMPLOYEE_CREATE\" : \"EMPLOYEE_UPDATE\";\r\n\r\n this.$store.dispatch(action, {\r\n user: this.currentEmployee,\r\n password: this.currentEmployeePassword,\r\n role: this.currentEmployeeRoleSelected,\r\n });\r\n }\r\n\r\n checkFormValidity() {\r\n const valid = (this.$refs.form as HTMLFormElement).checkValidity();\r\n return valid;\r\n }\r\n\r\n public onFormModalHidden() {\r\n this.currentEmployee = null;\r\n this.formModalMode = null;\r\n this.currentEmployeeRoleSelected = null;\r\n this.currentEmployeePassword = null;\r\n }\r\n\r\n public async onClickDeleteButton(user: UserDto) {\r\n const confirmDelete = await this.$bvModal.msgBoxConfirm(\r\n `Are you sure you want to delete the account for ${user.firstName} ${user.lastName}?`\r\n );\r\n\r\n if (confirmDelete) {\r\n this.$store.dispatch(\"EMPLOYEE_DELETE\", user.id);\r\n }\r\n }\r\n}\r\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!./Employees.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!./Employees.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Employees.vue?vue&type=template&id=75fcc173&\"\nimport script from \"./Employees.vue?vue&type=script&lang=ts&\"\nexport * from \"./Employees.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{staticClass:\"my-1\",attrs:{\"lg\":\"6\"}},[_c('b-form-group',{staticClass:\"mb-0 mt-2\",attrs:{\"label\":\"Filter\",\"label-cols-sm\":\"2\",\"label-align-sm\":\"right\",\"label-size\":\"sm\",\"label-for\":\"unit-payment-filter-input\"}},[_c('b-form-input',{staticClass:\"mr-3\",attrs:{\"autofocus\":\"\",\"debounce\":\"250\",\"type\":\"search\",\"id\":\"unit-payment-filter-input\",\"placeholder\":\"Type to Search\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}}),_c('b-button',{attrs:{\"disabled\":!_vm.filter},on:{\"click\":function($event){_vm.filter = ''}}},[_vm._v(\"Clear\")])],1)],1),_c('b-col',{staticClass:\"my-1\",attrs:{\"lg\":\"6\"}},[_c('b-form-group',{staticClass:\"mb-0 mt-3\",attrs:{\"label\":\"Filter On\",\"label-cols-sm\":\"2\",\"label-align-sm\":\"right\",\"label-size\":\"sm\",\"description\":\"Leave all unchecked to filter on all data\"}},[_c('b-form-checkbox-group',{staticClass:\"mt-1\",model:{value:(_vm.filterOn),callback:function ($$v) {_vm.filterOn=$$v},expression:\"filterOn\"}},[_c('b-form-checkbox',{attrs:{\"value\":\"unitNumber\"}},[_vm._v(\"Unit\")]),_c('b-form-checkbox',{attrs:{\"value\":\"associationNumber\"}},[_vm._v(\"Association\")]),_c('b-form-checkbox',{attrs:{\"value\":\"ownerName\"}},[_vm._v(\"Owner\")]),_c('b-form-checkbox',{attrs:{\"value\":\"status\"}},[_vm._v(\"Status\")])],1)],1)],1)],1),_c('b-row',[_c('b-col',{staticClass:\"mr-auto ml-auto\",attrs:{\"lg\":\"12\"}},[_c('b-table',{attrs:{\"fields\":_vm.fields,\"items\":_vm.units,\"small\":\"\",\"current-page\":_vm.currentPage,\"per-page\":_vm.perPage,\"sticky-header\":\"100%\",\"head-variant\":\"light\",\"filter\":_vm.filter,\"filter-included-fields\":_vm.filterOn},on:{\"filtered\":_vm.onFiltered},scopedSlots:_vm._u([{key:\"cell(payments)\",fn:function(data){return [_c('b-button',{attrs:{\"to\":{ path: (\"owner/\" + (data.item.associationId) + \"/\" + (data.item.ownerId) + \"/payments/\" + (data.item.unitId)) },\"small\":\"\",\"pill\":\"\"}},[_vm._v(\" Payments \")])]}},{key:\"cell(assessments)\",fn:function(data){return [_c('b-button',{attrs:{\"to\":{ path: (\"owner/\" + (data.item.associationId) + \"/\" + (data.item.ownerId) + \"/assessments/\" + (data.item.unitId)) },\"small\":\"\",\"pill\":\"\"}},[_vm._v(\" Assessments \")])]}}])}),_c('b-pagination',{staticClass:\"my-0\",attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage,\"align\":\"fill\",\"size\":\"sm\"},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport Component from \"vue-class-component\";\nimport { UnitInfoDto } from \"@/interfaces/dto/UnitInfoDto\";\n\n@Component\nexport default class UnitSearch extends Vue {\n public currentPage = 1;\n public perPage = 50;\n\n public filter = \"\";\n public filterOn: any[] = [];\n\n public filteredItems: UnitInfoDto[];\n\n public get units(): UnitInfoDto[] {\n if (!this.$store.state.allUnits) return [] as UnitInfoDto[];\n\n return this.$store.state.allUnits;\n }\n\n public fields = [\n { key: \"unitId\", thClass: \"d-none\", tdClass: \"d-none\" },\n { key: \"unitNumber\", sortable: true },\n { key: \"assignedToFile\", sortable: true },\n { key: \"status\", sortable: true },\n { key: \"associationId\", thClass: \"d-none\", tdClass: \"d-none\" },\n { key: \"associationNumber\", sortable: true },\n { key: \"ownerId\", thClass: \"d-none\", tdClass: \"d-none\" },\n { key: \"ownerName\", sortable: true },\n { key: \"payments\", label: \"Link\" },\n { key: \"assessments\", label: \"Link\" },\n ];\n\n public get totalRows() {\n const rows = this.filteredItems ? this.filteredItems : this.units;\n\n return rows.length + 1;\n }\n\n public onFiltered(filteredItems: UnitInfoDto[]) {\n // Trigger pagination to update the number of buttons/pages due to filtering\n this.filteredItems = filteredItems;\n }\n\n public async created() {\n await this.$store.dispatch(\"GET_UNITS\");\n }\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!./UnitSearch.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!./UnitSearch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnitSearch.vue?vue&type=template&id=27f2193b&\"\nimport script from \"./UnitSearch.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnitSearch.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-form',{staticClass:\"col-12\",on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onSubmitFilter($event)}}},[_c('b-form-row',[_c('b-col',[_c('b-form-group',{attrs:{\"label\":\"Start Date\"}},[_c('b-datepicker',{attrs:{\"initial-date\":_vm.startDate,\"value\":_vm.startDate},on:{\"input\":function($event){return _vm.onFilterInputChange('startDate', $event)}}})],1)],1),_c('b-col',[_c('b-form-group',{attrs:{\"label\":\"End Date\"}},[_c('b-datepicker',{attrs:{\"initial-date\":_vm.endDate,\"max\":_vm.endDate,\"value\":_vm.endDate},on:{\"input\":function($event){return _vm.onFilterInputChange('endDate', $event)}}})],1)],1)],1),_c('b-form-row',_vm._l((_vm.filterModels),function(filter){return _c('b-col',{key:filter.name,attrs:{\"cols\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":filter.display}},[_c('b-form-input',{attrs:{\"list\":(\"audit-log-filter-\" + (filter.name)),\"value\":filter.selected,\"autocomplete\":\"off\"},on:{\"focus\":function($event){return _vm.onFocusFilterInput($event)},\"blur\":function($event){return _vm.onBlurFilterInput($event)},\"change\":function($event){return _vm.onFilterInputChange(filter.name, $event)}}}),_c('b-datalist',{attrs:{\"id\":(\"audit-log-filter-\" + (filter.name)),\"value\":filter.selected}},[_c('option',{attrs:{\"value\":\"Any\"}}),_vm._l((filter.options),function(option){return _c('option',{key:option,domProps:{\"value\":option}})})],2)],1)],1)}),1),_c('b-button',{attrs:{\"type\":\"submit\",\"variant\":\"primary\"}},[_vm._v(\"Submit\")])],1)],1),_c('b-row',{staticClass:\"mt-4\"},[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('b-table',{attrs:{\"fields\":_vm.fields,\"items\":_vm.logs,\"small\":\"\",\"current-page\":_vm.currentPage,\"per-page\":_vm.perPage,\"sticky-header\":\"100%\",\"head-variant\":\"light\"},scopedSlots:_vm._u([{key:\"cell(detail)\",fn:function(data){return [_c('b-button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.audit-log-detail-modal\",modifiers:{\"audit-log-detail-modal\":true}}],staticClass:\"ml-1\",attrs:{\"small\":\"\",\"pill\":\"\"},on:{\"click\":function($event){_vm.currentLog = data.item}}},[_c('b-icon',{attrs:{\"icon\":\"search\"}})],1)]}},{key:\"cell(entryTimestamp)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm.formatTimestamp(data.value))+\" \")]}}])}),_c('b-pagination',{staticClass:\"my-0\",attrs:{\"total-rows\":_vm.logs.length,\"per-page\":_vm.perPage,\"align\":\"fill\",\"size\":\"sm\"},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1),(_vm.currentLog)?_c('b-modal',{staticStyle:{\"min-height\":\"40rem\"},attrs:{\"id\":\"audit-log-detail-modal\",\"centered\":\"\",\"title\":\"Audit Log Detail\",\"size\":\"lg\"},on:{\"hidden\":function($event){_vm.currentLog = null}}},[_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',_vm._l((_vm.logDetailFields),function(field){return _c('b-col',{key:field.key,attrs:{\"cols\":\"6\"}},[_c('dl',{staticClass:\"row\"},[_c('dd',{staticClass:\"col-4 font-weight-bold text-capitalize initialism\"},[_vm._v(\" \"+_vm._s(field.label || field.key)+\" \")]),_c('dd',{staticClass:\"col-8\"},[_vm._v(\" \"+_vm._s(_vm.currentLog[field.key])+\" \")])])])}),1),_c('b-row',[_c('b-col',[_c('h5',[_vm._v(\"Description\")]),_c('textarea',{attrs:{\"cols\":\"100\",\"rows\":\"3\"},domProps:{\"value\":_vm.currentLog.description}})])],1),_c('b-row',{staticClass:\"mt-2\"},[_c('b-col',[(_vm.currentLog.oldData)?_c('b-card',{attrs:{\"bg-variant\":\"light\",\"no-body\":\"\"}},[_c('b-card-header',{attrs:{\"header-tag\":\"h5\",\"header-class\":\"px-3\"}},[_vm._v(\" Old Record \")]),_c('b-card-text',{staticClass:\"px-3\"},[_c('b-row',_vm._l((_vm.parseOldDataFromLog(_vm.currentLog.oldData)),function(oldRecordValue,oldRecordKey){return _c('b-col',{key:oldRecordKey,attrs:{\"cols\":\"6\"}},[_c('dl',{staticClass:\"row\"},[_c('dd',{staticClass:\"col-4 font-weight-bold text-capitalize initialism\"},[_vm._v(\" \"+_vm._s(oldRecordKey)+\" \")]),_c('dd',{staticClass:\"col-8\"},[_vm._v(\" \"+_vm._s(oldRecordValue)+\" \")])])])}),1)],1)],1):_c('h6',[_vm._v(\"No old records\")])],1)],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { AuditLogFilters } from \"@/interfaces/dto/AuditLogFilters\";\r\nimport { BvTableField, BvTableFieldArray } from \"bootstrap-vue\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { toTitleCase } from \"../util\";\r\n\r\nconst todaysDate = new Date();\r\nconst lastWeekDate = new Date(todaysDate.getTime() - 7 * 24 * 60 * 60 * 1000);\r\n\r\ntype AuditLogField = { key: string; inDetail?: boolean } & BvTableField;\r\n\r\n@Component\r\nexport default class AuditLog extends Vue {\r\n public perPage = 50;\r\n public currentPage = 1;\r\n public startDate: Date = lastWeekDate;\r\n public endDate: Date = todaysDate;\r\n public currentLog: AuditLog = null;\r\n\r\n public get filterModels() {\r\n return Object.entries(this.filters).map(([name, options]) => ({\r\n name,\r\n display: toTitleCase(name),\r\n options,\r\n selected: this.getOptionSelection(name),\r\n }));\r\n }\r\n\r\n public onFilterInputChange(name: string, value: string) {\r\n switch (name) {\r\n case \"startDate\":\r\n this.selectedFilters.start_date = value;\r\n break;\r\n case \"endDate\":\r\n this.selectedFilters.end_date = value;\r\n break;\r\n case \"action\":\r\n this.selectedFilters.action = value;\r\n break;\r\n case \"type\":\r\n this.selectedFilters.type = value;\r\n break;\r\n case \"admin\":\r\n this.selectedFilters.admin = value;\r\n break;\r\n case \"association\":\r\n this.selectedFilters.association = value;\r\n break;\r\n case \"owner\":\r\n this.selectedFilters.owner = value;\r\n break;\r\n case \"unit\":\r\n this.selectedFilters.unit = value;\r\n break;\r\n }\r\n }\r\n\r\n public onFocusFilterInput(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n if (input.value) {\r\n input.value = null;\r\n }\r\n }\r\n\r\n public onBlurFilterInput(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n if (!input.value) {\r\n input.value = \"Any\";\r\n }\r\n }\r\n\r\n public async onSubmitFilter(): Promise {\r\n await this.refreshLogs();\r\n }\r\n\r\n private getOptionSelection(name: string): string {\r\n switch (name) {\r\n case \"action\":\r\n return this.selectedFilters.action as string;\r\n case \"type\":\r\n return this.selectedFilters.type as string;\r\n case \"admin\":\r\n return this.selectedFilters.admin as string;\r\n case \"association\":\r\n return this.selectedFilters.association as string;\r\n case \"owner\":\r\n return this.selectedFilters.owner as string;\r\n case \"unit\":\r\n return this.selectedFilters.unit as string;\r\n }\r\n }\r\n\r\n private get filters(): AuditLogFilters {\r\n const filters = this.$store.state.auditLogFilters;\r\n if (!filters) return {} as AuditLogFilters;\r\n\r\n return filters;\r\n }\r\n\r\n private selectedFilters = {} as Record;\r\n\r\n public fields: AuditLogField[] = [\r\n { key: \"detail\", label: \"\" },\r\n { key: \"auditLogId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"tableId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"ownerId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n {\r\n key: \"entryTimestamp\",\r\n label: \"Timestamp\",\r\n sortable: true,\r\n inDetail: true,\r\n },\r\n { key: \"ipAddress\", label: \"IP Address\", sortable: true, inDetail: true },\r\n {\r\n key: \"adminUsername\",\r\n label: \"Employees\",\r\n sortable: true,\r\n inDetail: true,\r\n },\r\n { key: \"action\", sortable: true, inDetail: true },\r\n { key: \"tableName\", label: \"Type\", sortable: true, inDetail: true },\r\n {\r\n key: \"associationName\",\r\n label: \"Association\",\r\n sortable: true,\r\n inDetail: true,\r\n },\r\n { key: \"ownerName\", label: \"Owner\", sortable: true, inDetail: true },\r\n { key: \"unitNumber\", label: \"Unit\", sortable: true, inDetail: true },\r\n { key: \"description\", sortable: true },\r\n ];\r\n\r\n public get logDetailFields(): BvTableFieldArray {\r\n return this.fields.filter((f) => f.inDetail);\r\n }\r\n\r\n public get logs(): AuditLog[] {\r\n const logs = this.$store.state.auditLogs;\r\n if (!logs) return [] as AuditLog[];\r\n\r\n return logs;\r\n }\r\n\r\n private formatTimestamp(dateTimeString: string): string {\r\n const date = new Date(dateTimeString);\r\n\r\n return new Intl.DateTimeFormat(\"en\", {\r\n month: \"2-digit\",\r\n day: \"2-digit\",\r\n year: \"2-digit\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\",\r\n }).format(date);\r\n }\r\n\r\n public onClickAuditLogDetail(log: AuditLog) {\r\n this.currentLog = log;\r\n }\r\n\r\n public async created() {\r\n this.selectedFilters = {\r\n start_date: this.startDate,\r\n end_date: this.endDate,\r\n action: \"Any\",\r\n type: \"Any\",\r\n admin: \"Any\",\r\n association: \"Any\",\r\n owner: \"Any\",\r\n unit: \"Any\",\r\n };\r\n\r\n await this.refreshLogs();\r\n }\r\n\r\n private async refreshLogs(): Promise {\r\n await Promise.all([\r\n this.$store.dispatch(\"GET_AUDITLOGFILTERS\", this.selectedFilters),\r\n this.$store.dispatch(\"GET_AUDITLOGS\", this.selectedFilters),\r\n ]);\r\n }\r\n\r\n private parseOldDataFromLog(data: string): Record {\r\n const rows = data.split(\"|\");\r\n\r\n return Object.fromEntries(rows.map((row) => row.split(\"^\")));\r\n }\r\n}\r\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!./AuditLog.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!./AuditLog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AuditLog.vue?vue&type=template&id=4dd63b29&scoped=true&\"\nimport script from \"./AuditLog.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuditLog.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 \"4dd63b29\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-jumbotron',{staticClass:\"jumbotron-thin\",attrs:{\"header\":_vm.associationName,\"lead\":(\"Association number: \" + _vm.associationNumber)}},[_c('b-button',{staticClass:\"mr-3 d-print-none\",attrs:{\"variant\":\"info\",\"href\":(\"/report/?association-id=\" + _vm.associationId + \"&wants-remarks=true&wants-print=true\"),\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Print All\")]),_c('b-button',{staticClass:\"d-print-none\",attrs:{\"variant\":\"primary\",\"href\":\"javascript:window.print()\"}},[_vm._v(\"Print List\")])],1),_c('b-row',{staticClass:\"d-print-none\"},[_c('b-col',{staticClass:\"my-1\",attrs:{\"lg\":\"6\"}},[_c('b-form-group',{staticClass:\"mb-0 mt-2\",attrs:{\"label\":\"Filter\",\"label-cols-sm\":\"1\",\"label-size\":\"sm\",\"label-for\":\"assoc-coll-filter-input\"}},[_c('b-input-group',[_c('b-form-input',{attrs:{\"autofocus\":\"\",\"debounce\":\"250\",\"type\":\"search\",\"id\":\"assoc-coll-filter-input\",\"placeholder\":\"Type to Search\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}}),_c('b-input-group-append',[_c('b-button',{attrs:{\"disabled\":!_vm.filter},on:{\"click\":function($event){_vm.filter = ''}}},[_vm._v(\"Clear\")])],1)],1)],1)],1),_c('b-col',{staticClass:\"my-1\",attrs:{\"lg\":\"6\"}},[_c('b-form-group',{staticClass:\"mb-0 mt-2\",attrs:{\"label\":\"Filter On\",\"label-cols-sm\":\"2\",\"label-align-sm\":\"right\",\"label-size\":\"sm\",\"description\":\"Leave all unchecked to filter on all data\"}},[_c('b-form-checkbox-group',{staticClass:\"mt-1\",model:{value:(_vm.filterOn),callback:function ($$v) {_vm.filterOn=$$v},expression:\"filterOn\"}},[_c('b-form-checkbox',{attrs:{\"value\":\"ownerName\"}},[_vm._v(\"Owner's Name\")]),_c('b-form-checkbox',{attrs:{\"value\":\"unitNumber\"}},[_vm._v(\"Unit Number\")])],1)],1)],1)],1),_c('b-row',[_c('b-col',{staticClass:\"mr-auto ml-auto\",attrs:{\"lg\":\"12\"}},[_c('b-table',{attrs:{\"fields\":_vm.fields,\"items\":_vm.collections,\"small\":\"\",\"sticky-header\":\"100%\",\"head-variant\":\"light\",\"filter\":_vm.filter,\"filter-included-fields\":_vm.filterOn},scopedSlots:_vm._u([{key:\"cell(ownerName)\",fn:function(data){return [_c('router-link',{attrs:{\"to\":{ name: 'UnitInfo', params: { associationId: _vm.associationId, ownerId: data.item.ownerId }}}},[_vm._v(\" \"+_vm._s(data.value)+\" \")])]}},{key:\"cell(inTrustAmount)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(balanceOwed)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}}])})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { Association } from \"../interfaces/models/Association\";\r\nimport { AssociationCollections } from \"../interfaces/dto/AssociationCollections\";\r\nimport store from \"../store\";\r\n\r\n@Component\r\nexport default class AssociationCollection extends Vue {\r\n public filter = \"\";\r\n public filterOn: any[] = [];\r\n public filteredItems: AssociationCollection[];\r\n\r\n public get associationName() {\r\n return this.currentAssociation.name;\r\n }\r\n public get associationNumber() {\r\n return this.currentAssociation.number;\r\n }\r\n\r\n public get associationId() {\r\n return this.currentAssociation.associationId;\r\n }\r\n\r\n public get currentAssociation(): Association {\r\n return store.state.currentAssociation || ({} as Association);\r\n }\r\n\r\n public get collections(): AssociationCollections[] {\r\n if (!store.state.associationCollections)\r\n return [] as AssociationCollections[];\r\n\r\n return store.state.associationCollections;\r\n }\r\n\r\n public fields = [\r\n { key: \"ownerId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"unitId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"associationNumber\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"ownerName\", label: \"Owner\", sortable: true },\r\n { key: \"unitNumber\", sortable: true },\r\n { key: \"status\", sortable: true },\r\n { key: \"balanceOwed\", sortable: true },\r\n { key: \"inTrustAmount\", sortable: true },\r\n ];\r\n\r\n public async created() {\r\n await store.dispatch(\r\n \"GET_ASSOCIATION_COLLECTIONS\",\r\n this.$route.params.associationId\r\n );\r\n }\r\n}\r\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!./AssociationCollections.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!./AssociationCollections.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssociationCollections.vue?vue&type=template&id=edccbba6&\"\nimport script from \"./AssociationCollections.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssociationCollections.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{staticClass:\"mr-auto ml-auto\",attrs:{\"lg\":\"12\"}},[_c('b-jumbotron',{staticClass:\"jumbotron-thin\",attrs:{\"header\":_vm.ownerName,\"lead\":_vm.childViewName}},[_c('b-button',{staticClass:\"mr-3 d-print-none\",attrs:{\"variant\":\"dark\",\"to\":{ path: (\"/association/collections/\" + _vm.ownerAssociationId) }}},[_c('b-icon',{staticClass:\"mr-1\",attrs:{\"icon\":\"arrow-left-circle\"}}),_vm._v(\" Back To List \")],1),_c('b-button',{staticClass:\"mr-3 d-print-none\",attrs:{\"variant\":\"info\",\"href\":(\"/report/?owner-id=\" + _vm.ownerId + \"&wants-remarks=true&wants-print=true\"),\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Print All\")]),_c('b-button',{staticClass:\"d-print-none\",attrs:{\"variant\":\"primary\",\"href\":\"javascript:window.print()\"}},[_vm._v(\"Print List\")])],1),_c('b-tabs',{attrs:{\"nav-class\":\"d-print-none\"},model:{value:(_vm.tabIndex),callback:function ($$v) {_vm.tabIndex=$$v},expression:\"tabIndex\"}},[_c('b-tab',{attrs:{\"title\":\"Unit Information\",\"lazy\":\"\"},on:{\"click\":function($event){return _vm.routeTo(_vm.routes.Unit)}}},[_c('router-view')],1),_c('b-tab',{attrs:{\"title\":\"Payment History\",\"lazy\":\"\"},on:{\"click\":function($event){return _vm.routeTo(_vm.routes.Payments)}}},[_c('router-view')],1),_c('b-tab',{attrs:{\"title\":\"Assesment History\",\"lazy\":\"\"},on:{\"click\":function($event){return _vm.routeTo(_vm.routes.Assessments)}}},[_c('router-view')],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { RouteNavConfig, OwnerRoute } from \"../../router\";\r\nimport store from \"../../store\";\r\nimport { getRouteConfig } from \"../../util\";\r\n\r\n@Component\r\nexport default class OwnerDetail extends Vue {\r\n public tabIndex = 0;\r\n\r\n public routes = OwnerRoute;\r\n\r\n public get ownerName() {\r\n return store.state.currentOwner && store.state.currentOwner.fullName;\r\n }\r\n\r\n public get ownerId() {\r\n return store.state.currentOwner && store.state.currentOwner.ownerId;\r\n }\r\n\r\n public get ownerAssociationId() {\r\n return this.$route.params.associationId;\r\n }\r\n\r\n public get childViewName(): string {\r\n const config = getRouteConfig(this.$router, this.$route.name);\r\n\r\n return (config as RouteNavConfig).title;\r\n }\r\n\r\n public routeTo(route: OwnerRoute): void {\r\n const path = route\r\n .replace(\":associationId\", this.$route.params.associationId)\r\n .replace(\":ownerId\", this.$route.params.ownerId);\r\n\r\n this.$router.push(path);\r\n }\r\n\r\n public async created() {\r\n const ownerId = this.$route.params.ownerId;\r\n\r\n store.dispatch(\"CLEAR_CURRENT_UNITS\");\r\n await store.dispatch(\"GET_OWNER\", ownerId);\r\n }\r\n\r\n public mounted() {\r\n this.$nextTick(() => {\r\n if (this.$route.path.includes(\"payment\")) {\r\n this.tabIndex = 1;\r\n } else if (this.$route.path.includes(\"assessment\")) {\r\n this.tabIndex = 2;\r\n }\r\n\r\n console.log(\"tabindex\", this.tabIndex);\r\n });\r\n }\r\n}\r\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!./OwnerDetail.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!./OwnerDetail.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OwnerDetail.vue?vue&type=template&id=4396fde1&\"\nimport script from \"./OwnerDetail.vue?vue&type=script&lang=ts&\"\nexport * from \"./OwnerDetail.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.units.length)?_c('b-table',{attrs:{\"items\":_vm.units,\"fields\":_vm.fields,\"small\":\"\",\"sticky-header\":\"100%\",\"head-variant\":\"light\"},scopedSlots:_vm._u([{key:\"cell(amountOwed)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(report)\",fn:function(data){return [_c('b-button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.unit-info-generate-report\",modifiers:{\"unit-info-generate-report\":true}}],staticClass:\"mr-1\",attrs:{\"size\":\"sm\",\"pill\":\"\"},on:{\"click\":function($event){return _vm.onClickReportButton(data.item)}}},[_vm._v(\" Report \")])]}}],null,false,1188308464)}):_c('empty-table',{attrs:{\"row-name\":\"units\"}}),_c('b-modal',{staticStyle:{\"min-height\":\"40rem\"},attrs:{\"id\":\"unit-info-generate-report\",\"centered\":\"\",\"title\":\"Generate Report\"},on:{\"hidden\":_vm.onModalHidden},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('div',{staticClass:\"w-100\"},[_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.onViewReport}},[_vm._v(\" View \")]),_c('b-button',{staticClass:\"float-right mr-2 ml-2\",attrs:{\"variant\":\"info\",\"size\":\"sm\"},on:{\"click\":_vm.onPrintReport}},[_vm._v(\" Print \")]),_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"danger\",\"size\":\"sm\"},on:{\"click\":_vm.onCancelModal}},[_vm._v(\" Cancel \")])],1)]},proxy:true}])},[_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"auto\"}},[_c('b-form-group',{attrs:{\"label\":\"Report date\"}},[_c('b-form-radio-group',{attrs:{\"options\":_vm.reportDateOptions,\"name\":\"radio-report-date-selection\"},model:{value:(_vm.reportDateOptionSelected),callback:function ($$v) {_vm.reportDateOptionSelected=$$v},expression:\"reportDateOptionSelected\"}})],1)],1)],1),(_vm.reportDateOptionSelected === 'select')?_c('b-row',{staticClass:\"mb-3\",attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"md\":\"8\"}},[_c('h5',[_vm._v(\"Choose an end date\")]),_c('b-calendar',{attrs:{\"locale\":\"en-US\"},model:{value:(_vm.reportDate),callback:function ($$v) {_vm.reportDate=$$v},expression:\"reportDate\"}})],1)],1):_vm._e(),_c('b-row',[_c('b-col',{attrs:{\"md\":\"auto\"}},[_c('b-form-checkbox',{attrs:{\"name\":\"checkbox-report-include-remarks\",\"value\":true,\"unchecked-value\":false},model:{value:(_vm.reportInlcudesRemarks),callback:function ($$v) {_vm.reportInlcudesRemarks=$$v},expression:\"reportInlcudesRemarks\"}},[_vm._v(\" Include remarks \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport EmptyTable from \"../../components/empty-table.vue\";\r\nimport { UnitInfoDto } from \"../../interfaces/dto/UnitInfoDto\";\r\nimport store from \"../../store\";\r\n\r\n@Component({ components: { EmptyTable } })\r\nexport default class UnitInfo extends Vue {\r\n public name = \"unit-info\";\r\n\r\n public reportForUnit: number = null;\r\n\r\n public get units(): UnitInfoDto[] {\r\n if (!store.state.currentUnits) return [] as UnitInfoDto[];\r\n\r\n return store.state.currentUnits;\r\n }\r\n\r\n public get fields() {\r\n if (!this.units.length) return [];\r\n\r\n return [\r\n { key: \"unitId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"associationId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"ownerId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"onwerName\", label: \"Owner\", sortable: true },\r\n { key: \"unitNumber\", label: \"Unit\", sortable: true },\r\n { key: \"status\", sortable: true },\r\n { key: \"assignedToFile\", sortable: true },\r\n { key: \"amountOwed\", sortable: true },\r\n { key: \"report\", label: \"Report\" },\r\n ];\r\n }\r\n\r\n public get totalRows() {\r\n return this.units.length + 1;\r\n }\r\n\r\n public reportDateOptions = [\r\n { text: \"All time\", value: \"all\" },\r\n { text: \"Select end date\", value: \"select\" },\r\n ];\r\n public reportDateOptionSelected = \"all\";\r\n\r\n public reportDate = \"\";\r\n\r\n public reportInlcudesRemarks = true;\r\n\r\n public onClickReportButton(unit: UnitInfoDto) {\r\n this.reportForUnit = unit.unitId;\r\n }\r\n\r\n public onViewReport(): void {\r\n this.openReportPage();\r\n }\r\n public onPrintReport(): void {\r\n this.openReportPage(true);\r\n }\r\n public onCancelModal(): void {\r\n this.$nextTick(() => {\r\n this.$bvModal.hide(\"unit-info-generate-report\");\r\n });\r\n }\r\n\r\n private openReportPage(wantsPrint?: boolean): void {\r\n const query = new URLSearchParams();\r\n\r\n if (this.reportDate) {\r\n query.append(\"report-date\", this.reportDate);\r\n }\r\n\r\n if (this.reportInlcudesRemarks) {\r\n query.append(\"wants-remarks\", this.reportInlcudesRemarks.toString());\r\n }\r\n\r\n if (wantsPrint) {\r\n query.append(\"wants-print\", true.toString());\r\n }\r\n\r\n const urlString = `/report/${this.reportForUnit}?${query.toString()}`;\r\n const url = new URL(urlString, window.location.origin);\r\n\r\n window.open(\r\n url.toString(),\r\n `Report for Unit ${this.reportForUnit}`,\r\n \"noreferrer,noopener\"\r\n );\r\n\r\n this.$nextTick(() => {\r\n this.$bvModal.hide(\"unit-info-generate-report\");\r\n });\r\n }\r\n public onModalHidden() {\r\n this.reportDate = \"\";\r\n this.reportForUnit = null;\r\n this.reportInlcudesRemarks = false;\r\n }\r\n\r\n public async created() {\r\n const ownerId = this.$route.params.ownerId;\r\n\r\n await store.dispatch(\"GET_OWNER_UNITS\", ownerId);\r\n }\r\n}\r\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!./UnitInfo.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!./UnitInfo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnitInfo.vue?vue&type=template&id=a3360c26&\"\nimport script from \"./UnitInfo.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnitInfo.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-row',{staticClass:\"mt-3 d-print-none\"},[_c('b-col',{attrs:{\"lg\":\"3\",\"sm\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Select unit\",\"label-cols-sm\":\"3\",\"label-size\":\"sm\"}},[_c('b-form-select',{staticClass:\"w-100\",attrs:{\"options\":_vm.unitSelectOptions},model:{value:(_vm.selectedUnit),callback:function ($$v) {_vm.selectedUnit=$$v},expression:\"selectedUnit\"}})],1)],1),_c('b-col',{attrs:{\"lg\":\"4\",\"sm\":\"6\"}},[_c('b-form-group',[_c('b-input-group',[_c('b-form-input',{attrs:{\"autofocus\":\"\",\"debounce\":\"250\",\"type\":\"search\",\"id\":\"unit-payment-filter-input\",\"placeholder\":\"Type to Search\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}}),_c('b-input-group-append',[_c('b-button',{attrs:{\"disabled\":!_vm.filter},on:{\"click\":function($event){_vm.filter = ''}}},[_vm._v(\"Clear\")])],1)],1)],1)],1),_c('b-col',{attrs:{\"lg\":\"5\"}},[_c('b-form-group',{attrs:{\"label\":\"Filter On\",\"label-cols-lg\":\"2\",\"label-cols-sm\":\"1\",\"label-size\":\"sm\",\"description\":\"Leave all unchecked to filter on all data\"}},[_c('b-form-checkbox-group',{staticClass:\"mt-1\",model:{value:(_vm.filterOn),callback:function ($$v) {_vm.filterOn=$$v},expression:\"filterOn\"}},[_c('b-form-checkbox',{attrs:{\"value\":\"amount\"}},[_vm._v(\"Amount\")]),_c('b-form-checkbox',{attrs:{\"value\":\"type\"}},[_vm._v(\"Type\")]),_c('b-form-checkbox',{attrs:{\"value\":\"checkNumber\"}},[_vm._v(\"Check Number\")])],1)],1)],1)],1),(_vm.payments.length)?_c('b-table',{attrs:{\"items\":_vm.payments,\"fields\":_vm.fields,\"striped\":\"\",\"small\":\"\",\"head-variant\":\"light\",\"sticky-header\":\"100%\",\"filter\":_vm.filter,\"filter-included-fields\":_vm.filterOn},scopedSlots:_vm._u([{key:\"cell(date)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"dateFormat\")(data.value))+\" \")]}},{key:\"cell(amount)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(type)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm.getType(data.value))+\" \")]}}],null,false,4187192598)}):_c('empty-table',{attrs:{\"row-name\":\"payments\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { Watch } from \"vue-property-decorator\";\r\nimport store from \"../../store\";\r\nimport { Payment } from \"../../interfaces/models/Payment\";\r\nimport { UnitInfoDto } from \"../../interfaces/dto/UnitInfoDto\";\r\nimport EmptyTable from \"../../components/empty-table.vue\";\r\n\r\n@Component({ components: { EmptyTable } })\r\nexport default class UnitPayments extends Vue {\r\n public filter = \"\";\r\n public filterOn: any[] = [];\r\n\r\n private selectedUnitValue = 0;\r\n public filteredItems: Payment[];\r\n\r\n public get selectedUnit(): number {\r\n return this.selectedUnitValue;\r\n }\r\n\r\n public set selectedUnit(value: number) {\r\n this.selectedUnitValue = value;\r\n }\r\n\r\n public get units(): UnitInfoDto[] {\r\n if (!store.state.currentUnits) return [] as UnitInfoDto[];\r\n\r\n return store.state.currentUnits;\r\n }\r\n\r\n public get unitSelectOptions() {\r\n return this.units.map((unit) => ({\r\n value: unit.unitId,\r\n text: unit.unitNumber,\r\n }));\r\n }\r\n\r\n public get payments(): Payment[] {\r\n if (!this.$store.state.unitPayments) return [];\r\n\r\n return this.$store.state.unitPayments;\r\n }\r\n\r\n public get fields() {\r\n if (!this.payments.length) return [];\r\n\r\n const excludeKeys = [\"unitId\", \"paymentId\", \"date\"];\r\n\r\n return [\r\n \"date\",\r\n ...Object.keys(this.payments[0]).filter((k) => !excludeKeys.includes(k)),\r\n { key: \"unitId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"paymentId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n ];\r\n }\r\n\r\n public getType(type: string): string {\r\n if (!type) return;\r\n\r\n switch (type) {\r\n case \"received\":\r\n return \"T\";\r\n case \"credit\":\r\n return \"A\";\r\n default:\r\n return type.toUpperCase();\r\n }\r\n }\r\n\r\n @Watch(\"filter\")\r\n public onFilterChange(selectedUnit: number) {\r\n this.filteredItems = null;\r\n }\r\n\r\n @Watch(\"selectedUnit\")\r\n public async onSelectedUnitChange(selectedUnit: number) {\r\n if (this.selectedUnit) {\r\n await store.dispatch(\"GET_UNITS_PAYMENTS\", selectedUnit);\r\n }\r\n }\r\n\r\n public async mounted() {\r\n if (!this.units.length) {\r\n const ownerId = this.$route.params.ownerId;\r\n\r\n await store.dispatch(\"GET_OWNER_UNITS\", ownerId);\r\n }\r\n\r\n const unitId = this.$route.params.unitId\r\n ? parseInt(this.$route.params.unitId)\r\n : this.units[0].unitId;\r\n\r\n this.selectedUnit = unitId;\r\n\r\n console.log(\"OwnerPayments, selectedUnit:\", this.selectedUnit);\r\n }\r\n}\r\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!./OwnerPayments.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!./OwnerPayments.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OwnerPayments.vue?vue&type=template&id=21417047&\"\nimport script from \"./OwnerPayments.vue?vue&type=script&lang=ts&\"\nexport * from \"./OwnerPayments.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-row',{staticClass:\"mt-3 d-print-none\"},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Select unit\",\"label-cols-sm\":\"3\",\"label-size\":\"sm\"}},[_c('b-form-select',{staticClass:\"w-100\",attrs:{\"options\":_vm.unitSelectOptions},model:{value:(_vm.selectedUnit),callback:function ($$v) {_vm.selectedUnit=$$v},expression:\"selectedUnit\"}})],1)],1),_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('b-form-group',[_c('b-input-group',[_c('b-form-input',{attrs:{\"autofocus\":\"\",\"debounce\":\"250\",\"type\":\"search\",\"id\":\"unit-payment-filter-input\",\"placeholder\":\"Type to Search\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}}),_c('b-input-group-append',[_c('b-button',{attrs:{\"disabled\":!_vm.filter},on:{\"click\":function($event){_vm.filter = ''}}},[_vm._v(\"Clear\")])],1)],1)],1)],1)],1),(_vm.assessments.length)?_c('b-table',{attrs:{\"small\":\"\",\"sticky-header\":\"100%\",\"items\":_vm.assessments,\"fields\":_vm.fields,\"head-variant\":\"light\",\"striped\":\"\",\"filter\":_vm.filter},scopedSlots:_vm._u([{key:\"cell(date)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"dateFormat\")(data.value))+\" \")]}},{key:\"cell(amount)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(interestRate)\",fn:function(data){return [_vm._v(\" \"+_vm._s(data.value)+\"% \")]}},{key:\"cell(lateFee)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(cost)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(attorneyFee)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(disbursedAmount)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}}],null,false,3100128828)}):_c('empty-table',{attrs:{\"row-name\":\"assessments\"}}),(_vm.assessments.length)?_c('b-row',[_c('b-col',[_c('h3',[_vm._v(\"Totals\")]),_c('b-table',{attrs:{\"small\":\"\",\"items\":_vm.totals},scopedSlots:_vm._u([{key:\"cell(totalAmount)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(totalAttorneyFees)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(totalCost)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(totalLateFees)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}},{key:\"cell(totalDisbursed)\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"money\")(data.value))+\" \")]}}],null,false,2617824553)})],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { Watch } from \"vue-property-decorator\";\r\nimport store from \"../../store\";\r\nimport { Assessment } from \"../../interfaces/models/Assessment\";\r\nimport { UnitAssessmentsDto } from \"../../interfaces/dto/UnitAssessmentsDto\";\r\nimport { UnitInfoDto } from \"../../interfaces/dto/UnitInfoDto\";\r\nimport EmptyTable from \"../../components/empty-table.vue\";\r\n\r\n@Component({ components: { EmptyTable } })\r\nexport default class UnitAssessments extends Vue {\r\n public filter = \"\";\r\n private selectedUnitValue = 0;\r\n\r\n public get selectedUnit(): number {\r\n return this.selectedUnitValue;\r\n }\r\n\r\n public set selectedUnit(value: number) {\r\n this.selectedUnitValue = value;\r\n }\r\n\r\n public get fields() {\r\n if (!this.assessments.length) return [];\r\n\r\n return [\r\n { key: \"date\", label: \"Due Date\", sortable: true },\r\n { key: \"amount\", label: \"Amount Delinquent\", sortable: true },\r\n { key: \"interestRate\", sortable: true },\r\n { key: \"attorneyFee\", sortable: true },\r\n { key: \"lateFee\", sortable: true },\r\n { key: \"cost\", sortable: true },\r\n { key: \"amountType\", sortable: true },\r\n { key: \"disbursedAmount\", sortable: true },\r\n { key: \"unitId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n { key: \"assesmentId\", thClass: \"d-none\", tdClass: \"d-none\" },\r\n ];\r\n }\r\n\r\n public get totals(): UnitAssessmentsDto[] {\r\n const assessments = this.assessments;\r\n return [\r\n {\r\n totalAmount: assessments.reduce((total, a) => total + a.amount, 0),\r\n totalAttorneyFees: assessments.reduce(\r\n (total, a) => total + a.attorneyFee,\r\n 0\r\n ),\r\n totalLateFees: assessments.reduce((total, a) => total + a.lateFee, 0),\r\n totalCost: assessments.reduce((total, a) => total + a.cost, 0),\r\n totalDisbursed: assessments.reduce(\r\n (total, a) => total + a.disbursedAmount,\r\n 0\r\n ),\r\n } as UnitAssessmentsDto,\r\n ];\r\n }\r\n\r\n public get units(): UnitInfoDto[] {\r\n if (!store.state.currentUnits) return [] as UnitInfoDto[];\r\n\r\n return store.state.currentUnits;\r\n }\r\n\r\n public get unitSelectOptions() {\r\n return this.units.map((unit) => ({\r\n value: unit.unitId,\r\n text: unit.unitNumber,\r\n }));\r\n }\r\n\r\n public get assessments(): Assessment[] {\r\n if (!this.$store.state.unitAssessments) return [];\r\n\r\n return this.$store.state.unitAssessments;\r\n }\r\n\r\n @Watch(\"selectedUnit\")\r\n public async onSelectedUnitChange(selectedUnit: number) {\r\n await store.dispatch(\"GET_UNITS_ASSESSMENTS\", selectedUnit);\r\n }\r\n\r\n public async mounted() {\r\n if (!this.units.length) {\r\n const ownerId = this.$route.params.ownerId;\r\n\r\n await store.dispatch(\"GET_OWNER_UNITS\", ownerId);\r\n }\r\n\r\n const unitId = this.$route.params.unitId\r\n ? parseInt(this.$route.params.unitId)\r\n : this.units[0].unitId;\r\n\r\n this.selectedUnit = unitId;\r\n\r\n console.log(\"OwnerAssessments, selectedUnit:\", this.selectedUnit);\r\n }\r\n}\r\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!./OwnerAssessments.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!./OwnerAssessments.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OwnerAssessments.vue?vue&type=template&id=1edc462a&\"\nimport script from \"./OwnerAssessments.vue?vue&type=script&lang=ts&\"\nexport * from \"./OwnerAssessments.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 store from '@/store'\nimport Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport { Component, RoutePropsFunction, _RouteConfigBase } from 'vue-router/types/router';\n\nimport Associations from \"../views/Associations.vue\";\nimport Employees from \"../views/Employees.vue\";\nimport UnitSearch from \"../views/UnitSearch.vue\";\nimport AuditLog from \"../views/AuditLog.vue\";\nimport AssociationCollections from '../views/AssociationCollections.vue'\nimport OwnerDetail from '../views/owner-detail/OwnerDetail.vue'\nimport UnitInfo from '../views/owner-detail/UnitInfo.vue'\nimport OwnerPayments from '../views/owner-detail/OwnerPayments.vue'\nimport OwnerAssessments from '../views/owner-detail/OwnerAssessments.vue'\nimport { canPerformOperations, ClaimType } from '@/util';\n\nVue.use(VueRouter)\n\nconst routes: RouteNavConfig[] = [\n {\n path: '/',\n name: 'Landing',\n redirect: (to) => {\n if (store.getters.isUserAssociation) {\n var associationId = store.getters.userAssociationId;\n return `/association/collections/${associationId}`;\n } else {\n return '/associations';\n }\n }\n },\n {\n path: '/associations',\n name: 'Associations',\n title: 'Associations',\n component: Associations,\n meta: { operations: [ClaimType.CAN_LIST_DATA], },\n },\n {\n path: '/employees',\n name: 'Employees',\n title: 'Employees',\n component: Employees,\n meta: { operations: [ClaimType.CAN_LIST_USERS], },\n },\n {\n path: '/unitsearch',\n name: 'UnitSearch',\n title: 'Unit Search',\n component: UnitSearch,\n meta: { operations: [ClaimType.CAN_LIST_DATA], },\n },\n {\n path: '/audit-log',\n name: 'AuditLog',\n title: 'Audit Log',\n component: AuditLog,\n meta: { operations: [ClaimType.CAN_LIST_DATA], },\n },\n {\n path: '/association/collections/:associationId',\n name: 'AssociationCollections',\n component: AssociationCollections,\n meta: { operations: [ClaimType.CAN_LIST_DATA, ClaimType.ASSOCIATION_CLAIM], }\n },\n {\n path: '/owner/:associationId/:ownerId',\n component: OwnerDetail,\n children: [{\n path: '',\n alias: \"info\",\n name: \"UnitInfo\",\n title: \"Unit Information\",\n component: UnitInfo,\n },\n {\n path: 'payments/:unitId?',\n name: \"OwnerPayments\",\n title: \"Owner Payments\",\n component: OwnerPayments,\n },\n {\n path: 'assessments/:unitId?',\n name: \"OwnerAssessments\",\n title: \"Owner Assessments\",\n component: OwnerAssessments,\n }],\n }\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nrouter.beforeEach((to, from, next) => {\n if (!store.state.isLoggedIn) {\n store.dispatch('LOGOUT');\n next(false);\n } else if (to.meta.operations &&\n !canPerformOperations(to.meta.operations, store.state.user.claims)\n ) {\n next(false);\n } else {\n next()\n }\n})\n\nexport default router\n\nexport interface RouteNavConfig extends _RouteConfigBase {\n component?: Component\n props?: boolean | Object | RoutePropsFunction\n title?: string;\n children?: RouteNavConfig[],\n meta?: { operations: string[] },\n}\n\nexport enum OwnerRoute {\n Unit = \"/owner/:associationId/:ownerId/info\",\n Payments = \"/owner/:associationId/:ownerId/payments\",\n Assessments = \"/owner/:associationId/:ownerId/assessments\",\n}\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport { BootstrapVue, BootstrapVueIcons, ModalPlugin, ToastPlugin } from 'bootstrap-vue'\r\nimport 'bootstrap/dist/css/bootstrap.css'\r\nimport 'bootstrap-vue/dist/bootstrap-vue.css'\r\nimport router from './router'\r\nimport store from './store'\r\nimport { money, dateFormat } from './util'\r\n\r\nVue.config.productionTip = false\r\n\r\n// Install BootstrapVue\r\nVue.use(BootstrapVue);\r\nVue.use(BootstrapVueIcons);\r\nVue.use(ModalPlugin);\r\nVue.use(ToastPlugin);\r\n\r\nVue.filter('money', money);\r\nVue.filter('dateFormat', dateFormat);\r\n\r\n(async function init() {\r\n\r\n try {\r\n await store.dispatch('GET_LOGIN_STATE');\r\n }\r\n catch { /* If we can't authenticate user, let routing handle redirect to Login */ }\r\n\r\n if (store.getters.isUserAssociation) {\r\n await store.dispatch('GET_ASSOCIATION_COLLECTIONS', store.getters.userAssociationId);\r\n } else {\r\n await store.dispatch('GET_ASSOCIATIONS')\r\n }\r\n\r\n (() => {\r\n new Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n }).$mount('#app')\r\n })()\r\n})()\r\n"],"sourceRoot":""}