{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/filters/datetime.js","webpack:///./src/store/modules/global.js","webpack:///./src/store/modules/clientSettings.js","webpack:///./src/store/modules/lookups.js","webpack:///./src/store/modules/auth.js","webpack:///./src/store/modules/project.js","webpack:///./src/store/modules/company.js","webpack:///./src/store/modules/configuration/addressBooks.js","webpack:///./src/store/modules/configuration/advertisements.js","webpack:///./src/store/modules/configuration/contactTypes.js","webpack:///./src/store/modules/configuration/invite-2-bid/bidInvitationLists.js","webpack:///./src/store/modules/configuration/invite-2-bid/bidInvitationSelectionTypes.js","webpack:///./src/store/modules/configuration/invite-2-bid/bidInvitationStatusTypes.js","webpack:///./src/store/modules/configuration/news.js","webpack:///./src/store/modules/configuration/owners.js","webpack:///./src/store/modules/configuration/ownerTypes.js","webpack:///./src/store/modules/configuration/participantTypes.js","webpack:///./src/store/modules/configuration/procurementTypes.js","webpack:///./src/store/modules/configuration/roles.js","webpack:///./src/store/modules/configuration/serviceRegions.js","webpack:///./src/store/modules/configuration/tenderStages.js","webpack:///./src/store/modules/configuration/timezones.js","webpack:///./src/store/modules/configuration/tradeAgreements.js","webpack:///./src/store/modules/configuration/users.js","webpack:///./src/store/modules/configuration/zones.js","webpack:///./src/store/index.js","webpack:///./src/utils/messagebox.js","webpack:///./src/filters/currency.js","webpack:///./src/filters/fullname.js","webpack:///./src/filters/url.js","webpack:///./src/filters/capitalize.js","webpack:///./src/filters/companyJoinAcceptanceStatus.js","webpack:///./src/plugins/permissions.js","webpack:///./src/App.vue?0266","webpack:///./src/components/app-cookie-consent.vue?7cd0","webpack:///src/components/app-cookie-consent.vue","webpack:///./src/components/app-cookie-consent.vue?c020","webpack:///./src/components/app-cookie-consent.vue","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/main.js","webpack:///./src/utils/jwtHelper.js","webpack:///./src/App.vue?c650","webpack:///./src/utils/object.js","webpack:///./src/router/index.js","webpack:///./src/utils/enums.js","webpack:///./src/utils/sort.js","webpack:///./src/services/base.service.js","webpack:///./src/services/addressBook.service.js","webpack:///./src/services/addressBookContact.service.js","webpack:///./src/services/advertisement.service.js","webpack:///./src/services/advertisementGroup.service.js","webpack:///./src/services/applicationActivity.service.js","webpack:///./src/services/invite2bid/bidInvitationList.service.js","webpack:///./src/services/invite2bid/bidInvitationSelectionType.service.js","webpack:///./src/services/invite2bid/bidInvitation.service.js","webpack:///./src/services/invite2bid/bidInvitationStatusType.service.js","webpack:///./src/services/businessCategory.service.js","webpack:///./src/services/category.service.js","webpack:///./src/services/classificationOfWork.service.js","webpack:///./src/services/classificationType.service.js","webpack:///./src/services/client.service.js","webpack:///./src/services/companyLiabilityInsurance.service.js","webpack:///./src/services/company.service.js","webpack:///./src/services/companySearch.service.js","webpack:///./src/services/contactType.service.js","webpack:///./src/services/dashboard.service.js","webpack:///./src/services/dismissProject.service.js","webpack:///./src/services/email.service.js","webpack:///./src/services/file.service.js","webpack:///./src/services/folder.service.js","webpack:///./src/services/funding.service.js","webpack:///./src/services/labourType.service.js","webpack:///./src/services/labourOfWork.service.js","webpack:///./src/services/map.service.js","webpack:///./src/services/membershipplan.service.js","webpack:///./src/services/news.service.js","webpack:///./src/services/owner.service.js","webpack:///./src/services/ownerType.service.js","webpack:///./src/services/participantType.service.js","webpack:///./src/services/payment.service.js","webpack:///./src/services/permissionGroup.service.js","webpack:///./src/services/procurementType.service.js","webpack:///./src/services/projectBid.service.js","webpack:///./src/services/project.service.js","webpack:///./src/services/projectSearch.service.js","webpack:///./src/services/documentSearch.service.js","webpack:///./src/services/province.service.js","webpack:///./src/services/country.service.js","webpack:///./src/services/role.service.js","webpack:///./src/services/serviceRegion.service.js","webpack:///./src/services/socialMediaType.service.js","webpack:///./src/services/tenderStage.service.js","webpack:///./src/services/tradeAgreement.service.js","webpack:///./src/services/user.service.js","webpack:///./src/services/zone.service.js","webpack:///./src/services/timezone.service.js","webpack:///./src/services/licence.service.js","webpack:///./src/services/unionAffiliation.service.js","webpack:///./src/services/clientsetting.service.js","webpack:///./src/event-bus/event-bus.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","DateTimeFilter","pattern","substr","split","year","month","day","hour","minute","format","Date","DateOnlyFilter","state","publicSignupVerifyCompany","publicSignupVerifyEmail","showNotifications","getters","actions","setNotificationsDisplay","toggle","commit","setPublicSignupInfo","payload","company","email","mutations","dbKeys","CLIENT_API_KEY","EXCLUDE_ZONES_FROM_DASHBOARD","GOOGLE_MAP_KEY","PUBLIC_DIRECTORY_LINK","USE_MEMBERSHIP_PAYMENT","USE_DISPLAY_NEWS","USE_PROJECT_PAYMENT","USE_INVITE_2_BID","USE_DOCUMENT_SEARCH","USE_SEND_TO_BC_BID","USE_PAYMENT_REPORTS","USE_ORDER_PRINTS","isDataLoaded","clientApiKey","excludeZonesFromDashboard","googleMapKey","publicDirectoryLink","useDisplayNews","useMembershipPayment","useProjectPayment","useInvite2Bid","useDocumentSearch","useSendToBCBid","usePaymentReports","useOrderPrints","defaultTimeZone","getClientApiKey","getExcludeZonesFromDashboard","getGoogleMapKey","getPublicDirectoryLink","getUseDisplayNews","getUseMembershipPayment","getUseProjectPayment","getUseInvite2Bid","getUseDocumentSearch","getUseSendToBCBid","getUsePaymentReports","getUseOrderPrints","getClientTimeZone","fetchClientSettings","ClientService","getConfigs","response","settings","timeZone","clientSettings","find","setting","clientSettingKey","timezone","categories","classificationTypes","fundingTypes","groupedCategories","permissionGroups","provinces","countries","getCategories","getGroupedCategories","getClassificationTypes","getFundingTypes","getPermissionGroups","getProvinces","sort","a","b","alphaSort","getCountries","fetchCategories","CategoryService","getAll","fetchGroupedCategories","getByGrouping","fetchClassificationTypes","ClassificationTypeService","fetchFundingTypes","FundingService","fetchPermissionGroups","PermissionGroupService","fetchProvinces","ProvinceService","fetchCountries","CountryService","types","contactTypes","ownerTypes","groups","procurementTypes","stages","tenderStages","agreements","tradeAgreements","zones","authorized","authUser","isRefreshing","refreshingCall","user","permissions","isAuthorized","getCurrentUser","getCurrentUserPermissions","setCurrentUser","id","firstName","lastName","JwtHelper","setToken","keys","companies","setRefreshingState","isRefreshed","setRefreshingCall","refreshCall","authorize","model","UserService","authenticate","isClientAdmin","isSystemAdmin","isAdmin","jwt","catch","testAuth","refreshUser","token","logout","root","removeToken","userdata","localStorage","clear","concat","map","zonePermissions","Set","reduce","acc","val","emptyProject","ocaaNumber","lcaNumber","belongZoneId","sharedZoneIds","title","ownerSolicitationNumber","addresses","awardedDate","closingDate","otherClosingDate","submitBidsTo","obtainBidDocuments","bonding","siteMeetings","addenda","tenderStageId","fundingId","procurementTypeId","classificationTypeId","classificationOfWorkIds","ownerTypeId","budget","scopeOfWork","comments","disclaimer","tradeAgreementIds","showProject","enableRequestToBid","isPrivate","rootFolderId","owner","contacts","documents","adminNotes","prebidNotes","followUpTasks","bids","followers","bidInvitations","defaultProjectContact","companyName","showInfo","address","street","city","postalCode","provinceId","phone","contactTypeId","additionalInformation","project","projects","projectsForLoggedInUser","siteMeeting","bid","contact","note","prebidNote","task","savedSearches","getProject","getProjects","getProjectAddress","getProjectAddresses","getProjectBid","getProjectBids","getProjectContact","getProjectContacts","getProjectSavedSearches","getProjectSiteMeeting","getProjectSiteMeetings","dateSort","date","getProjectNote","getProjectNotes","getProjectOwner","getProjectPrebidNote","getProjectPrebidNotes","createdOn","getProjectTask","getProjectTasks","createNewProject","newProject","assign","uuid","rootProjectId","fetchProject","ProjectService","getById","fetchProjectDetails","getDetailsById","fetchProjects","params","search","results","fetchProjectsForLoggedInUser","getForLoggedInUser","fetchProjectSearches","ProjectSearchService","saveProject","forEach","item","dueDate","save","setProject","saveProjectBidInvitation","BidInvitationService","sendProjectITBFollowUp","followUp","BidInvitationInvitees","saveProjectSearch","removeProjectSearch","delete","fetchProjectAddress","saveProjectAddress","resetProjectAddress","removeProjectAddress","resetProjectOwner","fetchProjectOwner","saveProjectOwner","setProjectBids","fetchProjectBid","saveProjectBid","resetProjectBid","removeProjectBid","fetchProjectSiteMeeting","meeting","saveProjectSiteMeeting","resetProjectSiteMeeting","removeProjectSiteMeeting","fetchProjectContact","saveProjectContact","resetProjectContact","removeProjectContact","fetchProjectNote","saveProjectNote","moment","utc","resetProjectNote","rootState","auth","fetchProjectPrebidNote","saveProjectPrebidNote","resetProjectPrebidNote","fetchProjectTask","saveProjectTask","updateProjectTaskCompletedFlag","args","resetProjectTask","removeProjectTask","cloneDeep","province","postalcode","isExist","pos","indexOf","awardedAmount","submittedAmount","userCount","participantTypeId","invite","lastContactDate","bidInvitation","searches","filter","priority","text","userName","completed","isCompleted","emptyCompany","targetedZoneIds","showInPD","businessCategories","labourTypes","labourOfWork","classificationOfWork","memberships","users","licenceList","associations","projectSamples","socialMediaList","logo","wcbCertificate","liabilityInsurance","companyLookup","membership","sentEmail","sendEmailAddresses","association","projectSample","socialMedia","socialMediaTypes","unionAffiliations","companyLicence","licences","companyLiabilityInsurances","companyUserSort","acceptanceStatus","getBusinessCategories","getLabourTypes","getLabourOfWork","getClassificationOfWork","getCompany","getCompanies","getLookup","getCompanyMembership","getCompanyMemberships","getCompanySavedSearches","getCompanySendEmailAddresses","getCompanyUser","getCompanyUsers","getCompanyLicenceList","licence","getCompanyLicence","getLicences","getCompanyAssociation","getCompanyAssociations","getCompanyProjectSample","getCompanyProjectSamples","getCompanySocialMediaList","socialMediaType","getCompanySocialMedia","getSocialMediaTypes","getUnionAffiliations","getCompanyLiabilityInsurances","fetchCompany","CompanyService","fetchCompanies","fetchAllCompanies","fetchLookup","fetchCompanySearches","CompanySearchService","fetchCompanyEmailAddresses","ids","getUserEmails","saveCompany","saveCompanySearch","removeCompanySearch","sendCompanyEmail","EmailService","resetCompany","fetchCompanyMembership","saveCompanyMembership","resetCompanyMembership","removeCompanyMembership","fetchCompanyUser","saveCompanyUser","resetCompanyUser","removeCompanyUser","fetchBusinessCategories","BusinessCategoryService","fetchLabourTypes","LabourTypeService","fetchLabourOfWorks","LabourOfWorkService","fetchClassificationOfWork","ClassificationOfWorkService","updateCompanyUserAcceptITB","param","updateUserCompanyJoinStatus","updateCompanyUserContact","fetchLicences","LicenceService","resetCompanyLicence","fetchCompanyLicence","saveCompanyLicence","removeCompanyLicence","saveCompanyAssociation","resetCompanyAssociation","fetchCompanyAssociation","removeCompanyAssociation","resetCompanyProjectSample","fetchCompanyProjectSample","saveCompanyProjectSample","removeCompanyProjectSample","fetchSocialMediaTypes","SocialMediaTypeService","resetCompanySocialMedia","fetchCompanySocialMedia","saveCompanySocialMedia","removeCompanySocialMedia","fetchUnionAffiliations","UnionAffiliationService","fetchCompanyLiabilityInsurances","CompanyLiabilityInsuranceService","expiryDate","roleId","zoneId","emailAddresses","works","classifications","shown","u","acceptITBInvite","status","showContact","expirationDate","issuedBy","description","image","cost","awarded","companySocialMediaTypeUrl","addressBook","addressBooks","getAddressBook","getAddressBooks","sortOrder","fetchAddressBook","AddressBookService","fetchAddressBooks","saveAddressBook","removeAddressBook","resetAddressBook","advertisement","advertisements","advertisementGroups","isAdvertisementsEnabled","getAdvertisment","getAdvertisments","getAdvertismentGroups","getIsAdvertisementsEnabled","fetchAdvertisement","AdvertisementService","fetchAdvertisements","AdvertisementGroupService","getListings","isActive","fetchAdvertisementGroups","toggleAdvertisementsEnabled","direction","saveAdvertisement","dispatch","removeAdvertisement","resetAdvertisement","isEnabled","group","inGroup","g","contactType","getContactType","getContactTypes","fetchContactType","ContactTypeService","fetchContactTypes","saveContactType","removeContactType","resetContactType","lists","getBidInvitationListsForLoggedInUser","fetchBidInvitationListsForLoggedInUser","BidInvitationListService","selectionTypes","getBidInvitationSelectionTypes","fetchBidInvitationSelectionTypes","BidInvitationSelectionTypeService","statusTypes","getBidInvitationStatusTypes","fetchBidInvitationStatusTypes","BidInvitationStatusTypeService","news","newsList","isNewsEnabled","_reduceArrayUniqueItemCountFn","curr","getNews","getNewsList","getNewsListZoneEntriesCount","flatMap","zoneIds","getIsNewsEnabled","fetchNews","NewsService","fetchNewsList","toggleNewsEnabled","saveNews","removeNews","updateNews","update","resetNews","summary","link","defaultOwner","owners","getOwner","getOwners","alphSort","fetchOwner","OwnerService","fetchOwners","fetchOwnersByProject","projectId","GetAllByProjectId","saveOwner","removeOwner","resetOwner","ownerType","getOwnerType","getOwnerTypes","fetchOwnerType","OwnerTypeService","fetchOwnerTypes","saveOwnerType","removeOwnerType","resetOwnerType","participantType","participantTypes","isBidRequestOptionSort","getParticipantType","getParticipantTypes","getParticipantTypesBidRequestionOptions","isBidRequestOption","fetchParticipantType","ParticipantTypeService","fetchParticipantTypes","saveParticipantType","removeParticipantType","resetParticipantType","procurementType","getProcurementType","getProcurementTypes","fetchProcurementType","ProcurementTypeService","fetchProcurementTypes","saveProcurementType","removeProcurementType","resetProcurementType","role","roles","getRole","getRoles","getMembershipRoles","isMembershipType","fetchRole","RoleService","fetchRoles","saveRole","removeRole","resetRole","permissionIds","serviceRegion","serviceRegions","getServiceRegion","getServiceRegions","fetchServiceRegion","ServiceRegionService","fetchServiceRegions","saveServiceRegion","removeServiceRegion","resetServiceRegion","tenderStage","getTenderStage","getTenderStages","fetchTenderStage","TenderStageService","fetchTenderStages","saveTenderStage","removeTenderStage","resetTenderStage","timezones","getTimeZone","getTimeZones","fetchTimeZone","TimeZoneService","fetchTimeZones","saveTimeZone","removeTimeZone","resetTimeZone","tradeAgreement","getTradeAgreement","getTradeAgreements","fetchTradeAgreement","TradeAgreementService","fetchTradeAgreements","saveTradeAgreement","removeTradeAgreement","resetTradeAgreement","getUser","getUsers","fetchUser","fetchUsers","saveUser","removeUser","updateUser","profile","resetUser","password","roleIds","zone","getZone","getZones","fetchZone","ZoneService","fetchZones","saveZone","removeZone","resetZone","abbreviation","Vue","use","Vuex","store","Store","global","lookup","bidInvitationLists","bidInvitationSelectionTypes","bidInvitationStatusTypes","timeZones","defaultOptions","okVariant","hideHeaderClose","centered","confirmDefaultOptions","okTitle","okDefaultOptions","confirm","context","overrideOptions","options","$root","$bvModal","msgBoxConfirm","ok","msgBoxOk","currencyComma","decimalPlaces","isNaN","parseFloat","toFixed","replace","fullNameFilter","urlFilter","url","startsWith","location","protocol","capitalizeFilter","charAt","toUpperCase","statusFilter","PublicCompanyJoinAcceptanceStatus","Approved","Pending","PERMISSION_TYPES","ADD_PROJECT","ADD_PROJECT_PRIVATE","ADD_COMPANY","DELETE_ADDRESS","DELETE_ADMIN_NOTE","DELETE_COMPANY","DELETE_COMPANY_MEMBERSHIP","DELETE_COMPANY_USER","DELETE_CONTACT","DELETE_CONTACT_TYPE","DELETE_FOLLOW_UP_TASK","DELETE_OWNER","DELETE_PROJECT","DELETE_ROLE","DELETE_SERVICE_REGION","DELETE_SITE_MEETING","DELETE_TENDER_STAGE","DELETE_USER","DELETE_ZONE","EDIT_ADDRESS","EDIT_ADMIN_NOTE","EDIT_COMPANY","EDIT_COMPANY_MEMBERSHIP","EDIT_COMPANY_USER","EDIT_CONTACT","EDIT_CONTACT_TYPE","EDIT_FOLLOW_UP_TASK","EDIT_OWNER","EDIT_PROJECT","EDIT_ROLE","EDIT_SERVICE_REGION","EDIT_SITE_MEETING","EDIT_TENDER_STAGE","EDIT_USER","EDIT_ZONE","VIEW_ADDRESS","VIEW_ADMIN_NOTE","VIEW_COMPANY","VIEW_CONTACT","VIEW_CONTACT_TYPE","VIEW_FOLLOW_UP_TASK","VIEW_OWNER","VIEW_PROJECT","VIEW_PROJECT_DETAILS","VIEW_PROJECT_CONTACTS","VIEW_PROJECT_DOCUMENTS","VIEW_PROJECT_BIDDERS","VIEW_ROLE","VIEW_SERVICE_REGION","VIEW_SITE_MEETING","VIEW_TENDER_STAGE","VIEW_USER","VIEW_ZONE","COMPANY_ADVANCED_SEARCH","COMPANY_EXCEL_EXPORT","COMPANY_SEARCH_COLUMNS","COMPANY_SEND_EMAIL","ENABLE_BID_REQUEST","PROJECT_ADVANCED_SEARCH","PROJECT_BULLETIN_REPORT_EXPORT","PROJECT_EXCEL_EXPORT","PROJECT_SEARCH_COLUMNS","SEND_BID_INVITATIONS","ENABLE_ACTIVITY_REPORT","install","$permissions","PERMISSIONS","IS_SYS_ADMIN","IS_CLIENT_ADMIN","this","hasViewOwnerPermission","hasViewRolePermission","hasViewServiceRegionPermissions","hasViewUserPermission","hasViewZonePermission","hasSendBidInvitations","hasRequiredPermissions","requiredPermissions","some","permission","_vm","_h","$createElement","_c","_self","staticClass","attrs","isPageLoading","on","$event","$route","fullPath","_e","isAppInitialized","_v","staticRenderFns","privacyPolicy","_s","clickConsent","props","show","showPopup","consentCookieName","methods","mounted","component","components","AppCookieConsent","handlePrompts","$store","initialize","config","productionTip","process","devtools","debug","silent","ModalPlugin","ToastPlugin","VeeValidate","Fragment","Plugin","PermissionPlugin","Multiselect","vSelect","CurrencyFilter","FullNameFilter","UrlFilter","CapitalizeFilter","CompanyJoinAcceptanceStatusFilter","Loading","router","render","h","App","$mount","JWT_TOKEN_NAME","USER_INFO_NAME","USER_DATA_NAME","getBearerToken","getJwtToken","VueCookies","isKey","userData","refreshToken","getRefreshToken","getUserToken","set","expires","remove","clean","obj","propNames","getOwnPropertyNames","propName","Array","isArray","transformToFormData","formData","FormData","append","Router","dashboardRoutes","path","redirect","meta","requiresAuth","projectRoutes","companyRoutes","membershipRoutes","configurationRoutes","accountRoutes","loginRoutes","children","publicRoutes","beforeEnter","to","from","next","toLowerCase","includes","invite2BidRoutes","routes","base","beforeResolve","isValid","matched","record","app","isSysAdmin","query","TenderStages","freeze","CLOSED","CANCELLED","OPEN","UNOFFICIAL_RESULTS","PREBID","AWARDED","Invite2BidEmailStages","COMPOSE","PREVIEW","CONFIRMED","Rejected","alpha","aDate","bDate","httpClient","axios","baseURL","headers","interceptors","onDownloadProgress","progressEvent","EventBus","$emit","resetTokenAndReattemptRequest","subscribers","errorResponse","retryOriginalRequest","addSubscriber","access_token","Authorization","post","newToken","onAccessTokenFetched","callback","apiBase","getForInviteToBid","isEdit","put","searchCriteria","transform","transformRequest","getRandomAd","count","getAllAds","listNameExists","listName","escape","excel","method","responseType","remind","bidInvitationCompanyId","respondToInvitation","getTopLevel","getLevelByParentId","getByTypeahead","getMemberships","getNotifications","companyIds","getAlias","http","signupCreate","signupCompanyLookup","alias","signupJoin","saveCompanyFile","uploadedFile","companyId","uploadType","calendar","overview","dismissalbtaddenda","dismissalsearch","createdprojects","invitedprojects","dismiss","sendIndividual","moveFiles","downloadFile","cancelToken","deleteFile","deleteSelectedFiles","createFolder","deleteFolder","deleteSelectedFolders","download","downloadSelectedFiles","getDisplayStructure","updateFolder","staticimage","getDashboardNews","export","getProviderDetailsByProject","membershipUpgrade","requestToBid","removeFromBid","activityReport","bulletinReport","orderPrint","searchWithKeywordDensity","subscribe","unsubscribe","sendToBCBid","getKeywordDensityByProjectId","keyword","getKeywordHighlightsByProjectId","purchasable","forgotPassword","patch","resetPassword","verifyEmail","encodeURIComponent","getAllPublic","getRecaptchaKey"],"mappings":"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","file":"js/app.22fb8810.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-00d1ee3a\":\"6afdc4c4\",\"chunk-04e69ba3\":\"98c1f137\",\"chunk-06581db3\":\"6fb6267e\",\"chunk-06f83f30\":\"427f72f1\",\"chunk-1336298f\":\"d09d7610\",\"chunk-15480d2c\":\"69cb253d\",\"chunk-22db02d8\":\"66b09b11\",\"chunk-263dc7b3\":\"c58654ee\",\"chunk-2a035164\":\"a056998b\",\"chunk-2d0be309\":\"b5a2b5c3\",\"chunk-2d0d6ab8\":\"ba661e6c\",\"chunk-2d0d6f6c\":\"8cf77e99\",\"chunk-2d0e5f4e\":\"bc98127a\",\"chunk-2d2161f1\":\"8def2178\",\"chunk-2d21807e\":\"a7b228b5\",\"chunk-2d21d66f\":\"08eaa256\",\"chunk-2d228d13\":\"09c1bd24\",\"chunk-2d22bef1\":\"3a97e796\",\"chunk-2ee788ae\":\"86767c44\",\"chunk-34094fe1\":\"52572c35\",\"chunk-35a7b4fe\":\"6841b5cf\",\"chunk-3b95803a\":\"3c89b1a8\",\"chunk-47bbc977\":\"420453e1\",\"chunk-495b6dda\":\"2df28264\",\"chunk-2d21a5e9\":\"b1252025\",\"chunk-4b96c8e4\":\"9bf77170\",\"chunk-0bc774c6\":\"25b4f626\",\"chunk-4d7f5795\":\"a1552ced\",\"chunk-68a924d2\":\"138b47cd\",\"chunk-66e9557f\":\"b3c2219c\",\"chunk-4243b224\":\"7e5f8731\",\"chunk-cb7dfef6\":\"2d11e210\",\"chunk-f1a5c6bc\":\"d6b8830c\",\"chunk-140d5330\":\"7bb15ceb\",\"chunk-5b1a3273\":\"304a3852\",\"chunk-53fe61ee\":\"22d1af45\",\"chunk-5692f732\":\"065766f9\",\"chunk-5779d3d2\":\"9cb62712\",\"chunk-2b6dafee\":\"6324d81c\",\"chunk-5da8b6bc\":\"16e78394\",\"chunk-77aff548\":\"1a5c56ca\",\"chunk-83196450\":\"d07c0b57\",\"chunk-9490cb5c\":\"cb8599eb\",\"chunk-97231b2e\":\"273dfe9d\",\"chunk-d45013ce\":\"0e8c2d31\",\"chunk-d72ebf5e\":\"6e83c5ec\",\"chunk-e9d28668\":\"00e8ed9f\",\"chunk-2d225405\":\"b6bb19d5\",\"chunk-2d0dee76\":\"9a7fa64d\",\"chunk-2d0a4856\":\"e043a19d\",\"chunk-2d0deeb9\":\"12865e53\",\"chunk-63d921cb\":\"1dba72ed\",\"chunk-ee27bf8a\":\"afe4c926\",\"chunk-2d0af517\":\"cc6bd9d4\",\"chunk-2d0f0421\":\"077e5748\",\"chunk-2d0ba0a0\":\"0635bf77\",\"chunk-2d0e17d3\":\"9ff378b9\",\"chunk-2d225a13\":\"78280a76\",\"chunk-0ff435de\":\"972fb907\",\"chunk-1dcd5a5a\":\"27712a45\",\"chunk-2d0ab10b\":\"f1524cc0\",\"chunk-2d21a072\":\"1f9e09d2\",\"chunk-3598277c\":\"cf1c6653\",\"chunk-99ca2a3a\":\"5cd0489f\",\"chunk-2d0d72e6\":\"df1e861d\",\"chunk-2d0d34f1\":\"a1585aca\",\"chunk-2d0b2517\":\"32ea63d7\",\"chunk-2d0c51f8\":\"239c3c05\",\"chunk-2d22dd19\":\"a9d955a0\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-00d1ee3a\":1,\"chunk-04e69ba3\":1,\"chunk-1336298f\":1,\"chunk-22db02d8\":1,\"chunk-34094fe1\":1,\"chunk-35a7b4fe\":1,\"chunk-47bbc977\":1,\"chunk-495b6dda\":1,\"chunk-0bc774c6\":1,\"chunk-4d7f5795\":1,\"chunk-66e9557f\":1,\"chunk-4243b224\":1,\"chunk-cb7dfef6\":1,\"chunk-f1a5c6bc\":1,\"chunk-140d5330\":1,\"chunk-5b1a3273\":1,\"chunk-5779d3d2\":1,\"chunk-83196450\":1,\"chunk-d72ebf5e\":1,\"chunk-63d921cb\":1,\"chunk-ee27bf8a\":1,\"chunk-0ff435de\":1,\"chunk-1dcd5a5a\":1,\"chunk-99ca2a3a\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-00d1ee3a\":\"fbdb3530\",\"chunk-04e69ba3\":\"b35f349c\",\"chunk-06581db3\":\"31d6cfe0\",\"chunk-06f83f30\":\"31d6cfe0\",\"chunk-1336298f\":\"b8bd02aa\",\"chunk-15480d2c\":\"31d6cfe0\",\"chunk-22db02d8\":\"1c48a16b\",\"chunk-263dc7b3\":\"31d6cfe0\",\"chunk-2a035164\":\"31d6cfe0\",\"chunk-2d0be309\":\"31d6cfe0\",\"chunk-2d0d6ab8\":\"31d6cfe0\",\"chunk-2d0d6f6c\":\"31d6cfe0\",\"chunk-2d0e5f4e\":\"31d6cfe0\",\"chunk-2d2161f1\":\"31d6cfe0\",\"chunk-2d21807e\":\"31d6cfe0\",\"chunk-2d21d66f\":\"31d6cfe0\",\"chunk-2d228d13\":\"31d6cfe0\",\"chunk-2d22bef1\":\"31d6cfe0\",\"chunk-2ee788ae\":\"31d6cfe0\",\"chunk-34094fe1\":\"412c9c04\",\"chunk-35a7b4fe\":\"05ed9a3a\",\"chunk-3b95803a\":\"31d6cfe0\",\"chunk-47bbc977\":\"265cce5e\",\"chunk-495b6dda\":\"86f2385c\",\"chunk-2d21a5e9\":\"31d6cfe0\",\"chunk-4b96c8e4\":\"31d6cfe0\",\"chunk-0bc774c6\":\"80ab2207\",\"chunk-4d7f5795\":\"3f3d32cb\",\"chunk-68a924d2\":\"31d6cfe0\",\"chunk-66e9557f\":\"7d88351a\",\"chunk-4243b224\":\"f9223814\",\"chunk-cb7dfef6\":\"84f98409\",\"chunk-f1a5c6bc\":\"876b9691\",\"chunk-140d5330\":\"c64a3e61\",\"chunk-5b1a3273\":\"6989ac31\",\"chunk-53fe61ee\":\"31d6cfe0\",\"chunk-5692f732\":\"31d6cfe0\",\"chunk-5779d3d2\":\"0e13dce4\",\"chunk-2b6dafee\":\"31d6cfe0\",\"chunk-5da8b6bc\":\"31d6cfe0\",\"chunk-77aff548\":\"31d6cfe0\",\"chunk-83196450\":\"d5ca620c\",\"chunk-9490cb5c\":\"31d6cfe0\",\"chunk-97231b2e\":\"31d6cfe0\",\"chunk-d45013ce\":\"31d6cfe0\",\"chunk-d72ebf5e\":\"d5ca620c\",\"chunk-e9d28668\":\"31d6cfe0\",\"chunk-2d225405\":\"31d6cfe0\",\"chunk-2d0dee76\":\"31d6cfe0\",\"chunk-2d0a4856\":\"31d6cfe0\",\"chunk-2d0deeb9\":\"31d6cfe0\",\"chunk-63d921cb\":\"2e6d1f30\",\"chunk-ee27bf8a\":\"7af896dd\",\"chunk-2d0af517\":\"31d6cfe0\",\"chunk-2d0f0421\":\"31d6cfe0\",\"chunk-2d0ba0a0\":\"31d6cfe0\",\"chunk-2d0e17d3\":\"31d6cfe0\",\"chunk-2d225a13\":\"31d6cfe0\",\"chunk-0ff435de\":\"5be0798d\",\"chunk-1dcd5a5a\":\"470e3cc9\",\"chunk-2d0ab10b\":\"31d6cfe0\",\"chunk-2d21a072\":\"31d6cfe0\",\"chunk-3598277c\":\"31d6cfe0\",\"chunk-99ca2a3a\":\"659d0965\",\"chunk-2d0d72e6\":\"31d6cfe0\",\"chunk-2d0d34f1\":\"31d6cfe0\",\"chunk-2d0b2517\":\"31d6cfe0\",\"chunk-2d0c51f8\":\"31d6cfe0\",\"chunk-2d22dd19\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import format from 'date-fns/format';\r\n\r\nconst DateTimeFilter = (value, pattern = 'MMM dd, yyyy') => {\r\n if (!value) return '';\r\n\r\n let [year, month, day] = value.substr(0, 10).split('-');\r\n let [hour, minute] = value.substr(11, 5).split(':');\r\n\r\n try { return format(new Date(year, (month - 1), day, hour, minute), pattern); }\r\n catch { return value; }\r\n}\r\n\r\nconst DateOnlyFilter = (value) => {\r\n if (!value) return '';\r\n \r\n try { return value.split('T')[0]; }\r\n catch { return value; }\r\n}\r\n\r\nexport { DateTimeFilter, DateOnlyFilter };\r\n","const state = {\r\n publicSignupVerifyCompany: null,\r\n publicSignupVerifyEmail: null,\r\n showNotifications: true,\r\n}\r\n\r\nexport const getters = {\r\n showNotifications: state => state.showNotifications\r\n}\r\n\r\nexport const actions = {\r\n setNotificationsDisplay: ({ commit }, toggle) => {\r\n commit('GLOBAL_SET_NOTIFICATIONS_DISPLAY', toggle)\r\n },\r\n setPublicSignupInfo: ({ commit }, payload) => {\r\n commit('PUBLIC_SIGNUP_VERIFY_COMPANY', payload.company);\r\n commit('PUBLIC_SIGNUP_VERIFY_EMAIL', payload.email);\r\n }\r\n}\r\n\r\nexport const mutations = {\r\n 'GLOBAL_SET_NOTIFICATIONS_DISPLAY' (state, toggle) {\r\n state.showNotifications = toggle;\r\n },\r\n 'PUBLIC_SIGNUP_VERIFY_COMPANY' (state, value) {\r\n state.publicSignupVerifyCompany = value;\r\n },\r\n 'PUBLIC_SIGNUP_VERIFY_EMAIL' (state, value) {\r\n state.publicSignupVerifyEmail = value;\r\n },\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { ClientService } from \"@/services/\"\r\n\r\nconst dbKeys = {\r\n CLIENT_API_KEY: 'clientApiKey',\r\n EXCLUDE_ZONES_FROM_DASHBOARD: 'excludeZonesFromDashboard',\r\n GOOGLE_MAP_KEY: 'googleMapKey',\r\n PUBLIC_DIRECTORY_LINK: 'publicDirectoryLink',\r\n USE_MEMBERSHIP_PAYMENT: 'useMembershipPayment',\r\n USE_DISPLAY_NEWS: 'useDisplayNews',\r\n USE_PROJECT_PAYMENT: 'useProjectPayment',\r\n USE_INVITE_2_BID: 'useInvite2Bid',\r\n USE_DOCUMENT_SEARCH: 'useDocumentSearch',\r\n USE_SEND_TO_BC_BID: 'useSendToBCBid',\r\n USE_PAYMENT_REPORTS: 'usePaymentReports',\r\n USE_ORDER_PRINTS: 'useOrderPrints'\r\n};\r\n\r\nconst state = {\r\n isDataLoaded: false,\r\n clientApiKey: null,\r\n excludeZonesFromDashboard: null,\r\n googleMapKey: null,\r\n publicDirectoryLink: null,\r\n useDisplayNews: false,\r\n useMembershipPayment: false,\r\n useProjectPayment: false,\r\n useInvite2Bid: false,\r\n useDocumentSearch: false,\r\n useSendToBCBid: false,\r\n usePaymentReports: false,\r\n useOrderPrints: false,\r\n defaultTimeZone: null\r\n}\r\n\r\nexport const getters = {\r\n isDataLoaded: state => state.isDataLoaded,\r\n getClientApiKey: state => state.clientApiKey,\r\n getExcludeZonesFromDashboard: state => state.excludeZonesFromDashboard,\r\n getGoogleMapKey: state => state.googleMapKey,\r\n getPublicDirectoryLink: state => state.publicDirectoryLink,\r\n getUseDisplayNews: state => state.useDisplayNews,\r\n getUseMembershipPayment: state => state.useMembershipPayment,\r\n getUseProjectPayment: state => state.useProjectPayment,\r\n getUseInvite2Bid: state => state.useInvite2Bid,\r\n getUseDocumentSearch: state => state.useDocumentSearch,\r\n getUseSendToBCBid: state => state.useSendToBCBid,\r\n getUsePaymentReports: state => state.usePaymentReports,\r\n getUseOrderPrints: state => state.useOrderPrints,\r\n getClientTimeZone: state => state.defaultTimeZone\r\n}\r\n\r\nexport const actions = {\r\n fetchClientSettings: ({ commit, getters }) => {\r\n if (getters.isDataLoaded)\r\n return;\r\n\r\n return ClientService.getConfigs().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CLIENT_SETTINGS_SET_IS_LOADED')\r\n commit('CLIENT_SETTINGS_CLIENT_API_KEY', response.data.settings)\r\n commit('CLIENT_SETTINGS_EXCLUDE_ZONES_FROM_DASHBOARD', response.data.settings)\r\n commit('CLIENT_SETTINGS_GOOGLE_MAP_KEY', response.data.settings)\r\n commit('CLIENT_SETTINGS_PUBLIC_DIRECTORY_LINK', response.data.settings)\r\n commit('CLIENT_SETTINGS_USE_DISPLAY_NEWS', response.data.settings)\r\n commit('CLIENT_SETTINGS_USE_MEMBERSHIP_PAYMENT', response.data.settings)\r\n commit('CLIENT_SETTINGS_USE_PROJECT_PAYMENT', response.data.settings)\r\n commit('CLIENT_SETTINGS_USE_INVITE_2_BID', response.data.settings)\r\n commit('CLIENT_SETTINGS_USE_DOCUMENT_SEARCH', response.data.settings)\r\n commit('CLIENT_SETTINGS_USE_SEND_TO_BC_BID', response.data.settings)\r\n commit('CLIENT_SETTINGS_USE_PAYMENT_REPORTS', response.data.settings)\r\n commit('CLIENT_SETTINGS_USE_ORDER_PRINTS', response.data.settings)\r\n commit('CLIENT_DEFAULT_TIME_ZONE', response.data.timeZone)\r\n resolve();\r\n });\r\n })\r\n }\r\n}\r\n\r\nexport const mutations = {\r\n 'CLIENT_SETTINGS_SET_IS_LOADED' (state) {\r\n state.isDataLoaded = true;\r\n },\r\n 'CLIENT_SETTINGS_CLIENT_API_KEY'(state, clientSettings) {\r\n let clientApiKey = clientSettings.find(setting => setting.clientSettingKey === dbKeys.CLIENT_API_KEY);\r\n if (clientApiKey) {\r\n state.clientApiKey = clientApiKey.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_EXCLUDE_ZONES_FROM_DASHBOARD'(state, clientSettings) {\r\n let excludeZonesFromDashboard = clientSettings.find(setting => setting.clientSettingKey === dbKeys.EXCLUDE_ZONES_FROM_DASHBOARD);\r\n if (excludeZonesFromDashboard) {\r\n state.excludeZonesFromDashboard = excludeZonesFromDashboard.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_GOOGLE_MAP_KEY'(state, clientSettings) {\r\n let googleMapKey = clientSettings.find(setting => setting.clientSettingKey === dbKeys.GOOGLE_MAP_KEY);\r\n if (googleMapKey) {\r\n state.googleMapKey = googleMapKey.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_PUBLIC_DIRECTORY_LINK'(state, clientSettings) {\r\n let publicDirectoryLink = clientSettings.find(setting => setting.clientSettingKey === dbKeys.PUBLIC_DIRECTORY_LINK);\r\n if (publicDirectoryLink) {\r\n state.publicDirectoryLink = publicDirectoryLink.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_USE_DISPLAY_NEWS' (state, clientSettings) {\r\n let useDisplayNews = clientSettings.find(setting => setting.clientSettingKey === dbKeys.USE_DISPLAY_NEWS);\r\n if (useDisplayNews) {\r\n state.useDisplayNews = useDisplayNews.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_USE_MEMBERSHIP_PAYMENT'(state, clientSettings) {\r\n let useMembershipPayment = clientSettings.find(setting => setting.clientSettingKey === dbKeys.USE_MEMBERSHIP_PAYMENT);\r\n if (useMembershipPayment) {\r\n state.useMembershipPayment = useMembershipPayment.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_USE_PROJECT_PAYMENT'(state, clientSettings) {\r\n let useProjectPayment = clientSettings.find(setting => setting.clientSettingKey === dbKeys.USE_PROJECT_PAYMENT);\r\n if (useProjectPayment) {\r\n state.useProjectPayment = useProjectPayment.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_USE_INVITE_2_BID'(state, clientSettings) {\r\n let useInvite2Bid = clientSettings.find(setting => setting.clientSettingKey === dbKeys.USE_INVITE_2_BID);\r\n if (useInvite2Bid) {\r\n state.useInvite2Bid = useInvite2Bid.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_USE_DOCUMENT_SEARCH'(state, clientSettings) {\r\n let useDocumentSearch = clientSettings.find(setting => setting.clientSettingKey === dbKeys.USE_DOCUMENT_SEARCH);\r\n if (useDocumentSearch) {\r\n state.useDocumentSearch = useDocumentSearch.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_USE_SEND_TO_BC_BID'(state, clientSettings) {\r\n let useSendToBCBid = clientSettings.find(setting => setting.clientSettingKey === dbKeys.USE_SEND_TO_BC_BID);\r\n if (useSendToBCBid) {\r\n state.useSendToBCBid = useSendToBCBid.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_USE_PAYMENT_REPORTS'(state, clientSettings) {\r\n let usePaymentReports = clientSettings.find(setting => setting.clientSettingKey === dbKeys.USE_PAYMENT_REPORTS);\r\n if (usePaymentReports) {\r\n state.usePaymentReports = usePaymentReports.value;\r\n }\r\n },\r\n 'CLIENT_SETTINGS_USE_ORDER_PRINTS'(state, clientSettings) {\r\n let useOrderPrints = clientSettings.find(setting => setting.clientSettingKey === dbKeys.USE_ORDER_PRINTS);\r\n if (useOrderPrints) {\r\n state.useOrderPrints = useOrderPrints.value;\r\n }\r\n },\r\n 'CLIENT_DEFAULT_TIME_ZONE'(state, timezone) {\r\n state.defaultTimeZone = timezone;\r\n },\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { CategoryService, ClassificationTypeService, FundingService, PermissionGroupService, ProvinceService, CountryService } from \"@/services/\"\r\nimport { alpha as alphaSort } from \"@/utils/sort\";\r\n\r\nconst state = {\r\n categories: [],\r\n classificationTypes: [],\r\n fundingTypes: [],\r\n groupedCategories: [],\r\n permissionGroups: [],\r\n provinces: [],\r\n countries:[]\r\n}\r\n\r\nexport const getters = {\r\n getCategories: state => state.categories,\r\n getGroupedCategories: state => state.groupedCategories,\r\n getClassificationTypes: state => state.classificationTypes,\r\n getFundingTypes: state => state.fundingTypes,\r\n getPermissionGroups: state => state.permissionGroups,\r\n getProvinces: state => state.provinces.sort((a, b) => alphaSort(a.name, b.name)),\r\n getCountries: state => state.countries.sort((a, b) => alphaSort(a.name, b.name)),\r\n}\r\n\r\nexport const actions = {\r\n fetchCategories: ({ commit }) => {\r\n return CategoryService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('LOOKUP_CATEGORY_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchGroupedCategories: ({ commit }) => {\r\n return CategoryService.getByGrouping().then(response => {\r\n return new Promise((resolve) => {\r\n commit('LOOKUP_CATEGORY_GROUPED_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchClassificationTypes: ({ commit }) => {\r\n return ClassificationTypeService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('LOOKUP_CLASSIFICATION_TYPES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchFundingTypes: ({ commit }) => {\r\n return FundingService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('LOOKUP_FUNDING_TYPES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchPermissionGroups: ({ commit }) => {\r\n return PermissionGroupService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('LOOKUP_PERMISSION_GROUP_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchProvinces: ({ commit }) => {\r\n return ProvinceService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('LOOKUP_PROVINCES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchCountries: ({ commit }) => {\r\n return CountryService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('LOOKUP_COUNTRIES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n }\r\n}\r\n\r\nexport const mutations = {\r\n 'LOOKUP_CATEGORY_SET'(state, categories) {\r\n state.categories = categories\r\n },\r\n 'LOOKUP_CATEGORY_GROUPED_SET'(state, categories) {\r\n state.groupedCategories = categories\r\n },\r\n 'LOOKUP_CLASSIFICATION_TYPES_SET'(state, types) {\r\n state.classificationTypes = types\r\n },\r\n 'LOOKUP_CONTACT_TYPES_SET'(state, types) {\r\n state.contactTypes = types\r\n },\r\n 'LOOKUP_FUNDING_TYPES_SET'(state, types) {\r\n state.fundingTypes = types\r\n },\r\n 'LOOKUP_OWNER_TYPES_SET'(state, types) {\r\n state.ownerTypes = types\r\n },\r\n 'LOOKUP_PERMISSION_GROUP_SET'(state, groups) {\r\n state.permissionGroups = groups\r\n },\r\n 'LOOKUP_PROCUREMENT_TYPES_SET'(state, types) {\r\n state.procurementTypes = types\r\n },\r\n 'LOOKUP_PROVINCES_SET'(state, provinces) {\r\n state.provinces = provinces\r\n },\r\n 'LOOKUP_COUNTRIES_SET'(state, countries) {\r\n state.countries = countries\r\n },\r\n 'LOOKUP_TENDER_STAGES_SET'(state, stages) {\r\n state.tenderStages = stages\r\n },\r\n 'LOOKUP_TRADE_AGREEMENTS_SET'(state, agreements) {\r\n state.tradeAgreements = agreements\r\n },\r\n 'LOOKUP_ZONES_SET'(state, zones) {\r\n state.zones = zones\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { UserService } from \"@/services/\"\r\nimport JwtHelper from \"@/utils/jwtHelper\";\r\n\r\nconst state = {\r\n authorized: null,\r\n authUser: null,\r\n isRefreshing: false,\r\n refreshingCall: undefined,\r\n user: null,\r\n permissions: []\r\n}\r\n\r\nexport const getters = {\r\n isAuthorized: state => state.authorized,\r\n getCurrentUser: state => state.user,\r\n getCurrentUserPermissions: state => state.permissions\r\n}\r\n\r\nexport const actions = {\r\n setCurrentUser: ({ commit, state }, user) => {\r\n return new Promise((resolve) => {\r\n let { id, firstName, lastName, email } = user\r\n\r\n commit('AUTH_SET_USER', { id, firstName, lastName, email });\r\n JwtHelper.setToken(JwtHelper.keys.user, { id, firstName, lastName, email, companies: state.user.companies });\r\n\r\n resolve();\r\n });\r\n },\r\n setRefreshingState: ({ commit }, isRefreshed) => {\r\n return new Promise((resolve) => {\r\n commit('AUTH_SET_REFRESHING_STATE', isRefreshed)\r\n resolve();\r\n });\r\n },\r\n setRefreshingCall: ({ commit }, refreshCall) => {\r\n return new Promise((resolve) => {\r\n commit('AUTH_SET_REFRESH_CALL', refreshCall)\r\n resolve();\r\n });\r\n },\r\n authorize: ({ commit }, model) => {\r\n return UserService.authenticate(model)\r\n .then(response => {\r\n let { id, firstName, lastName, email, companies, isClientAdmin, isSystemAdmin } = response.data\r\n let isAdmin = isClientAdmin || isSystemAdmin;\r\n\r\n commit('AUTH_SET_ISAUTH', true)\r\n commit('AUTH_SET_AUTH_USER', response.data)\r\n commit('AUTH_SET_USER', { id, firstName, lastName, email, companies, isAdmin })\r\n commit('AUTH_SET_PERMISSIONS', response.data)\r\n\r\n JwtHelper.setToken(JwtHelper.keys.jwt, response.data);\r\n JwtHelper.setToken(JwtHelper.keys.user, { id, firstName, lastName, email, companies, isAdmin });\r\n\r\n return new Promise((resolve) => {\r\n resolve()\r\n })\r\n })\r\n .catch(err => {\r\n commit('AUTH_SET_ISAUTH', false)\r\n throw err\r\n })\r\n },\r\n testAuth: ({ commit }, model) => {\r\n\r\n // console.log('test store', model);\r\n\r\n let { id, firstName, lastName, email, companies, isClientAdmin, isSystemAdmin } = model\r\n let isAdmin = isClientAdmin || isSystemAdmin;\r\n\r\n commit('AUTH_SET_ISAUTH', true)\r\n commit('AUTH_SET_AUTH_USER', model)\r\n commit('AUTH_SET_USER', { id, firstName, lastName, email, companies, isAdmin })\r\n commit('AUTH_SET_PERMISSIONS', model)\r\n\r\n JwtHelper.setToken(JwtHelper.keys.jwt, model);\r\n JwtHelper.setToken(JwtHelper.keys.user, { id, firstName, lastName, email, companies, isAdmin });\r\n\r\n return new Promise((resolve) => {\r\n resolve()\r\n })\r\n\r\n\r\n },\r\n refreshUser: ({ commit }, { token, user }) => {\r\n commit('AUTH_SET_ISAUTH', true)\r\n commit('AUTH_SET_AUTH_USER', token)\r\n commit('AUTH_SET_USER', user)\r\n commit('AUTH_SET_PERMISSIONS', token)\r\n\r\n JwtHelper.setToken(JwtHelper.keys.jwt, token);\r\n JwtHelper.setToken(JwtHelper.keys.user, user);\r\n\r\n return new Promise((resolve) => {\r\n resolve()\r\n })\r\n },\r\n logout: ({ commit }) => {\r\n commit('AUTH_SET_ISAUTH', false)\r\n commit('AUTH_SET_AUTH_USER', null)\r\n commit('AUTH_SET_USER', null)\r\n commit('AUTH_SET_PERMISSIONS', null)\r\n commit('GLOBAL_SET_NOTIFICATIONS_DISPLAY', false, { root: true });\r\n\r\n JwtHelper.removeToken(JwtHelper.keys.user);\r\n JwtHelper.removeToken(JwtHelper.keys.jwt);\r\n JwtHelper.removeToken(JwtHelper.keys.userdata);\r\n\r\n localStorage.clear();\r\n \r\n return new Promise((resolve) => {\r\n resolve();\r\n });\r\n }\r\n}\r\n\r\nexport const mutations = {\r\n 'AUTH_SET_REFRESHING_STATE'(state, isRefreshed) {\r\n state.isRefreshing = isRefreshed\r\n },\r\n 'AUTH_SET_REFRESH_CALL'(state, refreshCall) {\r\n state.refreshingCall = refreshCall\r\n },\r\n 'AUTH_SET_ISAUTH'(state, isAuthorized) {\r\n state.authorized = isAuthorized\r\n },\r\n 'AUTH_SET_AUTH_USER'(state, user) {\r\n state.authUser = user\r\n },\r\n 'AUTH_SET_USER'(state, user) {\r\n if (!user) {\r\n state.user = null;\r\n return;\r\n }\r\n\r\n state.user = { ...state.user, ...user };\r\n },\r\n 'AUTH_SET_PERMISSIONS'(state, user) {\r\n let permissions = [];\r\n\r\n if (user && user.permissions) {\r\n permissions = permissions.concat( user.permissions.map(p => p.code) )\r\n }\r\n\r\n if (user && user.zonePermissions) {\r\n permissions = permissions.concat([...new Set( user.zonePermissions.map(i => i.permissions).reduce((acc, val) => acc.concat(val), []) )])\r\n }\r\n\r\n state.permissions = permissions;\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import uuid from 'uuid/v1'\r\nimport moment from 'moment/moment'\r\nimport cloneDeep from \"lodash/cloneDeep\"\r\nimport { date as dateSort } from \"@/utils/sort\";\r\nimport { ProjectService, ProjectSearchService, BidInvitationService } from \"@/services/\"\r\n\r\nconst emptyProject = {\r\n id: null,\r\n ocaaNumber: null,\r\n lcaNumber: null,\r\n belongZoneId: null,\r\n sharedZoneIds: [],\r\n title: null,\r\n ownerSolicitationNumber: null,\r\n addresses: [],\r\n awardedDate: null,\r\n closingDate: null,\r\n otherClosingDate: null,\r\n submitBidsTo: null,\r\n obtainBidDocuments: null,\r\n bonding: null,\r\n siteMeetings: [],\r\n addenda: 0,\r\n tenderStageId: null,\r\n fundingId: null,\r\n procurementTypeId: null,\r\n classificationTypeId: null,\r\n classificationOfWorkIds: [],\r\n ownerTypeId: null,\r\n budget: null,\r\n scopeOfWork: null,\r\n comments: null,\r\n disclaimer: null,\r\n tradeAgreementIds: [],\r\n showProject: false,\r\n enableRequestToBid: true,\r\n isPrivate: false,\r\n rootFolderId: null,\r\n owner: null,\r\n contacts: [],\r\n documents: [],\r\n adminNotes: [],\r\n prebidNotes: [],\r\n followUpTasks: [],\r\n bids: [],\r\n followers: [],\r\n timeZone: {\r\n code: null,\r\n name: null,\r\n id: null\r\n },\r\n bidInvitations: []\r\n};\r\n\r\nconst defaultProjectContact = {\r\n companyName: null,\r\n showInfo: false,\r\n address: { street: null, city: null, postalCode: null, provinceId: null },\r\n phone: null,\r\n contactTypeId: null,\r\n additionalInformation: null\r\n}\r\n\r\nexport const state = {\r\n project: { ...emptyProject },\r\n projects: [],\r\n projectsForLoggedInUser: [],\r\n siteMeeting: {},\r\n bid: {},\r\n address: {},\r\n owner: {},\r\n contact: {},\r\n note: {},\r\n prebidNote: {},\r\n task: {},\r\n savedSearches: []\r\n};\r\n\r\nexport const getters = {\r\n getProject: state => state.project,\r\n getProjects: state => state.projects,\r\n getProjectAddress: state => state.address,\r\n getProjectAddresses: state => state.project.addresses,\r\n getProjectBid: state => state.bid,\r\n getProjectBids: state => state.project.bids,\r\n getProjectContact: state => state.contact,\r\n getProjectContacts: state => state.project.contacts,\r\n getProjectSavedSearches: state => state.savedSearches,\r\n getProjectSiteMeeting: state => state.siteMeeting,\r\n getProjectSiteMeetings: state => state.project.siteMeetings.sort((a, b) => dateSort(a.date, b.date)),\r\n getProjectNote: state => state.note,\r\n getProjectNotes: state => state.project.adminNotes,\r\n getProjectOwner: state => state.owner,\r\n getProjectPrebidNote: state => state.prebidNote,\r\n getProjectPrebidNotes: state => state.project.prebidNotes.sort((a, b) => dateSort(a.createdOn, b.createdOn)),\r\n getProjectTask: state => state.task,\r\n getProjectTasks: state => state.project.followUpTasks\r\n};\r\n\r\nexport const actions = {\r\n createNewProject: ({ commit }) => {\r\n let newProject = Object.assign({}, emptyProject);\r\n newProject.id = uuid();\r\n newProject.rootProjectId = uuid();\r\n\r\n commit('PROJECT_SET_NEW', newProject);\r\n },\r\n fetchProject: ({ commit }, id) => {\r\n if (!id) {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SET_NEW');\r\n resolve();\r\n })\r\n }\r\n\r\n return ProjectService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SET', response.data);\r\n resolve(response.data);\r\n })\r\n })\r\n },\r\n fetchProjectDetails: ({ commit }, id) => {\r\n return ProjectService.getDetailsById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SET', response.data);\r\n resolve(response.data);\r\n })\r\n })\r\n },\r\n fetchProjects: ({ commit }, params) => {\r\n return ProjectService.search(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SET_ALL', response.data.results)\r\n resolve(response.data);\r\n });\r\n\r\n });\r\n },\r\n fetchProjectsForLoggedInUser: ({ commit }) => {\r\n return ProjectService.getForLoggedInUser().then(response => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SET_FOR_LOGGEDINUSER', response.data.results)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n fetchProjectSearches: ({ commit }) => {\r\n return ProjectSearchService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SEARCHES_SET', response.data)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n saveProject: ({ commit }, params) => {\r\n params.data.addresses = state.project.addresses;\r\n params.data.siteMeetings = state.project.siteMeetings;\r\n params.data.contacts = state.project.contacts;\r\n params.data.bids = state.project.bids;\r\n params.data.adminNotes = state.project.adminNotes;\r\n params.data.prebidNotes = state.project.prebidNotes;\r\n params.data.followUpTasks = state.project.followUpTasks;\r\n params.data.owner = state.project.owner;\r\n\r\n // i hate datetime, and timezones, and kinds\r\n if (params.data.awardedDate) params.data.awardedDate = params.data.awardedDate.substr(0, 19);\r\n if (params.data.closingDate) params.data.closingDate = params.data.closingDate.substr(0, 19);\r\n if (params.data.otherClosingDate) params.data.otherClosingDate = params.data.otherClosingDate.substr(0, 19);\r\n params.data.siteMeetings.forEach(item => { if (item.date) item.date = item.date.substr(0, 19); });\r\n params.data.followUpTasks.forEach(item => { if (item.dueDate) item.dueDate = item.dueDate.substr(0, 19); });\r\n\r\n return ProjectService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SET', response.data)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n setProject: ({ commit }, project) => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SET', project)\r\n resolve(project);\r\n });\r\n },\r\n saveProjectBidInvitation: ({ commit }, params) => {\r\n return BidInvitationService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_BIDINVITATION_ADD', response.data)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n sendProjectITBFollowUp: ({ commit }, params) => {\r\n return BidInvitationService.followUp(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_BIDINVITATION_FOLLOWUP', params.BidInvitationInvitees)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n saveProjectSearch: ({ commit }, params) => {\r\n return ProjectSearchService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SEARCHES_ADD', response.data)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n removeProjectSearch: ({ commit }, id) => {\r\n return ProjectSearchService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SEARCHES_REMOVE', id)\r\n resolve();\r\n });\r\n })\r\n },\r\n fetchProjectAddress: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let address = state.project.addresses.find(p => p.id === id);\r\n\r\n if (address) {\r\n commit('PROJECT_ADDRESS_SET', address);\r\n resolve(address);\r\n }\r\n });\r\n },\r\n saveProjectAddress: ({ commit }, address) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_ADDRESS_SAVE', address);\r\n resolve()\r\n });\r\n },\r\n resetProjectAddress: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_ADDRESS_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n removeProjectAddress: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_ADDRESS_REMOVE', id);\r\n resolve();\r\n });\r\n },\r\n resetProjectOwner: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_OWNER_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n fetchProjectOwner: ({ commit }) => {\r\n return new Promise((resolve) => {\r\n let owner = state.project.owner;\r\n\r\n if (owner) {\r\n commit('PROJECT_OWNER_SET', owner);\r\n resolve();\r\n }\r\n });\r\n },\r\n saveProjectOwner: ({ commit }, owner) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_OWNER_SAVE', owner);\r\n resolve()\r\n });\r\n },\r\n setProjectBids: ({ commit }, bids) => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_BIDS_SET', bids);\r\n resolve(bids);\r\n });\r\n },\r\n fetchProjectBid: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let bid = state.project.bids.find(p => p.id === id);\r\n\r\n if (bid) {\r\n commit('PROJECT_BID_SET', bid);\r\n resolve(bid);\r\n }\r\n });\r\n },\r\n saveProjectBid: ({ commit }, bid) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_BID_SAVE', bid);\r\n resolve()\r\n });\r\n },\r\n resetProjectBid: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_BID_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n removeProjectBid: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_BID_REMOVE', id);\r\n resolve();\r\n });\r\n },\r\n fetchProjectSiteMeeting: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let meeting = state.project.siteMeetings.find(p => p.id === id);\r\n\r\n if (meeting) {\r\n commit('PROJECT_SITE_MEETING_SET', meeting);\r\n resolve(meeting);\r\n }\r\n });\r\n },\r\n saveProjectSiteMeeting: ({ commit }, meeting) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_SITE_MEETING_SAVE', meeting);\r\n resolve()\r\n });\r\n },\r\n resetProjectSiteMeeting: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_SITE_MEETING_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n removeProjectSiteMeeting: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_SITE_MEETING_REMOVE', id);\r\n resolve();\r\n });\r\n },\r\n fetchProjectContact: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let contact = state.project.contacts.find(p => p.id === id);\r\n\r\n if (contact) {\r\n commit('PROJECT_CONTACT_SET', contact);\r\n resolve(contact);\r\n }\r\n });\r\n },\r\n saveProjectContact: ({ commit }, contact) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_CONTACT_SAVE', contact);\r\n resolve()\r\n });\r\n },\r\n resetProjectContact: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_CONTACT_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n removeProjectContact: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_CONTACT_REMOVE', id);\r\n resolve();\r\n });\r\n },\r\n fetchProjectNote: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let note = state.project.adminNotes.find(p => p.id === id);\r\n\r\n if (note) {\r\n commit('PROJECT_NOTE_SET', note);\r\n resolve(note);\r\n }\r\n });\r\n },\r\n saveProjectNote: ({ commit }, note) => {\r\n note.date = moment.utc(); // set created date\r\n\r\n return new Promise(resolve => {\r\n commit('PROJECT_NOTE_SAVE', note);\r\n resolve()\r\n });\r\n },\r\n resetProjectNote: ({ commit, rootState }) => {\r\n return new Promise(resolve => {\r\n let user = rootState.auth.user;\r\n commit('PROJECT_NOTE_SET_NEW', user);\r\n resolve();\r\n })\r\n },\r\n\r\n // Project Prebid Notes\r\n\r\n fetchProjectPrebidNote: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let note = state.project.prebidNotes.find(p => p.id === id);\r\n\r\n if (note) {\r\n commit('PROJECT_PREBID_NOTE_SET', note);\r\n resolve(note);\r\n }\r\n });\r\n },\r\n saveProjectPrebidNote: ({ commit }, note) => {\r\n note.date = moment.utc(); // set created date\r\n\r\n return new Promise(resolve => {\r\n commit('PROJECT_PREBID_NOTE_SAVE', note);\r\n resolve()\r\n });\r\n },\r\n resetProjectPrebidNote: ({ commit, rootState }) => {\r\n return new Promise(resolve => {\r\n let user = rootState.auth.user;\r\n commit('PROJECT_PREBID_NOTE_SET_NEW', user);\r\n resolve();\r\n })\r\n },\r\n\r\n fetchProjectTask: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let task = state.project.followUpTasks.find(p => p.id === id);\r\n\r\n if (task) {\r\n commit('PROJECT_TASK_SET', task);\r\n resolve(task);\r\n }\r\n });\r\n },\r\n saveProjectTask: ({ commit }, task) => {\r\n task.date = moment.utc(); // set created date\r\n\r\n return new Promise(resolve => {\r\n commit('PROJECT_TASK_SAVE', task);\r\n resolve()\r\n });\r\n },\r\n updateProjectTaskCompletedFlag: ({ commit }, args) => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_TASK_UPDATE_COMPLETED_FLAG', args);\r\n resolve();\r\n });\r\n },\r\n resetProjectTask: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('PROJECT_TASK_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n removeProjectTask: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('PROJECT_TASK_REMOVE', id);\r\n resolve();\r\n });\r\n }\r\n};\r\n\r\nexport const mutations = {\r\n 'PROJECT_SET'(state, project) {\r\n state.project = Object.assign({}, emptyProject, project);\r\n },\r\n 'PROJECT_SET_ALL'(state, projects) {\r\n state.projects = projects\r\n },\r\n 'PROJECT_SET_FOR_LOGGEDINUSER'(state, projects) {\r\n state.projectsForLoggedInUser = projects;\r\n },\r\n 'PROJECT_SET_NEW'(state) {\r\n let newProject = cloneDeep(emptyProject);\r\n newProject.id = uuid();\r\n newProject.rootFolderId = uuid();\r\n\r\n state.project = newProject\r\n },\r\n 'PROJECT_ADDRESS_SET_NEW'(state) {\r\n state.address = { id: uuid(), address: null, city: null, province: null, postalcode: null }\r\n },\r\n 'PROJECT_ADDRESS_SET'(state, address) {\r\n state.address = address\r\n },\r\n 'PROJECT_ADDRESS_SAVE'(state, address) {\r\n let isExist = state.project.addresses.find(n => n.id === address.id);\r\n\r\n if (isExist) {\r\n var pos = state.project.addresses.indexOf(isExist);\r\n state.project.addresses.splice(pos, 1, address);\r\n }\r\n else {\r\n state.project.addresses.push(address);\r\n }\r\n },\r\n 'PROJECT_ADDRESS_REMOVE'(state, id) {\r\n let address = state.project.addresses.find(n => n.id === id);\r\n\r\n if (address) {\r\n var pos = state.project.addresses.indexOf(address);\r\n state.project.addresses.splice(pos, 1);\r\n }\r\n },\r\n 'PROJECT_OWNER_SET_NEW'(state) {\r\n state.owner = { id: uuid(), address: {}, showInfo: false, additionalInformation: null };\r\n },\r\n 'PROJECT_OWNER_SET' (state, owner) {\r\n state.owner = owner;\r\n },\r\n 'PROJECT_OWNER_SAVE' (state, owner) {\r\n state.project.owner = owner;\r\n },\r\n 'PROJECT_BID_SET_NEW'(state) {\r\n state.bid = { id: uuid(), awardedAmount: null, submittedAmount: null, company: { address: {}, userCount: 0 }, participantTypeId: null };\r\n },\r\n 'PROJECT_BID_SET'(state, bid) {\r\n state.bid = bid\r\n },\r\n 'PROJECT_BIDS_SET'(state, bids) {\r\n state.project.bids = bids;\r\n },\r\n 'PROJECT_BIDINVITATION_FOLLOWUP' (state, bidInvitations) {\r\n bidInvitations.forEach(invite => {\r\n // since we're sending back a partial collection of itself, we can guarantee the records will exist.\r\n state.project.bidInvitations.find(n => n.id == invite.id).lastContactDate = moment().format();\r\n })\r\n },\r\n 'PROJECT_BIDINVITATION_ADD'(state, bidInvitation) {\r\n state.project.bidInvitations.push(bidInvitation);\r\n },\r\n 'PROJECT_BID_SAVE'(state, bid) {\r\n let isExist = state.project.bids.find(n => n.id === bid.id);\r\n\r\n if (isExist) {\r\n var pos = state.project.bids.indexOf(isExist);\r\n state.project.bids.splice(pos, 1, bid);\r\n }\r\n else {\r\n state.project.bids.push(bid);\r\n }\r\n },\r\n 'PROJECT_BID_REMOVE'(state, id) {\r\n let bid = state.project.bids.find(n => n.id === id);\r\n\r\n if (bid) {\r\n var pos = state.project.bids.indexOf(bid);\r\n state.project.bids.splice(pos, 1);\r\n }\r\n },\r\n 'PROJECT_SEARCHES_ADD'(state, search) {\r\n state.savedSearches.push(search)\r\n },\r\n 'PROJECT_SEARCHES_SET'(state, searches) {\r\n state.savedSearches = searches\r\n },\r\n 'PROJECT_SEARCHES_REMOVE'(state, id) {\r\n state.savedSearches = [...state.savedSearches.filter(i => i.id !== id)];\r\n },\r\n 'PROJECT_SITE_MEETING_SET_NEW'(state) {\r\n state.siteMeeting = { id: uuid(), date: null, priority: null, text: null }\r\n },\r\n 'PROJECT_SITE_MEETING_SET'(state, meeting) {\r\n state.siteMeeting = meeting\r\n },\r\n 'PROJECT_SITE_MEETING_SAVE'(state, meeting) {\r\n let isExist = state.project.siteMeetings.find(n => n.id === meeting.id);\r\n\r\n if (isExist) {\r\n var pos = state.project.siteMeetings.indexOf(isExist);\r\n state.project.siteMeetings.splice(pos, 1, meeting);\r\n }\r\n else {\r\n state.project.siteMeetings.push(meeting);\r\n }\r\n },\r\n 'PROJECT_SITE_MEETING_REMOVE'(state, id) {\r\n let meeting = state.project.siteMeetings.find(n => n.id === id);\r\n\r\n if (meeting) {\r\n var pos = state.project.siteMeetings.indexOf(meeting);\r\n state.project.siteMeetings.splice(pos, 1);\r\n }\r\n },\r\n 'PROJECT_CONTACT_SET_NEW'(state) {\r\n state.contact = { id: uuid(), ...defaultProjectContact };\r\n },\r\n 'PROJECT_CONTACT_SET'(state, contact) {\r\n state.contact = contact;\r\n state.contact.address = state.contact.address || { ...defaultProjectContact.address };\r\n },\r\n 'PROJECT_CONTACT_SAVE'(state, contact) {\r\n // will want to clean this up - yuck!\r\n let isExist = state.project.contacts.find(c => c.id === contact.id);\r\n\r\n if (isExist) {\r\n var pos = state.project.contacts.indexOf(isExist);\r\n state.project.contacts.splice(pos, 1, contact);\r\n } else {\r\n state.project.contacts.push(contact);\r\n }\r\n },\r\n 'PROJECT_CONTACT_REMOVE'(state, id) {\r\n let contact = state.project.contacts.find(n => n.id === id);\r\n\r\n if (contact) {\r\n var pos = state.project.contacts.indexOf(contact);\r\n state.project.contacts.splice(pos, 1);\r\n }\r\n },\r\n 'PROJECT_NOTE_SET_NEW'(state, user) {\r\n let userName = user.firstName + ' ' + user.lastName;\r\n state.note = { id: uuid(), name: userName, text: null }\r\n },\r\n 'PROJECT_NOTE_SET'(state, note) {\r\n state.note = note\r\n },\r\n 'PROJECT_NOTE_SAVE'(state, note) {\r\n let isExist = state.project.adminNotes.find(n => n.id === note.id);\r\n\r\n if (isExist) {\r\n var pos = state.project.adminNotes.indexOf(isExist);\r\n state.project.adminNotes.splice(pos, 1, note);\r\n }\r\n else {\r\n state.project.adminNotes.push(note);\r\n }\r\n },\r\n\r\n ///////////////\r\n\r\n 'PROJECT_PREBID_NOTE_SET_NEW'(state, user) {\r\n let userName = user.firstName + ' ' + user.lastName;\r\n state.prebidNote = { id: uuid(), name: userName, text: null }\r\n },\r\n 'PROJECT_PREBID_NOTE_SET'(state, note) {\r\n state.prebidNote = note\r\n },\r\n 'PROJECT_PREBID_NOTE_SAVE'(state, note) {\r\n state.project.prebidNotes = [...state.project.prebidNotes.filter(i => i.id !== note.id), note];\r\n },\r\n\r\n ///////////////\r\n\r\n 'PROJECT_TASK_SET_NEW'(state) {\r\n state.task = { id: uuid(), dueDate: null, completed: false }\r\n },\r\n 'PROJECT_TASK_SET'(state, task) {\r\n state.task = task\r\n },\r\n 'PROJECT_TASK_SAVE'(state, task) {\r\n let isExist = state.project.followUpTasks.find(n => n.id === task.id);\r\n\r\n if (isExist) {\r\n var pos = state.project.followUpTasks.indexOf(isExist);\r\n state.project.followUpTasks.splice(pos, 1, task);\r\n }\r\n else {\r\n state.project.followUpTasks.push(task);\r\n }\r\n },\r\n 'PROJECT_TASK_UPDATE_COMPLETED_FLAG'(state, params) {\r\n let { id, completed } = params;\r\n let task = state.project.followUpTasks.find(n => n.id === id);\r\n\r\n if (task) {\r\n task.isCompleted = completed;\r\n\r\n var pos = state.project.followUpTasks.indexOf(task);\r\n state.project.followUpTasks.splice(pos, 1, task);\r\n }\r\n },\r\n 'PROJECT_TASK_REMOVE'(state, id) {\r\n let task = state.project.followUpTasks.find(n => n.id === id);\r\n\r\n if (task) {\r\n var pos = state.project.followUpTasks.indexOf(task);\r\n state.project.followUpTasks.splice(pos, 1);\r\n }\r\n }\r\n};\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import uuid from 'uuid/v1'\r\nimport cloneDeep from \"lodash/cloneDeep\"\r\nimport { BusinessCategoryService, ClassificationOfWorkService, CompanyService, CompanySearchService, EmailService, LabourTypeService, LabourOfWorkService, LicenceService, SocialMediaTypeService, UnionAffiliationService, CompanyLiabilityInsuranceService } from \"@/services/\";\r\nimport { alpha as alphaSort } from \"@/utils/sort\";\r\n\r\nconst emptyCompany = {\r\n \"name\": null,\r\n \"email\": null,\r\n \"website\": null,\r\n \"address\": {\r\n \"street\": null,\r\n \"suite\": null,\r\n \"city\": null,\r\n \"postalCode\": null,\r\n \"provinceId\": null,\r\n },\r\n \"phone\": null,\r\n \"fax\": null,\r\n \"memberships\": [],\r\n \"users\": [],\r\n \"lastLoggedIn\": null,\r\n \"businessCategoryIds\": [],\r\n \"serviceRegionIds\": [],\r\n \"labourTypeId\": null,\r\n \"labourOfWorkIds\": [],\r\n \"classificationOfWorkIds\": [],\r\n \"categoryIds\": [],\r\n \"ownerTypeIds\": [],\r\n \"matchingKeywords\": [],\r\n \"productMatchingKeywords\": [],\r\n targetedZoneIds: [],\r\n showInPD: true,\r\n \"licenceList\": [],\r\n \"associations\": [],\r\n \"projectSamples\": [],\r\n \"socialMediaList\": [],\r\n \"unionAffiliationIds\": [],\r\n \"logo\": null,\r\n \"wcbCertificate\": null,\r\n \"liabilityInsurance\": null\r\n}\r\n\r\nconst state = {\r\n businessCategories: [],\r\n labourTypes: [],\r\n labourOfWork: [],\r\n classificationOfWork: [],\r\n company: {\r\n memberships: [],\r\n users: [],\r\n licenceList: [],\r\n associations: [],\r\n projectSamples: [],\r\n socialMediaList: [],\r\n logo: {},\r\n wcbCertificate: {},\r\n liabilityInsurance: {}\r\n },\r\n companies: [],\r\n companyLookup: [],\r\n membership: {},\r\n user: {},\r\n savedSearches: [],\r\n sentEmail: null,\r\n sendEmailAddresses: [],\r\n association: {},\r\n projectSample: {},\r\n socialMedia: {},\r\n socialMediaTypes: [],\r\n unionAffiliations: [],\r\n companyLicence: {},\r\n licences: [],\r\n companyLiabilityInsurances: []\r\n}\r\n\r\nconst companyUserSort = (a, b) => {\r\n if (a.acceptanceStatus < b.acceptanceStatus) return 1;\r\n if (a.acceptanceStatus > b.acceptanceStatus) return -1;\r\n\r\n if (a.user.firstName > b.user.firstName) return 1;\r\n if (a.user.firstName < b.user.firstName) return -1;\r\n\r\n if (a.user.lastName > b.user.lastName) return 1;\r\n if (a.user.lastName < b.user.lastName) return -1;\r\n}\r\n\r\nexport const getters = {\r\n getBusinessCategories: state => state.businessCategories,\r\n getLabourTypes: state => state.labourTypes,\r\n getLabourOfWork: state => state.labourOfWork,\r\n getClassificationOfWork: state => state.classificationOfWork,\r\n getCompany: state => state.company,\r\n getCompanies: state => state.companies,\r\n getLookup: state => state.companyLookup,\r\n getCompanyMembership: state => state.membership,\r\n getCompanyMemberships: state => state.company.memberships,\r\n getCompanySavedSearches: state => state.savedSearches,\r\n getCompanySendEmailAddresses: state => state.sendEmailAddresses,\r\n getCompanyUser: state => state.user,\r\n getCompanyUsers: state => state.company.users.sort(companyUserSort), //(a, b) => alphaSort(b.showContact, a.showContact)),\r\n getCompanyLicenceList: state => state.company.licenceList.sort((a, b) => alphaSort(a.licence.type, b.licence.type)),\r\n getCompanyLicence: state => state.companyLicence,\r\n getLicences: state => state.licences,\r\n getCompanyAssociation: state => state.association,\r\n getCompanyAssociations: state => state.company.associations.sort((a, b) => alphaSort(a.name, b.name)),\r\n getCompanyProjectSample: state => state.projectSample,\r\n getCompanyProjectSamples: state => state.company.projectSamples.sort((a, b) => alphaSort(a.title, b.title)),\r\n getCompanySocialMediaList: state => state.company.socialMediaList.sort((a, b) => alphaSort(a.socialMediaType.name, b.socialMediaType.name)),\r\n getCompanySocialMedia: state => state.socialMedia,\r\n getSocialMediaTypes: state => state.socialMediaTypes,\r\n getUnionAffiliations: state => state.unionAffiliations,\r\n getCompanyLiabilityInsurances: state => state.companyLiabilityInsurances\r\n}\r\n\r\nexport const actions = {\r\n fetchCompany: ({ commit }, id) => {\r\n if (!id) {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_SET_NEW');\r\n resolve();\r\n })\r\n }\r\n\r\n return CompanyService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_SET', response.data);\r\n resolve(response.data);\r\n })\r\n })\r\n },\r\n fetchCompanies: ({ commit }, params) => {\r\n return CompanyService.search(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_SET_ALL', response.data.results)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n fetchAllCompanies: ({ commit }) => {\r\n return CompanyService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_SET_ALL', response.data)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n fetchLookup: ({ commit }) => {\r\n return CompanyService.getLookup().then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_LOOKUP_SET', response.data)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n fetchCompanySearches: ({ commit }) => {\r\n return CompanySearchService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_SEARCHES_SET', response.data)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n fetchCompanyEmailAddresses: ({ commit }, ids) => {\r\n return CompanyService.getUserEmails(ids).then(response => {\r\n return new Promise(resolve => {\r\n commit('COMPANY_SEND_EMAIL_ADDRESSES', response.data);\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n saveCompany: ({ commit }, params) => {\r\n params.data.memberships = state.company.memberships;\r\n params.data.users = state.company.users;\r\n\r\n return CompanyService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_SET', response.data)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n saveCompanySearch: ({ commit }, params) => {\r\n return CompanySearchService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_SEARCHES_ADD', response.data)\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n removeCompanySearch: ({ commit }, id) => {\r\n return CompanySearchService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_SEARCHES_REMOVE', id)\r\n resolve();\r\n });\r\n })\r\n },\r\n sendCompanyEmail: ({ commit }, email) => {\r\n return EmailService.sendCompanyEmail(email).then(response => {\r\n return new Promise(resolve => {\r\n commit('COMPANY_EMAIL_SET', response.data);\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n resetCompany: ({ commit }) => {\r\n commit('COMPANY_SET_NEW');\r\n },\r\n fetchCompanyMembership: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let membership = state.company.memberships.find(p => p.id === id);\r\n\r\n if (membership) {\r\n commit('COMPANY_MEMBERSHIP_SET', membership);\r\n resolve(membership);\r\n }\r\n });\r\n },\r\n saveCompanyMembership: ({ commit }, membership) => {\r\n return new Promise(resolve => {\r\n commit('COMPANY_MEMBERSHIP_SAVE', membership);\r\n resolve()\r\n });\r\n },\r\n resetCompanyMembership: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('COMPANY_MEMBERSHIP_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n removeCompanyMembership: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_MEMBERSHIP_REMOVE', id);\r\n resolve();\r\n });\r\n },\r\n\r\n fetchCompanyUser: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let user = state.company.users.find(p => p.id === id);\r\n\r\n if (user) {\r\n commit('COMPANY_USER_SET', user);\r\n resolve(user);\r\n }\r\n });\r\n },\r\n saveCompanyUser: ({ commit }, user) => {\r\n if (!user.id) {\r\n user.id = uuid();\r\n }\r\n\r\n return new Promise(resolve => {\r\n commit('COMPANY_USER_SAVE', user);\r\n resolve()\r\n });\r\n },\r\n resetCompanyUser: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('COMPANY_USER_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n removeCompanyUser: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_USER_REMOVE', id);\r\n resolve();\r\n });\r\n },\r\n fetchBusinessCategories: ({ commit }) => {\r\n return BusinessCategoryService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_BUSINESS_CATEGORIES_SET', response.data);\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n fetchLabourTypes: ({ commit }) => {\r\n return LabourTypeService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_LABOUR_TYPES_SET', response.data);\r\n resolve(response.data)\r\n })\r\n })\r\n },\r\n fetchLabourOfWorks: ({ commit }) => {\r\n return LabourOfWorkService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_LABOUR_WORKS_SET', response.data);\r\n resolve(response.data)\r\n })\r\n })\r\n },\r\n fetchClassificationOfWork: ({ commit }) => {\r\n return ClassificationOfWorkService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_CLASSIFICATION_WORK_SET', response.data);\r\n resolve(response.data)\r\n })\r\n })\r\n },\r\n updateCompanyUserAcceptITB: ({ commit }, param) => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_USER_ACCEPT_ITB_UPDATE', param);\r\n resolve();\r\n });\r\n },\r\n updateUserCompanyJoinStatus: ({ commit }, param) => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_USER_JOIN_STATUS_UPDATE', param);\r\n resolve();\r\n });\r\n },\r\n updateCompanyUserContact: ({ commit }, param) => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_USER_CONTACT_UPDATE', param);\r\n resolve();\r\n });\r\n },\r\n fetchLicences: ({ commit }) => {\r\n return LicenceService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_LICENCES_SET', response.data);\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n resetCompanyLicence: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('COMPANY_LICENCE_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n fetchCompanyLicence: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let companyLicence = state.company.licenceList.find(p => p.id === id);\r\n\r\n if (companyLicence) {\r\n commit('COMPANY_LICENCE_SET', companyLicence);\r\n resolve(companyLicence);\r\n }\r\n });\r\n },\r\n saveCompanyLicence: ({ commit }, companyLicence) => {\r\n if (!companyLicence.id) {\r\n companyLicence.id = uuid();\r\n }\r\n\r\n return new Promise(resolve => {\r\n commit('COMPANY_LICENCE_SAVE', companyLicence);\r\n resolve()\r\n });\r\n },\r\n removeCompanyLicence: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_LICENCE_REMOVE', id);\r\n resolve();\r\n });\r\n },\r\n saveCompanyAssociation: ({ commit }, association) => {\r\n if (!association.id) {\r\n association.id = uuid();\r\n }\r\n\r\n return new Promise(resolve => {\r\n commit('COMPANY_ASSOCIATION_SAVE', association);\r\n resolve()\r\n });\r\n },\r\n resetCompanyAssociation: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('COMPANY_ASSOCIATION_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n fetchCompanyAssociation: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let association = state.company.associations.find(p => p.id === id);\r\n\r\n if (association) {\r\n commit('COMPANY_ASSOCIATION_SET', association);\r\n resolve(association);\r\n }\r\n });\r\n },\r\n removeCompanyAssociation: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_ASSOCIATION_REMOVE', id);\r\n resolve();\r\n });\r\n },\r\n resetCompanyProjectSample: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('COMPANY_PROJECT_SAMPLE_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n fetchCompanyProjectSample: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let projectSample = state.company.projectSamples.find(p => p.id === id);\r\n\r\n if (projectSample) {\r\n commit('COMPANY_PROJECT_SAMPLE_SET', projectSample);\r\n resolve(projectSample);\r\n }\r\n });\r\n },\r\n saveCompanyProjectSample: ({ commit }, projectSample) => {\r\n if (!projectSample.id) {\r\n projectSample.id = uuid();\r\n }\r\n\r\n return new Promise(resolve => {\r\n commit('COMPANY_PROJECT_SAMPLE_SAVE', projectSample);\r\n resolve()\r\n });\r\n },\r\n removeCompanyProjectSample: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_PROJECT_SAMPLE_REMOVE', id);\r\n resolve();\r\n });\r\n },\r\n fetchSocialMediaTypes: ({ commit }) => {\r\n return SocialMediaTypeService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('SOCIAL_MEDIA_TYPES_SET', response.data);\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n resetCompanySocialMedia: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('COMPANY_SOCIAL_MEDIA_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n fetchCompanySocialMedia: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n let socialMedia = state.company.socialMediaList.find(p => p.id === id);\r\n\r\n if (socialMedia) {\r\n commit('COMPANY_SOCIAL_MEDIA_SET', socialMedia);\r\n resolve(socialMedia);\r\n }\r\n });\r\n },\r\n saveCompanySocialMedia: ({ commit }, socialMedia) => {\r\n if (!socialMedia.id) {\r\n socialMedia.id = uuid();\r\n }\r\n\r\n return new Promise(resolve => {\r\n commit('COMPANY_SOCIAL_MEDIA_SAVE', socialMedia);\r\n resolve()\r\n });\r\n },\r\n removeCompanySocialMedia: ({ commit }, id) => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_SOCIAL_MEDIA_REMOVE', id);\r\n resolve();\r\n });\r\n },\r\n fetchUnionAffiliations: ({ commit }) => {\r\n return UnionAffiliationService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_UNION_AFFILIATION_SET', response.data);\r\n resolve(response.data)\r\n })\r\n })\r\n },\r\n fetchCompanyLiabilityInsurances: ({ commit }) => {\r\n return CompanyLiabilityInsuranceService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('COMPANY_LIABILITY_INSURANCE_SET', response.data);\r\n resolve(response.data)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport const mutations = {\r\n 'COMPANY_SET'(state, company) {\r\n state.company = company\r\n },\r\n 'COMPANY_SET_ALL'(state, companies) {\r\n state.companies = companies\r\n },\r\n 'COMPANY_LOOKUP_SET'(state, companyLookup) {\r\n state.companyLookup = companyLookup\r\n },\r\n 'COMPANY_SET_NEW'(state) {\r\n state.company = cloneDeep(emptyCompany);\r\n state.company.id = uuid();\r\n },\r\n 'COMPANY_MEMBERSHIP_SET_NEW'(state) {\r\n state.membership = { id: uuid(), expiryDate: null, roleId: null, zoneId: null }\r\n },\r\n 'COMPANY_MEMBERSHIP_SET'(state, membership) {\r\n state.membership = membership\r\n },\r\n 'COMPANY_MEMBERSHIP_SAVE'(state, membership) {\r\n let isExist = state.company.memberships.find(n => n.id === membership.id);\r\n\r\n if (isExist) {\r\n var pos = state.company.memberships.indexOf(isExist);\r\n state.company.memberships.splice(pos, 1, membership);\r\n }\r\n else {\r\n state.company.memberships.push(membership);\r\n }\r\n },\r\n 'COMPANY_MEMBERSHIP_REMOVE'(state, id) {\r\n let membership = state.company.memberships.find(n => n.id === id);\r\n\r\n if (membership) {\r\n var pos = state.company.memberships.indexOf(membership);\r\n state.company.memberships.splice(pos, 1);\r\n }\r\n },\r\n 'COMPANY_SEARCHES_ADD'(state, search) {\r\n state.savedSearches.push(search)\r\n },\r\n 'COMPANY_SEARCHES_REMOVE'(state, id) {\r\n state.savedSearches = [...state.savedSearches.filter(i => i.id !== id)];\r\n },\r\n 'COMPANY_SEARCHES_SET'(state, searches) {\r\n state.savedSearches = searches\r\n },\r\n 'COMPANY_SEND_EMAIL_ADDRESSES'(state, emailAddresses) {\r\n state.sendEmailAddresses = emailAddresses;\r\n },\r\n 'COMPANY_EMAIL_SET'(state, email) {\r\n state.sentEmail = email;\r\n },\r\n 'COMPANY_USER_SET_NEW'(state) {\r\n state.user = { user: { firstName: null, lastName: null, email: null } }\r\n },\r\n 'COMPANY_USER_SET'(state, user) {\r\n state.user = user\r\n },\r\n 'COMPANY_USER_SAVE'(state, user) {\r\n let isExist = state.company.users.find(n => n.id === user.id);\r\n\r\n if (isExist) {\r\n var pos = state.company.users.indexOf(isExist);\r\n state.company.users.splice(pos, 1, user);\r\n }\r\n else {\r\n state.company.users.push(user);\r\n }\r\n },\r\n 'COMPANY_USER_REMOVE'(state, id) {\r\n let user = state.company.users.find(n => n.id === id);\r\n\r\n if (user) {\r\n var pos = state.company.users.indexOf(user);\r\n state.company.users.splice(pos, 1);\r\n }\r\n },\r\n 'COMPANY_BUSINESS_CATEGORIES_SET'(state, categories) {\r\n state.businessCategories = categories;\r\n },\r\n 'COMPANY_LABOUR_TYPES_SET'(state, types) {\r\n state.labourTypes = types;\r\n },\r\n 'COMPANY_LABOUR_WORKS_SET'(state, works) {\r\n state.labourOfWork = works;\r\n },\r\n 'COMPANY_CLASSIFICATION_WORK_SET'(state, classifications) {\r\n state.classificationOfWork = classifications;\r\n },\r\n 'COMPANY_USER_ACCEPT_ITB_UPDATE'(state, param) {\r\n let { id, shown } = param;\r\n let user = state.company.users.find(u => u.id === id);\r\n\r\n if (user) {\r\n user.acceptITBInvite = shown;\r\n state.company.users = [...state.company.users.filter(i => i.id !== user.id), user];\r\n }\r\n },\r\n 'COMPANY_USER_JOIN_STATUS_UPDATE'(state, param) {\r\n let { id, status } = param;\r\n let user = state.company.users.find(u => u.id === id);\r\n\r\n if (user) {\r\n user.acceptanceStatus = status;\r\n state.company.users = [...state.company.users.filter(i => i.id !== user.id), user];\r\n }\r\n },\r\n 'COMPANY_USER_CONTACT_UPDATE'(state, param) {\r\n let { id, shown } = param;\r\n let user = state.company.users.find(u => u.id === id);\r\n\r\n if (user) {\r\n user.showContact = shown;\r\n\r\n var pos = state.company.users.indexOf(user);\r\n state.company.users.splice(pos, 1, user);\r\n }\r\n },\r\n 'COMPANY_LICENCES_SET'(state, licences) {\r\n state.licences = licences;\r\n },\r\n 'COMPANY_LICENCE_SET_NEW'(state) {\r\n state.companyLicence = {\r\n expirationDate: undefined,\r\n issuedBy: '',\r\n licence: {}\r\n };\r\n },\r\n 'COMPANY_LICENCE_SET'(state, companyLicence) {\r\n state.companyLicence = companyLicence\r\n },\r\n 'COMPANY_LICENCE_SAVE'(state, companyLicence) {\r\n let isExist = state.company.licenceList.find(n => n.id === companyLicence.id);\r\n\r\n if (isExist) {\r\n var pos = state.company.licenceList.indexOf(isExist);\r\n state.company.licenceList.splice(pos, 1, companyLicence);\r\n }\r\n else {\r\n state.company.licenceList.push(companyLicence);\r\n }\r\n },\r\n 'COMPANY_LICENCE_REMOVE'(state, id) {\r\n let companyLicence = state.company.licenceList.find(n => n.id === id);\r\n\r\n if (companyLicence) {\r\n var pos = state.company.licenceList.indexOf(companyLicence);\r\n state.company.licenceList.splice(pos, 1);\r\n }\r\n },\r\n 'COMPANY_ASSOCIATION_SAVE'(state, association) {\r\n let isExist = state.company.associations.find(n => n.id === association.id);\r\n\r\n if (isExist) {\r\n var pos = state.company.associations.indexOf(isExist);\r\n state.company.associations.splice(pos, 1, association);\r\n }\r\n else {\r\n state.company.associations.push(association);\r\n }\r\n },\r\n 'COMPANY_ASSOCIATION_SET_NEW'(state) {\r\n state.association = {\r\n name: null,\r\n expirationDate: null\r\n };\r\n },\r\n 'COMPANY_ASSOCIATION_SET'(state, association) {\r\n state.association = association\r\n },\r\n 'COMPANY_ASSOCIATION_REMOVE'(state, id) {\r\n let association = state.company.associations.find(n => n.id === id);\r\n\r\n if (association) {\r\n var pos = state.company.associations.indexOf(association);\r\n state.company.associations.splice(pos, 1);\r\n }\r\n },\r\n 'COMPANY_PROJECT_SAMPLE_SET_NEW'(state) {\r\n state.projectSample = {\r\n title: null,\r\n description: null,\r\n image: null,\r\n cost: null,\r\n awarded: false\r\n };\r\n },\r\n 'COMPANY_PROJECT_SAMPLE_SET'(state, projectSample) {\r\n state.projectSample = projectSample\r\n },\r\n 'COMPANY_PROJECT_SAMPLE_SAVE'(state, projectSample) {\r\n let isExist = state.company.projectSamples.find(n => n.id === projectSample.id);\r\n\r\n if (isExist) {\r\n var pos = state.company.projectSamples.indexOf(isExist);\r\n state.company.projectSamples.splice(pos, 1, projectSample);\r\n }\r\n else {\r\n state.company.projectSamples.push(projectSample);\r\n }\r\n },\r\n 'COMPANY_PROJECT_SAMPLE_REMOVE'(state, id) {\r\n let projectSample = state.company.projectSamples.find(n => n.id === id);\r\n\r\n if (projectSample) {\r\n var pos = state.company.projectSamples.indexOf(projectSample);\r\n state.company.projectSamples.splice(pos, 1);\r\n }\r\n },\r\n 'SOCIAL_MEDIA_TYPES_SET'(state, socialMediaTypes) {\r\n state.socialMediaTypes = socialMediaTypes;\r\n },\r\n 'COMPANY_SOCIAL_MEDIA_SET_NEW'(state) {\r\n state.socialMedia = {\r\n companySocialMediaTypeUrl: '',\r\n socialMediaType: {}\r\n };\r\n },\r\n 'COMPANY_SOCIAL_MEDIA_SET'(state, socialMedia) {\r\n state.socialMedia = socialMedia\r\n },\r\n 'COMPANY_SOCIAL_MEDIA_SAVE'(state, socialMedia) {\r\n let isExist = state.company.socialMediaList.find(n => n.id === socialMedia.id);\r\n\r\n if (isExist) {\r\n var pos = state.company.socialMediaList.indexOf(isExist);\r\n state.company.socialMediaList.splice(pos, 1, socialMedia);\r\n }\r\n else {\r\n state.company.socialMediaList.push(socialMedia);\r\n }\r\n },\r\n 'COMPANY_SOCIAL_MEDIA_REMOVE'(state, id) {\r\n let socialMedia = state.company.socialMediaList.find(n => n.id === id);\r\n\r\n if (socialMedia) {\r\n var pos = state.company.socialMediaList.indexOf(socialMedia);\r\n state.company.socialMediaList.splice(pos, 1);\r\n }\r\n },\r\n 'COMPANY_UNION_AFFILIATION_SET'(state, unionAffiliations) {\r\n state.unionAffiliations = unionAffiliations;\r\n },\r\n 'COMPANY_LIABILITY_INSURANCE_SET'(state, companyLiabilityInsurances) {\r\n state.companyLiabilityInsurances = companyLiabilityInsurances;\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { sortOrder } from \"@/utils/sort\";\r\nimport { AddressBookService } from \"@/services/\"\r\n\r\nconst state = {\r\n addressBook: {\r\n name: null,\r\n contacts: []\r\n },\r\n addressBooks: [],\r\n}\r\n\r\nexport const getters = {\r\n getAddressBook: state => state.addressBook,\r\n getAddressBooks: state => state.addressBooks.sort(sortOrder),\r\n}\r\n\r\nexport const actions = {\r\n fetchAddressBook: ({ commit }, id) => {\r\n return AddressBookService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ADDRESS_BOOK_SET', response.data)\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchAddressBooks: ({ commit }) => {\r\n return AddressBookService.getForLoggedInUser().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ADDRESS_BOOKS_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveAddressBook: ({ commit }, params) => {\r\n return AddressBookService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ADDRESS_BOOKS_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeAddressBook: ({ commit }, id) => {\r\n return AddressBookService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ADDRESS_BOOKS_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetAddressBook: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_ADDRESS_BOOK_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_ADDRESS_BOOK_SET'(state, addressBook) {\r\n state.addressBook = { ...addressBook, contacts: [] };\r\n },\r\n 'CONFIGURATION_ADDRESS_BOOK_SET_NEW'(state) {\r\n state.addressBook = { name: null, contacts: [] };\r\n },\r\n 'CONFIGURATION_ADDRESS_BOOKS_SET'(state, addressBooks) {\r\n state.addressBooks = addressBooks\r\n },\r\n 'CONFIGURATION_ADDRESS_BOOKS_SAVE'(state, addressBook) {\r\n let isExist = state.addressBooks.find(n => n.id === addressBook.id);\r\n\r\n if (isExist) {\r\n var pos = state.addressBooks.indexOf(isExist);\r\n state.addressBooks.splice(pos, 1, addressBook);\r\n }\r\n else {\r\n state.addressBooks.push(addressBook);\r\n }\r\n },\r\n 'CONFIGURATION_ADDRESS_BOOKS_REMOVE'(state, id) {\r\n let addressBook = state.addressBooks.find(n => n.id === id);\r\n\r\n if (addressBook) {\r\n var pos = state.addressBooks.indexOf(addressBook);\r\n state.addressBooks.splice(pos, 1);\r\n }\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { AdvertisementGroupService, AdvertisementService } from \"@/services/\";\r\nimport { alpha as alphaSort } from \"@/utils/sort\";\r\n\r\nconst state = {\r\n advertisement: null,\r\n advertisements: [],\r\n advertisementGroups: [],\r\n isAdvertisementsEnabled: false\r\n}\r\n\r\nexport const getters = {\r\n getAdvertisment: state => state.advertisement,\r\n getAdvertisments: state => state.advertisements.sort((a,b) => alphaSort(a.name, b.name)),\r\n getAdvertismentGroups: state => state.advertisementGroups.sort((a,b) => alphaSort(a.name, b.name)),\r\n getIsAdvertisementsEnabled: state => state.isAdvertisementsEnabled\r\n}\r\n\r\nexport const actions = {\r\n fetchAdvertisement: ({ commit }, id) => {\r\n return AdvertisementService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ADVERTISMENT_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchAdvertisements: ({ commit }) => {\r\n AdvertisementGroupService.getListings().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ADVERTISMENTS_SET', response.data);\r\n !response.data.length || commit('CONFIGURATION_ADVERTISMENTS_ENABLED_SET', response.data[0].isActive);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchAdvertisementGroups: ({ commit }) => {\r\n return AdvertisementGroupService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ADVERTISMENT_GROUPS_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n toggleAdvertisementsEnabled: ({ commit }, direction) => {\r\n return AdvertisementGroupService.toggle(direction).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ADVERTISMENTS_ENABLED_SET', direction);\r\n resolve(direction);\r\n })\r\n });\r\n },\r\n saveAdvertisement: ({ commit, dispatch }, advertisement) => {\r\n return AdvertisementService.save(advertisement).then(response => {\r\n dispatch('fetchAdvertisementGroups');\r\n\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ADVERTISMENTS_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeAdvertisement: ({ commit, dispatch }, params) => {\r\n return AdvertisementService.delete(params.id, params.code).then(() => {\r\n dispatch('fetchAdvertisementGroups');\r\n dispatch('fetchAdvertisements');\r\n\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ADVERTISMENTS_REMOVE', params);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetAdvertisement: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_ADVERTISMENT_SET_NEW');\r\n resolve();\r\n });\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_ADVERTISMENT_SET'(state, advertisement) {\r\n state.advertisement = advertisement\r\n },\r\n 'CONFIGURATION_ADVERTISMENTS_ENABLED_SET' (state, isEnabled) {\r\n state.isAdvertisementsEnabled = isEnabled;\r\n },\r\n 'CONFIGURATION_ADVERTISMENTS_SET'(state, advertisements) {\r\n state.advertisements = advertisements;\r\n },\r\n 'CONFIGURATION_ADVERTISMENT_GROUPS_SET' (state, groups) {\r\n state.advertisementGroups = groups;\r\n },\r\n 'CONFIGURATION_ADVERTISMENTS_SAVE' (state, advertisement) {\r\n state.advertisements.forEach(group => {\r\n let inGroup = advertisement.advertisementGroups.find(g => group.id === g);\r\n group.advertisements = [...group.advertisements.filter(g => g.id !== advertisement.id)];\r\n if (inGroup) group.advertisements.push(advertisement);\r\n })\r\n },\r\n 'CONFIGURATION_ADVERTISMENTS_REMOVE'(state, { code, id }) {\r\n let group = state.advertisements.find(g => g.code === code);\r\n if (group) {\r\n group.advertisements = [...group.advertisements.filter(i => i.id !== id)];\r\n }\r\n },\r\n 'CONFIGURATION_ADVERTISMENT_SET_NEW' (state) {\r\n state.advertisement = { advertisementGroups: [], zones: [] };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { sortOrder } from \"@/utils/sort\";\r\nimport { ContactTypeService } from \"@/services/\"\r\n\r\nconst state = {\r\n contactType: null,\r\n contactTypes: [],\r\n}\r\n\r\nexport const getters = {\r\n getContactType: state => state.contactType,\r\n getContactTypes: state => state.contactTypes.sort(sortOrder),\r\n}\r\n\r\nexport const actions = {\r\n fetchContactType: ({ commit }, id) => {\r\n return ContactTypeService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_CONTACT_TYPE_SET', response.data)\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchContactTypes: ({ commit }) => {\r\n return ContactTypeService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_CONTACT_TYPES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveContactType: ({ commit }, params) => {\r\n return ContactTypeService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_CONTACT_TYPES_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeContactType: ({ commit }, id) => {\r\n return ContactTypeService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_CONTACT_TYPES_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetContactType: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_CONTACT_TYPE_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_CONTACT_TYPE_SET'(state, contactType) {\r\n state.contactType = contactType;\r\n },\r\n 'CONFIGURATION_CONTACT_TYPE_SET_NEW' (state) {\r\n state.contactType = { name: null, sortOrder: 0 };\r\n },\r\n 'CONFIGURATION_CONTACT_TYPES_SET'(state, contactTypes) {\r\n state.contactTypes = contactTypes\r\n },\r\n 'CONFIGURATION_CONTACT_TYPES_SAVE' (state, contactType) {\r\n let isExist = state.contactTypes.find(n => n.id === contactType.id);\r\n\r\n if (isExist) {\r\n var pos = state.contactTypes.indexOf(isExist);\r\n state.contactTypes.splice(pos, 1, contactType);\r\n }\r\n else {\r\n state.contactTypes.push(contactType);\r\n }\r\n },\r\n 'CONFIGURATION_CONTACT_TYPES_REMOVE'(state, id) {\r\n let contactType = state.contactTypes.find(n => n.id === id);\r\n\r\n if (contactType) {\r\n var pos = state.contactTypes.indexOf(contactType);\r\n state.contactTypes.splice(pos, 1);\r\n }\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { sortOrder } from \"@/utils/sort\";\r\nimport { BidInvitationListService } from \"@/services/\"\r\n\r\nconst state = {\r\n lists: [],\r\n}\r\n\r\nexport const getters = {\r\n getBidInvitationListsForLoggedInUser: state => state.lists.sort(sortOrder),\r\n}\r\n\r\nexport const actions = {\r\n fetchBidInvitationListsForLoggedInUser: ({ commit }) => {\r\n return BidInvitationListService.getForLoggedInUser().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_BIDINVITATION_LISTS_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_BIDINVITATION_LISTS_SET'(state, lists) {\r\n state.lists = lists\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { sortOrder } from \"@/utils/sort\";\r\nimport { BidInvitationSelectionTypeService } from \"@/services/\"\r\n\r\nconst state = {\r\n selectionTypes: [],\r\n}\r\n\r\nexport const getters = {\r\n getBidInvitationSelectionTypes: state => state.selectionTypes.sort(sortOrder),\r\n}\r\n\r\nexport const actions = {\r\n fetchBidInvitationSelectionTypes: ({ commit }) => {\r\n return BidInvitationSelectionTypeService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_BIDINVITATION_SELECTIONTYPES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_BIDINVITATION_SELECTIONTYPES_SET'(state, selectionTypes) {\r\n state.selectionTypes = selectionTypes\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { sortOrder } from \"@/utils/sort\";\r\nimport { BidInvitationStatusTypeService } from \"@/services/\"\r\n\r\nconst state = {\r\n statusTypes: [],\r\n}\r\n\r\nexport const getters = {\r\n getBidInvitationStatusTypes: state => state.statusTypes.sort(sortOrder),\r\n}\r\n\r\nexport const actions = {\r\n fetchBidInvitationStatusTypes: ({ commit }) => {\r\n return BidInvitationStatusTypeService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_BIDINVITATION_STATUSTYPES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_BIDINVITATION_STATUSTYPES_SET'(state, statusTypes) {\r\n state.statusTypes = statusTypes\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { date } from \"@/utils/sort\";\r\nimport { NewsService } from \"@/services/\";\r\n\r\nconst state = {\r\n news: null,\r\n newsList: [],\r\n isNewsEnabled: false\r\n}\r\n\r\nconst _reduceArrayUniqueItemCountFn = function (acc, curr) { acc[curr] ? acc[curr]++ : acc[curr] = 1; return acc; }\r\n\r\nexport const getters = {\r\n getNews: state => state.news,\r\n getNewsList: state => state.newsList.sort((a, b) => date(b.createdOn, a.createdOn)),\r\n getNewsListZoneEntriesCount: state => state.newsList.flatMap(r => r.zoneIds).reduce(_reduceArrayUniqueItemCountFn, {}),\r\n getIsNewsEnabled: state => state.isNewsEnabled\r\n}\r\n\r\nexport const actions = {\r\n fetchNews: ({ commit }, id) => {\r\n return NewsService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_NEWS_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchNewsList: ({ commit }) => {\r\n return NewsService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_NEWS_LIST_SET', response.data);\r\n !response.data.length || commit('CONFIGURATION_NEWS_ENABLED_SET', response.data[0].isActive);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n toggleNewsEnabled: ({ commit }, direction) => {\r\n return NewsService.toggle(direction).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_NEWS_ENABLED_SET', direction);\r\n resolve(direction);\r\n })\r\n });\r\n },\r\n saveNews: ({ commit }, params) => {\r\n return NewsService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_NEWS_SAVE', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n removeNews: ({ commit }, id) => {\r\n return NewsService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_NEWS_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n updateNews: ({ commit }, news) => {\r\n return NewsService.update(news).then(response => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_NEWS_SET', response.data);\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n resetNews: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_NEWS_SET_NEW');\r\n resolve();\r\n });\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_NEWS_SET'(state, news) {\r\n state.news = news\r\n },\r\n 'CONFIGURATION_NEWS_ENABLED_SET' (state, isEnabled) {\r\n state.isNewsEnabled = isEnabled;\r\n },\r\n 'CONFIGURATION_NEWS_LIST_SET'(state, newsList) {\r\n state.newsList = newsList\r\n },\r\n 'CONFIGURATION_NEWS_SAVE' (state, news) {\r\n let isExist = state.newsList.find(n => n.id === news.id);\r\n\r\n if (isExist) {\r\n var pos = state.newsList.indexOf(isExist);\r\n state.newsList.splice(pos, 1, news);\r\n }\r\n else {\r\n state.newsList.push(news);\r\n }\r\n },\r\n 'CONFIGURATION_NEWS_REMOVE'(state, id) {\r\n let news = state.newsList.find(n => n.id === id);\r\n\r\n if (news) {\r\n var pos = state.newsList.indexOf(news);\r\n state.newsList.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_NEWS_SET_NEW' (state) {\r\n state.news = { title: null, summary: null, link: null, createdOn: null, zoneIds: [] };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { OwnerService } from \"@/services/\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\nimport { alpha as alphSort } from \"@/utils/sort\";\r\n\r\nconst defaultOwner = {\r\n name: null,\r\n phone: null,\r\n address: {\r\n street: null,\r\n city: null,\r\n postalCode: null,\r\n provinceId: null\r\n }\r\n};\r\n\r\nconst state = {\r\n owner: null,\r\n owners: []\r\n}\r\n\r\nexport const getters = {\r\n getOwner: state => state.owner,\r\n getOwners: state => state.owners.sort((a, b) => alphSort(a.name, b.name))\r\n}\r\n\r\nexport const actions = {\r\n fetchOwner: ({ commit }, id) => {\r\n return OwnerService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit ('CONFIGURATION_OWNER_SET', response.data)\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchOwners: ({ commit }) => {\r\n return OwnerService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_OWNERS_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchOwnersByProject: ({ commit }, projectId) => {\r\n return OwnerService.GetAllByProjectId(projectId).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_OWNERS_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveOwner: ({ commit }, params) => {\r\n return OwnerService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_OWNERS_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeOwner: ({ commit }, id) => {\r\n return OwnerService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_OWNERS_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetOwner: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_OWNERS_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_OWNER_SET'(state, owner) {\r\n state.owner = owner;\r\n state.owner.address = state.owner.address || { ...defaultOwner.address };\r\n },\r\n 'CONFIGURATION_OWNERS_SET'(state, owners) {\r\n state.owners = owners\r\n },\r\n 'CONFIGURATION_OWNERS_SAVE' (state, owner) {\r\n let isExist = state.owners.find(n => n.id === owner.id);\r\n\r\n if (isExist) {\r\n var pos = state.owners.indexOf(isExist);\r\n state.owners.splice(pos, 1, owner);\r\n }\r\n else {\r\n state.owners.push(owner);\r\n }\r\n },\r\n 'CONFIGURATION_OWNERS_REMOVE'(state, id) {\r\n let owner = state.owners.find(n => n.id === id);\r\n\r\n if (owner) {\r\n var pos = state.owners.indexOf(owner);\r\n state.owners.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_OWNERS_SET_NEW' (state) {\r\n state.owner = cloneDeep(defaultOwner);\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { sortOrder } from \"@/utils/sort\";\r\nimport { OwnerTypeService } from \"@/services/\";\r\n\r\nconst state = {\r\n ownerType: null,\r\n ownerTypes: []\r\n}\r\n\r\nexport const getters = {\r\n getOwnerType: state => state.ownerType,\r\n getOwnerTypes: state => state.ownerTypes.sort(sortOrder)\r\n}\r\n\r\nexport const actions = {\r\n fetchOwnerType: ({ commit }, id) => {\r\n return OwnerTypeService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_OWNER_TYPE_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchOwnerTypes: ({ commit }) => {\r\n return OwnerTypeService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_OWNER_TYPES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveOwnerType: ({ commit }, params) => {\r\n return OwnerTypeService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_OWNER_TYPES_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeOwnerType: ({ commit }, id) => {\r\n return OwnerTypeService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_OWNER_TYPES_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetOwnerType: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_OWNER_TYPE_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_OWNER_TYPE_SET'(state, ownerType) {\r\n state.ownerType = ownerType\r\n },\r\n 'CONFIGURATION_OWNER_TYPES_SET'(state, ownerTypes) {\r\n state.ownerTypes = ownerTypes\r\n },\r\n 'CONFIGURATION_OWNER_TYPES_SAVE' (state, ownerType) {\r\n let isExist = state.ownerTypes.find(n => n.id === ownerType.id);\r\n\r\n if (isExist) {\r\n var pos = state.ownerTypes.indexOf(isExist);\r\n state.ownerTypes.splice(pos, 1, ownerType);\r\n }\r\n else {\r\n state.ownerTypes.push(ownerType);\r\n }\r\n },\r\n 'CONFIGURATION_OWNER_TYPES_REMOVE'(state, id) {\r\n let ownerType = state.ownerTypes.find(n => n.id === id);\r\n\r\n if (ownerType) {\r\n var pos = state.ownerTypes.indexOf(ownerType);\r\n state.ownerTypes.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_OWNER_TYPE_SET_NEW' (state) {\r\n state.ownerType = { name: null, sortOrder: 0 };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { sortOrder } from \"@/utils/sort\";\r\nimport { ParticipantTypeService } from \"@/services/\"\r\n\r\nconst state = {\r\n participantType: null,\r\n participantTypes: []\r\n}\r\n\r\nconst isBidRequestOptionSort = (a, b) => {\r\n if (a.sortOrder < b.sortOrder) return -1;\r\n if (a.sortOrder > b.sortOrder) return 1;\r\n\r\n if (a.name > b.name) return 1;\r\n if (a.name < b.name) return -1;\r\n};\r\n\r\nexport const getters = {\r\n getParticipantType: state => state.participantType,\r\n getParticipantTypes: state => state.participantTypes.sort(sortOrder),\r\n getParticipantTypesBidRequestionOptions: state => state.participantTypes.filter(i => i.isBidRequestOption).sort(isBidRequestOptionSort)\r\n}\r\n\r\nexport const actions = {\r\n fetchParticipantType: ({ commit }, id) => {\r\n return ParticipantTypeService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_PARTICIPANT_TYPE_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchParticipantTypes: ({ commit }) => {\r\n return ParticipantTypeService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_PARTICIPANT_TYPES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveParticipantType: ({ commit }, params) => {\r\n return ParticipantTypeService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_PARTICIPANT_TYPES_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeParticipantType: ({ commit }, id) => {\r\n return ParticipantTypeService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_PARTICIPANT_TYPES_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetParticipantType: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_PARTICIPANT_TYPE_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_PARTICIPANT_TYPE_SET'(state, participantType) {\r\n state.participantType = participantType\r\n },\r\n 'CONFIGURATION_PARTICIPANT_TYPES_SET'(state, participantTypes) {\r\n state.participantTypes = participantTypes\r\n },\r\n 'CONFIGURATION_PARTICIPANT_TYPES_SAVE' (state, participantType) {\r\n let isExist = state.participantTypes.find(n => n.id === participantType.id);\r\n\r\n if (isExist) {\r\n var pos = state.participantTypes.indexOf(isExist);\r\n state.participantTypes.splice(pos, 1, participantType);\r\n }\r\n else {\r\n state.participantTypes.push(participantType);\r\n }\r\n },\r\n 'CONFIGURATION_PARTICIPANT_TYPES_REMOVE'(state, id) {\r\n let participantType = state.participantTypes.find(n => n.id === id);\r\n\r\n if (participantType) {\r\n var pos = state.participantTypes.indexOf(participantType);\r\n state.participantTypes.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_PARTICIPANT_TYPE_SET_NEW' (state) {\r\n state.participantType = { name: null, sortOrder: 0 };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { sortOrder } from \"@/utils/sort\";\r\nimport { ProcurementTypeService } from \"@/services/\";\r\n\r\nconst state = {\r\n procurementType: null,\r\n procurementTypes: []\r\n}\r\n\r\nexport const getters = {\r\n getProcurementType: state => state.procurementType,\r\n getProcurementTypes: state => state.procurementTypes.sort(sortOrder)\r\n}\r\n\r\nexport const actions = {\r\n fetchProcurementType: ({ commit }, id) => {\r\n return ProcurementTypeService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_PROCUREMENT_TYPE_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchProcurementTypes: ({ commit }) => {\r\n return ProcurementTypeService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_PROCUREMENT_TYPES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveProcurementType: ({ commit }, params) => {\r\n return ProcurementTypeService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_PROCUREMENT_TYPE_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeProcurementType: ({ commit }, id) => {\r\n return ProcurementTypeService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_PROCUREMENT_TYPE_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetProcurementType: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_PROCUREMENT_TYPE_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_PROCUREMENT_TYPE_SET'(state, procurementType) {\r\n state.procurementType = procurementType\r\n },\r\n 'CONFIGURATION_PROCUREMENT_TYPES_SET'(state, procurementTypes) {\r\n state.procurementTypes = procurementTypes\r\n },\r\n 'CONFIGURATION_PROCUREMENT_TYPE_SAVE' (state, procurementType) {\r\n let isExist = state.procurementTypes.find(n => n.id === procurementType.id);\r\n\r\n if (isExist) {\r\n var pos = state.procurementTypes.indexOf(isExist);\r\n state.procurementTypes.splice(pos, 1, procurementType);\r\n }\r\n else {\r\n state.procurementTypes.push(procurementType);\r\n }\r\n },\r\n 'CONFIGURATION_PROCUREMENT_TYPE_REMOVE'(state, id) {\r\n let procurementType = state.procurementTypes.find(n => n.id === id);\r\n\r\n if (procurementType) {\r\n var pos = state.procurementTypes.indexOf(procurementType);\r\n state.procurementTypes.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_PROCUREMENT_TYPE_SET_NEW' (state) {\r\n state.procurementType = { name: null, sortOrder: 0 };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { alpha as alphaSort } from \"@/utils/sort\";\r\nimport { RoleService } from \"@/services/\"\r\n\r\nconst state = {\r\n role: null,\r\n roles: []\r\n}\r\n\r\nexport const getters = {\r\n getRole: state => state.role,\r\n getRoles: state => state.roles.sort((a,b) => alphaSort(a.name, b.name)),\r\n getMembershipRoles: state => state.roles.filter(role => role.isMembershipType)\r\n}\r\n\r\nexport const actions = {\r\n fetchRole: ({ commit }, id) => {\r\n return RoleService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ROLE_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchRoles: ({ commit }) => {\r\n return RoleService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ROLES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveRole: ({ commit }, params) => {\r\n return RoleService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ROLES_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeRole: ({ commit }, id) => {\r\n return RoleService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ROLES_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetRole: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_ROLE_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_ROLE_SET'(state, role) {\r\n state.role = role\r\n state.role.permissionIds = state.role.permissionIds || [];\r\n },\r\n 'CONFIGURATION_ROLES_SET'(state, roles) {\r\n state.roles = roles\r\n },\r\n 'CONFIGURATION_ROLES_SAVE' (state, role) {\r\n let isExist = state.roles.find(n => n.id === role.id);\r\n\r\n if (isExist) {\r\n var pos = state.roles.indexOf(isExist);\r\n state.roles.splice(pos, 1, role);\r\n }\r\n else {\r\n state.roles.push(role);\r\n }\r\n },\r\n 'CONFIGURATION_ROLES_REMOVE'(state, id) {\r\n let role = state.roles.find(n => n.id === id);\r\n\r\n if (role) {\r\n var pos = state.roles.indexOf(role);\r\n state.roles.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_ROLE_SET_NEW' (state) {\r\n state.role = { name: null, isMembershipType: false, permissionIds: [] };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { ServiceRegionService } from \"@/services/\"\r\nimport { alpha as alphaSort } from \"@/utils/sort\";\r\n\r\nconst state = {\r\n serviceRegion: null,\r\n serviceRegions: []\r\n}\r\n\r\nexport const getters = {\r\n getServiceRegion: state => state.serviceRegion,\r\n getServiceRegions: state => state.serviceRegions.sort((a, b) => alphaSort(a.name,b.name))\r\n}\r\n\r\nexport const actions = {\r\n fetchServiceRegion: ({ commit }, id) => {\r\n return ServiceRegionService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_SERVICEREGION_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchServiceRegions: ({ commit }) => {\r\n return ServiceRegionService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_SERVICEREGIONS_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveServiceRegion: ({ commit }, params) => {\r\n return ServiceRegionService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_SERVICEREGIONS_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeServiceRegion: ({ commit }, id) => {\r\n return ServiceRegionService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_SERVICEREGIONS_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetServiceRegion: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_SERVICEREGION_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_SERVICEREGION_SET'(state, serviceRegion) {\r\n state.serviceRegion = serviceRegion\r\n },\r\n 'CONFIGURATION_SERVICEREGIONS_SET'(state, serviceRegions) {\r\n state.serviceRegions = serviceRegions\r\n },\r\n 'CONFIGURATION_SERVICEREGIONS_SAVE'(state, serviceRegion) {\r\n state.serviceRegions = [...state.serviceRegions.filter(i => i.id !== serviceRegion.id), serviceRegion];\r\n },\r\n 'CONFIGURATION_SERVICEREGIONS_REMOVE'(state, id) {\r\n let serviceRegion = state.serviceRegions.find(n => n.id === id);\r\n\r\n if (serviceRegion) {\r\n var pos = state.serviceRegions.indexOf(serviceRegion);\r\n state.serviceRegions.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_SERVICEREGION_SET_NEW' (state) {\r\n state.serviceRegion = { name: null };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { sortOrder } from \"@/utils/sort\";\r\nimport { TenderStageService } from \"@/services/\";\r\n\r\nconst state = {\r\n tenderStage: null,\r\n tenderStages: []\r\n}\r\n\r\nexport const getters = {\r\n getTenderStage: state => state.tenderStage,\r\n getTenderStages: state => state.tenderStages.sort(sortOrder)\r\n}\r\n\r\nexport const actions = {\r\n fetchTenderStage: ({ commit }, id) => {\r\n return TenderStageService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TENDER_STAGE_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchTenderStages: ({ commit }) => {\r\n return TenderStageService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TENDER_STAGES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveTenderStage: ({ commit }, params) => {\r\n return TenderStageService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TENDER_STAGES_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeTenderStage: ({ commit }, id) => {\r\n return TenderStageService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TENDER_STAGES_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetTenderStage: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_TENDER_STAGE_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_TENDER_STAGE_SET'(state, tenderStage) {\r\n state.tenderStage = tenderStage\r\n },\r\n 'CONFIGURATION_TENDER_STAGES_SET'(state, tenderStages) {\r\n state.tenderStages = tenderStages\r\n },\r\n 'CONFIGURATION_TENDER_STAGES_SAVE' (state, tenderStage) {\r\n let isExist = state.tenderStages.find(n => n.id === tenderStage.id);\r\n\r\n if (isExist) {\r\n var pos = state.tenderStages.indexOf(isExist);\r\n state.tenderStages.splice(pos, 1, tenderStage);\r\n }\r\n else {\r\n state.tenderStages.push(tenderStage);\r\n }\r\n },\r\n 'CONFIGURATION_TENDER_STAGES_REMOVE'(state, id) {\r\n let tenderStage = state.tenderStages.find(n => n.id === id);\r\n\r\n if (tenderStage) {\r\n var pos = state.tenderStages.indexOf(tenderStage);\r\n state.tenderStages.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_TENDER_STAGE_SET_NEW' (state) {\r\n state.tenderStage = { name: null, code: null, sortOrder: 0 };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { TimeZoneService } from \"@/services/\"\r\n\r\nconst state = {\r\n timezone: null,\r\n timezones: []\r\n}\r\n\r\nexport const getters = {\r\n getTimeZone: state => state.timezone,\r\n getTimeZones: state => state.timezones.sort((a, b) => { return a.name < b.name ? -1 : a.name > b.name ? 1 : 0 })\r\n}\r\n\r\nexport const actions = {\r\n fetchTimeZone: ({ commit }, id) => {\r\n return TimeZoneService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TIME_ZONE_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchTimeZones: ({ commit }) => {\r\n return TimeZoneService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TIME_ZONES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveTimeZone: ({ commit }, params) => {\r\n return TimeZoneService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TIME_ZONES_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeTimeZone: ({ commit }, id) => {\r\n return TimeZoneService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TIME_ZONES_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetTimeZone: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_TIME_ZONE_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_TIME_ZONE_SET'(state, timezone) {\r\n state.timezone = timezone\r\n },\r\n 'CONFIGURATION_TIME_ZONES_SET'(state, timezones) {\r\n state.timezones = timezones\r\n },\r\n 'CONFIGURATION_TIME_ZONES_SAVE'(state, timezone) {\r\n let isExist = state.timezones.find(n => n.id === timezone.id);\r\n\r\n if (isExist) {\r\n var pos = state.timezones.indexOf(isExist);\r\n state.timezones.splice(pos, 1, timezone);\r\n }\r\n else {\r\n state.timezones.push(timezone);\r\n }\r\n },\r\n 'CONFIGURATION_TIME_ZONES_REMOVE'(state, id) {\r\n let timezone = state.timezones.find(n => n.id === id);\r\n\r\n if (timezone) {\r\n var pos = state.timezones.indexOf(timezone);\r\n state.timezones.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_TIME_ZONE_SET_NEW' (state) {\r\n state.timezone = { name: null, code: null };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { sortOrder } from \"@/utils/sort\";\r\nimport { TradeAgreementService } from \"@/services/\"\r\n\r\nconst state = {\r\n tradeAgreement: null,\r\n tradeAgreements: []\r\n}\r\n\r\nexport const getters = {\r\n getTradeAgreement: state => state.tradeAgreement,\r\n getTradeAgreements: state => state.tradeAgreements.sort(sortOrder)\r\n}\r\n\r\nexport const actions = {\r\n fetchTradeAgreement: ({ commit }, id) => {\r\n return TradeAgreementService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TRADE_AGREEMENT_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchTradeAgreements: ({ commit }) => {\r\n return TradeAgreementService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TRADE_AGREEMENTS_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveTradeAgreement: ({ commit }, params) => {\r\n return TradeAgreementService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TRADE_AGREEMENTS_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeTradeAgreement: ({ commit }, id) => {\r\n return TradeAgreementService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_TRADE_AGREEMENTS_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetTradeAgreement: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_TRADE_AGREEMENT_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_TRADE_AGREEMENT_SET'(state, tradeAgreement) {\r\n state.tradeAgreement = tradeAgreement\r\n },\r\n 'CONFIGURATION_TRADE_AGREEMENTS_SET'(state, tradeAgreements) {\r\n state.tradeAgreements = tradeAgreements\r\n },\r\n 'CONFIGURATION_TRADE_AGREEMENTS_SAVE' (state, tradeAgreement) {\r\n let isExist = state.tradeAgreements.find(n => n.id === tradeAgreement.id);\r\n\r\n if (isExist) {\r\n var pos = state.tradeAgreements.indexOf(isExist);\r\n state.tradeAgreements.splice(pos, 1, tradeAgreement);\r\n }\r\n else {\r\n state.tradeAgreements.push(tradeAgreement);\r\n }\r\n },\r\n 'CONFIGURATION_TRADE_AGREEMENTS_REMOVE'(state, id) {\r\n let tradeAgreement = state.tradeAgreements.find(n => n.id === id);\r\n\r\n if (tradeAgreement) {\r\n var pos = state.tradeAgreements.indexOf(tradeAgreement);\r\n state.tradeAgreements.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_TRADE_AGREEMENT_SET_NEW' (state) {\r\n state.tradeAgreement = { name: null, code: null, sortOrder: 0 };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { UserService } from \"@/services/\";\r\n\r\nconst state = {\r\n user: null,\r\n users: []\r\n}\r\n\r\nexport const getters = {\r\n getUser: state => state.user,\r\n getUsers: state => state.users\r\n}\r\n\r\nexport const actions = {\r\n fetchUser: ({ commit }, id) => {\r\n return UserService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_USER_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchUsers: ({ commit }) => {\r\n return UserService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_USERS_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveUser: ({ commit }, params) => {\r\n return UserService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_USERS_SAVE', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n removeUser: ({ commit }, id) => {\r\n return UserService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_USERS_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n updateUser: ({ commit }, user) => {\r\n return UserService.profile(user).then(response => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_USER_SET', response.data);\r\n resolve(response.data);\r\n });\r\n });\r\n },\r\n resetUser: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_USER_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_USER_SET'(state, user) {\r\n state.user = user\r\n },\r\n 'CONFIGURATION_USERS_SET'(state, users) {\r\n state.users = users\r\n },\r\n 'CONFIGURATION_USERS_SAVE' (state, user) {\r\n let isExist = state.users.find(n => n.id === user.id);\r\n\r\n if (isExist) {\r\n var pos = state.users.indexOf(isExist);\r\n state.users.splice(pos, 1, user);\r\n }\r\n else {\r\n state.users.push(user);\r\n }\r\n },\r\n 'CONFIGURATION_USERS_REMOVE'(state, id) {\r\n let user = state.users.find(n => n.id === id);\r\n\r\n if (user) {\r\n var pos = state.users.indexOf(user);\r\n state.users.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_USER_SET_NEW' (state) {\r\n state.user = { firstName: null, lastName: null, email: null, password: null, isClientAdmin: false, roleIds: [], companies: [], zones: [] };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import { ZoneService } from \"@/services/\"\r\n\r\nconst state = {\r\n zone: null,\r\n zones: []\r\n}\r\n\r\nexport const getters = {\r\n getZone: state => state.zone,\r\n getZones: state => state.zones.sort((a, b) => { return a.name < b.name ? -1 : a.name > b.name ? 1 : 0 })\r\n}\r\n\r\nexport const actions = {\r\n fetchZone: ({ commit }, id) => {\r\n return ZoneService.getById(id).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ZONE_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n fetchZones: ({ commit }) => {\r\n return ZoneService.getAll().then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ZONES_SET', response.data);\r\n resolve(response.data);\r\n })\r\n });\r\n },\r\n saveZone: ({ commit }, params) => {\r\n return ZoneService.save(params).then(response => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ZONES_SAVE', response.data);\r\n resolve(response);\r\n })\r\n });\r\n },\r\n removeZone: ({ commit }, id) => {\r\n return ZoneService.delete(id).then(() => {\r\n return new Promise((resolve) => {\r\n commit('CONFIGURATION_ZONES_REMOVE', id);\r\n resolve();\r\n })\r\n });\r\n },\r\n resetZone: ({ commit }) => {\r\n return new Promise(resolve => {\r\n commit('CONFIGURATION_ZONE_SET_NEW');\r\n resolve();\r\n })\r\n },\r\n}\r\n\r\nexport const mutations = {\r\n 'CONFIGURATION_ZONE_SET'(state, zone) {\r\n state.zone = zone\r\n },\r\n 'CONFIGURATION_ZONES_SET'(state, zones) {\r\n state.zones = zones\r\n },\r\n 'CONFIGURATION_ZONES_SAVE'(state, zone) {\r\n let isExist = state.zones.find(n => n.id === zone.id);\r\n\r\n if (isExist) {\r\n var pos = state.zones.indexOf(isExist);\r\n state.zones.splice(pos, 1, zone);\r\n }\r\n else {\r\n state.zones.push(zone);\r\n }\r\n },\r\n 'CONFIGURATION_ZONES_REMOVE'(state, id) {\r\n let zone = state.zones.find(n => n.id === id);\r\n\r\n if (zone) {\r\n var pos = state.zones.indexOf(zone);\r\n state.zones.splice(pos, 1);\r\n }\r\n },\r\n 'CONFIGURATION_ZONE_SET_NEW' (state) {\r\n state.zone = { name: null, abbreviation: null, sortOrder: 0 };\r\n }\r\n}\r\n\r\nexport default { state, getters, actions, mutations }\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n\r\nimport global from \"@/store/modules/global\";\r\nimport clientSettings from \"@/store/modules/clientSettings\";\r\nimport lookup from './modules/lookups';\r\nimport auth from './modules/auth';\r\nimport project from './modules/project';\r\nimport company from './modules/company';\r\n\r\nimport addressBooks from './modules/configuration/addressBooks';\r\nimport advertisements from './modules/configuration/advertisements';\r\nimport contactTypes from './modules/configuration/contactTypes';\r\nimport bidInvitationLists from './modules/configuration/invite-2-bid/bidInvitationLists';\r\nimport bidInvitationSelectionTypes from './modules/configuration/invite-2-bid/bidInvitationSelectionTypes';\r\nimport bidInvitationStatusTypes from './modules/configuration/invite-2-bid/bidInvitationStatusTypes';\r\nimport news from './modules/configuration/news';\r\nimport owners from './modules/configuration/owners';\r\nimport ownerTypes from './modules/configuration/ownerTypes'\r\nimport participantTypes from './modules/configuration/participantTypes';\r\nimport procurementTypes from './modules/configuration/procurementTypes';\r\nimport roles from './modules/configuration/roles';\r\nimport serviceRegions from './modules/configuration/serviceRegions';\r\nimport tenderStages from './modules/configuration/tenderStages';\r\nimport timeZones from './modules/configuration/timezones';\r\nimport tradeAgreements from './modules/configuration/tradeAgreements'\r\nimport users from './modules/configuration/users';\r\nimport zones from './modules/configuration/zones';\r\n\r\nVue.use(Vuex)\r\n\r\nexport const store = new Vuex.Store({\r\n state: {},\r\n modules: {\r\n global,\r\n clientSettings,\r\n lookup,\r\n auth,\r\n project,\r\n company,\r\n bidInvitationLists,\r\n bidInvitationSelectionTypes,\r\n bidInvitationStatusTypes,\r\n addressBooks,\r\n advertisements,\r\n contactTypes,\r\n news,\r\n owners,\r\n ownerTypes,\r\n participantTypes,\r\n procurementTypes,\r\n roles,\r\n serviceRegions,\r\n tenderStages,\r\n timeZones,\r\n tradeAgreements,\r\n users,\r\n zones\r\n }\r\n})\r\n\r\nexport default store;\r\n","const defaultOptions = {\r\n okVariant: \"success\",\r\n hideHeaderClose: true,\r\n centered: true\r\n};\r\n\r\nconst confirmDefaultOptions = {\r\n okTitle: \"Confirm\"\r\n}\r\n\r\nconst okDefaultOptions = {\r\n okTitle: \"Ok\",\r\n}\r\n\r\nexport const confirm = function (context, title, message, overrideOptions) {\r\n let options = { title: title, ...defaultOptions, ...confirmDefaultOptions, ...overrideOptions };\r\n return context.$root.$bvModal.msgBoxConfirm(message, options)\r\n}\r\n\r\nexport const ok = function (context, title, message, overrideOptions) {\r\n let options = { title: title, ...defaultOptions, ...okDefaultOptions, ...overrideOptions };\r\n return context.$root.$bvModal.msgBoxOk(message, options)\r\n}\r\n\r\nexport default { confirm, ok }\r\n","const currencyComma = (val, decimalPlaces = 0) =>{\r\n if (isNaN(parseFloat(val))) return val;\r\n if (isNaN(decimalPlaces)) {\r\n decimalPlaces = 0;\r\n }\r\n return '$' + parseFloat(val).toFixed(decimalPlaces).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n}\r\n\r\nexport default currencyComma\r\n","const fullNameFilter = (value) => {\r\n if (!value) return '';\r\n\r\n return `${ value.firstName || '' }${ value.firstName && value.lastName ? ' ' : '' }${ value.lastName || '' }`;\r\n}\r\n\r\nexport default fullNameFilter;\r\n","const urlFilter = (value) => {\r\n if (!value) return '';\r\n\r\n let url = '';\r\n\r\n if (!value.startsWith('http') && !value.startsWith('https')) {\r\n url += window.location.protocol;\r\n\r\n if (!value.startsWith('//')) {\r\n url += '//'\r\n }\r\n }\r\n\r\n return url += value;\r\n}\r\n\r\nexport default urlFilter;\r\n","const capitalizeFilter = (val) => {\r\n if (!val) return ''\r\n\r\n return val.charAt(0).toUpperCase() + val.slice(1);\r\n}\r\n\r\nexport default capitalizeFilter\r\n","import { PublicCompanyJoinAcceptanceStatus } from \"@/utils/enums\";\r\n\r\nconst statusFilter = (val) => { \r\n switch (val) {\r\n case PublicCompanyJoinAcceptanceStatus.Approved:\r\n return \"Approved\";\r\n case PublicCompanyJoinAcceptanceStatus.Pending:\r\n return \"Pending Approval\"; \r\n default:\r\n return \"Rejected\";\r\n }\r\n}\r\n\r\nexport default statusFilter\r\n","const PERMISSION_TYPES = {\r\n // ADD PERMISSIONS\r\n ADD_PROJECT: 'add_project',\r\n ADD_PROJECT_PRIVATE: 'add_project_private',\r\n ADD_COMPANY: 'add_company',\r\n // DELETE PERMISSIONS\r\n DELETE_ADDRESS: 'delete_address',\r\n DELETE_ADMIN_NOTE: 'delete_admin_note',\r\n DELETE_COMPANY: 'delete_company',\r\n DELETE_COMPANY_MEMBERSHIP: 'delete_company_membership',\r\n DELETE_COMPANY_USER: 'delete_company_user',\r\n DELETE_CONTACT: 'delete_contact',\r\n DELETE_CONTACT_TYPE: 'delete_contact_type',\r\n DELETE_FOLLOW_UP_TASK: 'delete_follow_up_task',\r\n DELETE_OWNER: 'delete_owner',\r\n DELETE_PROJECT: 'delete_project',\r\n DELETE_ROLE: 'delete_role',\r\n DELETE_SERVICE_REGION: 'delete_service_region',\r\n DELETE_SITE_MEETING: 'delete_site_meeting',\r\n DELETE_TENDER_STAGE: 'delete_tender_stage',\r\n DELETE_USER: 'delete_user',\r\n DELETE_ZONE: 'delete_zone',\r\n // EDIT PERMISSIONS\r\n EDIT_ADDRESS: 'edit_address',\r\n EDIT_ADMIN_NOTE: 'edit_admin_note',\r\n EDIT_COMPANY: 'edit_company',\r\n EDIT_COMPANY_MEMBERSHIP: 'edit_company_membership',\r\n EDIT_COMPANY_USER: 'edit_company_user',\r\n EDIT_CONTACT: 'edit_contact',\r\n EDIT_CONTACT_TYPE: 'edit_contact_type',\r\n EDIT_FOLLOW_UP_TASK: 'edit_follow_up_task',\r\n EDIT_OWNER: 'delete_owner',\r\n EDIT_PROJECT: 'edit_project',\r\n EDIT_ROLE: 'edit_role',\r\n EDIT_SERVICE_REGION: 'edit_service_region',\r\n EDIT_SITE_MEETING: 'edit_site_meeting',\r\n EDIT_TENDER_STAGE: 'edit_tender_stage',\r\n EDIT_USER: 'edit_user',\r\n EDIT_ZONE: 'edit_zone',\r\n // VIEW PERMISSIONS\r\n VIEW_ADDRESS: 'view_address',\r\n VIEW_ADMIN_NOTE: 'view_admin_note',\r\n VIEW_COMPANY: 'view_company',\r\n VIEW_CONTACT: 'view_contact',\r\n VIEW_CONTACT_TYPE: 'view_contact_type',\r\n VIEW_FOLLOW_UP_TASK: 'view_follow_up_task',\r\n VIEW_OWNER: 'view_owner',\r\n VIEW_PROJECT: 'view_project',\r\n VIEW_PROJECT_DETAILS: 'view_project_details',\r\n VIEW_PROJECT_CONTACTS: 'view_project_contacts',\r\n VIEW_PROJECT_DOCUMENTS: 'view_project_documents',\r\n VIEW_PROJECT_BIDDERS: 'view_project_bidders',\r\n VIEW_ROLE: 'view_role',\r\n VIEW_SERVICE_REGION: 'view_service_region',\r\n VIEW_SITE_MEETING: 'view_site_meeting',\r\n VIEW_TENDER_STAGE: 'view_tender_stage',\r\n VIEW_USER: 'view_user',\r\n VIEW_ZONE: 'view_zone',\r\n // OTHER PERMISSIONS\r\n COMPANY_ADVANCED_SEARCH: 'company_advance_search',\r\n COMPANY_EXCEL_EXPORT: 'company_excel_export',\r\n COMPANY_SEARCH_COLUMNS: 'company_search_columns',\r\n COMPANY_SEND_EMAIL: 'company_send_email',\r\n ENABLE_BID_REQUEST: 'enable_bid_request',\r\n PROJECT_ADVANCED_SEARCH: 'project_advance_search',\r\n PROJECT_BULLETIN_REPORT_EXPORT: 'project_bulletin_report_export',\r\n PROJECT_EXCEL_EXPORT: 'project_excel_export',\r\n PROJECT_SEARCH_COLUMNS: 'project_search_columns',\r\n SEND_BID_INVITATIONS: 'send_bid_invitations',\r\n ENABLE_ACTIVITY_REPORT: 'enable_activity_report'\r\n}\r\n\r\nexport default {\r\n install(Vue, { store }) {\r\n\r\n if (!store) {\r\n throw new Error(\"Please provide vuex store\");\r\n }\r\n\r\n Vue.prototype.$permissions = function () {\r\n\r\n const PERMISSIONS = store.getters.getCurrentUserPermissions;\r\n const IS_SYS_ADMIN = store.state.auth.authUser ? store.state.auth.authUser.isSystemAdmin : false;\r\n const IS_CLIENT_ADMIN = store.state.auth.authUser ? store.state.auth.authUser.isClientAdmin : false;\r\n\r\n return {\r\n get() { return PERMISSIONS },\r\n get isSysAdmin() { return IS_SYS_ADMIN },\r\n get isClientAdmin() { return IS_CLIENT_ADMIN },\r\n get hasConfigurePermissions() {\r\n return this.hasViewOwnerPermission ||\r\n this.hasViewRolePermission ||\r\n this.hasViewServiceRegionPermissions ||\r\n this.hasViewUserPermission ||\r\n this.hasViewZonePermission ||\r\n this.hasSendBidInvitations\r\n },\r\n hasRequiredPermissions(requiredPermissions) {\r\n return requiredPermissions.some(permission => !!PERMISSIONS.find(p => p === permission));\r\n },\r\n // View Permission Getters\r\n get hasViewAdvertisementPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN },\r\n get hasViewCompanyPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_COMPANY) },\r\n get hasViewOwnerPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_OWNER) },\r\n get hasViewPaymentPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN },\r\n get hasViewProjectPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_PROJECT) },\r\n get hasViewProjectDetailsPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_PROJECT_DETAILS) },\r\n get hasViewProjectContactsPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_PROJECT_CONTACTS) },\r\n get hasViewProjectDocumentsPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_PROJECT_DOCUMENTS) },\r\n get hasViewProjectBiddersPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_PROJECT_BIDDERS) },\r\n get hasViewRolePermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_ROLE) },\r\n get hasViewServiceRegionPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_SERVICE_REGION) },\r\n get hasViewUserPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_USER) },\r\n get hasViewZonePermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.VIEW_ZONE) },\r\n // Add Permission Getters\r\n get hasAddCompanyPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.ADD_COMPANY) },\r\n get hasAddProjectPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.ADD_PROJECT) },\r\n get hasAddPrivateProjectPermission() { return !!PERMISSIONS.find(p => p === PERMISSION_TYPES.ADD_PROJECT_PRIVATE) },\r\n // Edit Permission Getters\r\n get hasEditCompanyPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.EDIT_COMPANY) },\r\n get hasEditOwnerPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.EDIT_OWNER) },\r\n get hasEditProjectPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.EDIT_PROJECT) },\r\n get hasEditRolePermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.EDIT_ROLE) },\r\n get hasEditServiceRegionPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.EDIT_SERVICE_REGION) },\r\n get hasEditUserPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.EDIT_USER) },\r\n get hasEditZonePermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.EDIT_ZONE) },\r\n // Delete Permission Getters\r\n get hasDeleteCompanyPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.DELETE_COMPANY) },\r\n get hasDeleteOwnerPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.DELETE_OWNER) },\r\n get hasDeleteProjectPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.DELETE_PROJECT) },\r\n get hasDeleteRolePermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.DELETE_ROLE) },\r\n get hasDeleteServiceRegionPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.DELETE_SERVICE_REGION) },\r\n get hasDeleteUserPermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.DELETE_USER) },\r\n get hasDeleteZonePermission() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.DELETE_ZONE) },\r\n // Other Permission Getters\r\n get hasCompanyAdvancedSearch() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.COMPANY_ADVANCED_SEARCH) },\r\n get hasCompanyExcelExport() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.COMPANY_EXCEL_EXPORT) },\r\n get hasCompanySearchColumns() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.COMPANY_SEARCH_COLUMNS) },\r\n get hasCompanySendEmail() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.COMPANY_SEND_EMAIL) },\r\n get hasEnableBidRequest() { return !!PERMISSIONS.find(p => p === PERMISSION_TYPES.ENABLE_BID_REQUEST) },\r\n get hasProjectAdvancedSearch() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.PROJECT_ADVANCED_SEARCH) },\r\n get hasProjectBulletinReportExport() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.PROJECT_BULLETIN_REPORT_EXPORT) },\r\n get hasProjectExcelExport() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.PROJECT_EXCEL_EXPORT) },\r\n get hasProjectSearchColumns() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.PROJECT_SEARCH_COLUMNS) },\r\n get hasSendBidInvitations() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.SEND_BID_INVITATIONS) },\r\n get hasEnableActivityReport() { return IS_SYS_ADMIN || IS_CLIENT_ADMIN || !!PERMISSIONS.find(p => p === PERMISSION_TYPES.ENABLE_ACTIVITY_REPORT) }\r\n }\r\n }\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isAppInitialized)?_c('main',{staticClass:\"overflow-hidden\",attrs:{\"id\":\"app\"}},[_c('loading',{attrs:{\"active\":_vm.isPageLoading,\"is-full-page\":\"\"},on:{\"update:active\":function($event){_vm.isPageLoading=$event}}}),_c('router-view',{key:_vm.$route.fullPath}),_c('app-cookie-consent')],1):_vm._e(),(!_vm.isAppInitialized)?_c('div',[_c('span',[_vm._v(\"The application is currently loading...\")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (this.showPopup)?_c('div',{staticClass:\"cc-window cc-banner cc-type-info cc-theme-block cc-bottom\",attrs:{\"role\":\"dialog\",\"aria-label\":\"Cookie Prompt\",\"aria-describedby\":\"cookieconsent:desc\"}},[_c('span',{staticClass:\"cc-message text-white\",attrs:{\"id\":\"cookieconsent:desc\"}},[_vm._v(\" This website uses cookies to enhance usability and provide you with a more personal experience. By using this website, you agree to our use of cookies as explained in our \"),_c('a',{staticClass:\"cc-link text-white\",attrs:{\"tabindex\":\"0\",\"href\":this.privacyPolicy.url}},[_c('span',{staticClass:\"sr-only ic-sr-only\"},[_vm._v(\"learn more about cookies on our\")]),_vm._v(_vm._s(this.privacyPolicy.text)),_c('span',{staticClass:\"sr-only ic-sr-only\"},[_vm._v(\"page\")]),_vm._v(\".\")])]),_c('div',{staticClass:\"cc-compliance\"},[_c('button',{staticClass:\"cc-btn cc-dismiss\",attrs:{\"type\":\"button\",\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.clickConsent()}}},[_vm._v(\"I Understand \"),_c('span',{staticClass:\"sr-only ic-sr-only\"},[_vm._v(\" - dismiss cookie message\")])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n This website uses cookies to enhance usability and provide you with a more personal experience. By using this website, you agree to our use of cookies as explained in our learn more about cookies on our{{ this.privacyPolicy.text }}page.\r\n \r\n \r\n I Understand - dismiss cookie message\r\n \r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-cookie-consent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-cookie-consent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app-cookie-consent.vue?vue&type=template&id=46b08238&\"\nimport script from \"./app-cookie-consent.vue?vue&type=script&lang=js&\"\nexport * from \"./app-cookie-consent.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n The application is currently loading...\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6e1bec82&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\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","// Components\r\nimport Vue from 'vue'\r\nimport { ModalPlugin, ToastPlugin } from 'bootstrap-vue'\r\nimport VeeValidate from 'vee-validate'\r\nimport Multiselect from 'vue-multiselect'\r\nimport vSelect from 'vue-select';\r\nimport Fragment from 'vue-fragment'\r\nimport Loading from 'vue-loading-overlay';\r\n\r\n// Filters\r\nimport CurrencyFilter from '@/filters/currency';\r\nimport { DateTimeFilter, DateOnlyFilter } from '@/filters/datetime';\r\nimport FullNameFilter from '@/filters/fullname';\r\nimport UrlFilter from '@/filters/url';\r\nimport CapitalizeFilter from '@/filters/capitalize';\r\nimport CompanyJoinAcceptanceStatusFilter from '@/filters/companyJoinAcceptanceStatus';\r\n\r\n// Plugins\r\nimport PermissionPlugin from \"@/plugins/permissions\";\r\n\r\n// Styles\r\nimport 'bootstrap-vue/dist/bootstrap-vue.css'\r\nimport '@fortawesome/fontawesome-free/css/all.css'\r\nimport 'vue-multiselect/dist/vue-multiselect.min.css'\r\nimport 'vue-select/dist/vue-select.css';\r\nimport \"pc-bootstrap4-datetimepicker/build/css/bootstrap-datetimepicker.css\";\r\nimport 'vue-loading-overlay/dist/vue-loading.css'\r\n\r\nimport '@/styles/loading.css';\r\nimport '@/styles/loading-btn.css';\r\n\r\nimport App from './App.vue'\r\nimport router from './router/'\r\nimport store from './store/'\r\n\r\nVue.config.productionTip = process.env.NODE_ENV === 'development'\r\nVue.config.devtools = process.env.NODE_ENV === 'development'\r\nVue.config.debug = process.env.NODE_ENV === 'development'\r\nVue.config.silent = process.env.NODE_ENV === 'production'\r\n\r\nVue.use(ModalPlugin);\r\nVue.use(ToastPlugin);\r\nVue.use(VeeValidate)\r\nVue.use(Fragment.Plugin)\r\nVue.use(PermissionPlugin, { store });\r\nVue.component('multiselect', Multiselect)\r\nVue.component('v-select', vSelect);\r\nVue.filter('currency', CurrencyFilter)\r\nVue.filter('datetime', DateTimeFilter);\r\nVue.filter('dateonly', DateOnlyFilter);\r\nVue.filter('fullname', FullNameFilter);\r\nVue.filter('url', UrlFilter);\r\nVue.filter('capitalize', CapitalizeFilter);\r\nVue.filter('companyJoinAcceptanceStatusFilter', CompanyJoinAcceptanceStatusFilter);\r\nVue.component('loading', Loading);\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","import VueCookies from 'vue-cookies';\r\nconst JWT_TOKEN_NAME = 'jwt';\r\nconst USER_INFO_NAME = 'user';\r\nconst USER_DATA_NAME = 'user-data';\r\nconst getBearerToken = function () {\r\n let jwt = getJwtToken();\r\n return jwt && jwt.token || null;\r\n}\r\n\r\nconst getJwtToken = function () {\r\n var jwt = VueCookies.isKey(JWT_TOKEN_NAME)?VueCookies.get(JWT_TOKEN_NAME):null;\r\n var userData = VueCookies.isKey(USER_DATA_NAME)?VueCookies.get(USER_DATA_NAME):null;\r\n if(jwt!=null && userData!= null)\r\n return {'token':jwt.token,'refreshToken': jwt.refreshToken,'permissions':userData.permissions,'zonePermissions': userData.zonePermissions,'companies':userData.companies,'isSystemAdmin': userData.isSystemAdmin,'isClientAdmin':userData.isClientAdmin}\r\n else{\r\n return null;\r\n }\r\n}\r\n\r\nconst getRefreshToken = function () {\r\n let jwt = getJwtToken();\r\n return jwt && jwt.refreshToken || null;\r\n}\r\n\r\nconst getUserToken = function () {\r\n return VueCookies.isKey(USER_INFO_NAME)?VueCookies.get(USER_INFO_NAME):null;\r\n}\r\n\r\nconst setToken = function (name, token) {\r\n if(name==JWT_TOKEN_NAME && token != null && token != undefined && token.token != null && token.token != undefined){\r\n //Filtering out unneeded properties if it's the JWT token to reduce cookie size. \r\n VueCookies.set(JWT_TOKEN_NAME,{'token':token.token,'refreshToken': token.refreshToken},{expires: ''});\r\n VueCookies.set(USER_DATA_NAME,{'permissions':token.permissions,'zonePermissions': token.zonePermissions,'companies':token.companies,'isSystemAdmin': token.isSystemAdmin,'isClientAdmin':token.isClientAdmin},{expires: ''});\r\n }else{\r\n VueCookies.set(name, token,{expires: ''});\r\n }\r\n}\r\n\r\nconst removeToken = function(name){\r\n VueCookies.remove(name);\r\n}\r\n\r\nexport default {\r\n keys: {\r\n 'jwt': JWT_TOKEN_NAME,\r\n 'user': USER_INFO_NAME,\r\n 'userdata': USER_DATA_NAME\r\n },\r\n getBearerToken: getBearerToken,\r\n getJwtToken: getJwtToken,\r\n getRefreshToken: getRefreshToken,\r\n getUserToken: getUserToken,\r\n setToken: setToken,\r\n removeToken: removeToken\r\n}\r\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-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=style&index=0&lang=scss&\"","export const clean = (obj) => {\r\n let propNames = Object.getOwnPropertyNames(obj);\r\n for (let i = 0; i < propNames.length; i++) {\r\n let propName = propNames[i];\r\n\r\n if (obj[propName] instanceof Object && !Array.isArray(obj[propName]))\r\n clean(obj[propName]);\r\n\r\n if (obj[propName] === null || obj[propName] === undefined || (obj[propName] instanceof Object && Object.keys(obj[propName]).length === 0)) {\r\n delete obj[propName];\r\n }\r\n }\r\n}\r\n\r\nexport const transformToFormData = (data) => {\r\n let formData = new FormData();\r\n Object.keys(data).forEach(key => { formData.append(key, data[key]); });\r\n return formData;\r\n}\r\n\r\nexport default { clean }\r\n","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\nimport JwtHelper from \"@/utils/jwtHelper\";\r\n\r\nVue.use(Router)\r\n\r\nconst dashboardRoutes = [\r\n { path: \"/\", redirect: \"/dashboard\" },\r\n { path: \"/dashboard\", meta: { requiresAuth: true }, component: () => import(\"@/views/dashboard/dashboard.vue\") }\r\n];\r\n\r\nconst projectRoutes = [\r\n { path: \"/project\", redirect: \"/dashboard\" },\r\n { path: \"/project/search\", name: 'project-search', meta: { requiresAuth: true }, props: true, component: () => import(\"@/views/project/search.vue\") },\r\n { path: \"/project/info\", redirect: \"/project/search\" },\r\n { path: \"/project/info/:id\", name: 'project-info', meta: { requiresAuth: true }, props: true, component: () => import(\"@/views/project/info.vue\") },\r\n { path: \"/project/new\", meta: { requiresAuth: [\"add_project\", \"add_project_private\"] }, component: () => import(\"@/views/project/create.vue\") },\r\n { path: \"/project/edit\", redirect: \"/project/new\" },\r\n { path: \"/project/edit/:id\", meta: { requiresAuth: [\"edit_project\", \"add_project_private\"] }, component: () => import(\"@/views/project/create.vue\") },\r\n { path: \"/project/purchase/:id\", name: 'project-purchase', meta: { requiresAuth: true }, props: true, component: () => import(\"@/views/project/purchase.vue\") },\r\n { path: \"/project/purchase/:id/success\", name: 'project-purchase-success', meta: { requiresAuth: true }, props: true, component: () => import(\"@/views/project/purchaseSuccess.vue\") },\r\n { path: \"/project/purchase/:id/error\", name: 'project-purchase-error', meta: { requiresAuth: true }, props: true, component: () => import(\"@/views/project/purchaseError.vue\") },\r\n];\r\n\r\nconst companyRoutes = [\r\n { path: \"/company\", redirect: \"/dashboard\" },\r\n { path: \"/company/search\", meta: { requiresAuth: [\"view_company\"] }, component: () => import(\"@/views/company/search.vue\") },\r\n { path: \"/company/new\", meta: { requiresAuth: [\"view_company\", \"add_company\"] }, component: () => import(\"@/views/company/create.vue\") },\r\n { path: \"/company/edit\", redirect: \"/company/new\" },\r\n { path: \"/company/edit/:id\", meta: { requiresAuth: [\"view_company\", \"edit_company\"] }, component: () => import(\"@/views/company/create.vue\") }\r\n];\r\n\r\nconst membershipRoutes = [\r\n { path: \"/membership/upgrade\", meta: { requiresAuth: true }, component: () => import(\"@/views/membership/upgrade.vue\") }\r\n];\r\n\r\nconst configurationRoutes = [\r\n { path: \"/configuration\", redirect: \"/dashboard\" },\r\n { path: \"/configuration/advertisements\", meta: { requiresAuth: 'admin' }, component: () => import(\"@/views/configuration/advertisements.vue\") },\r\n { path: \"/configuration/addressbook\", meta: { requiresAuth: 'send_bid_invitations' }, component: () => import(\"@/views/configuration/address-books.vue\") },\r\n { path: \"/configuration/contact-types\", meta: { requiresAuth: 'admin' }, component: () => import(\"@/views/configuration/contact-types.vue\") },\r\n { path: \"/configuration/news\", meta: { requiresAuth: 'admin' }, component: () => import(\"@/views/configuration/news.vue\") },\r\n { path: \"/configuration/owners\", meta: { requiresAuth: [\"view_owner\"] }, component: () => import(\"@/views/configuration/owners.vue\") },\r\n { path: \"/configuration/owner-types\", meta: { requiresAuth: 'admin' }, component: () => import(\"@/views/configuration/owner-types.vue\") },\r\n { path: \"/configuration/participant-types\", meta: { requiresAuth: 'admin' }, component: () => import(\"@/views/configuration/participant-types.vue\") },\r\n { path: \"/configuration/payments\", meta: { requiresAuth: 'admin' }, component: () => import(\"@/views/configuration/payments.vue\") },\r\n { path: \"/configuration/procurement-types\", meta: { requiresAuth: 'admin' }, component: () => import(\"@/views/configuration/procurement-types.vue\") },\r\n { path: \"/configuration/service-regions\", meta: { requiresAuth: [\"view_serviceRegion\"] }, component: () => import(\"@/views/configuration/service-regions.vue\") },\r\n { path: \"/configuration/tender-stages\", meta: { requiresAuth: 'admin' }, component: () => import(\"@/views/configuration/tender-stages.vue\") },\r\n { path: \"/configuration/trade-agreements\", meta: { requiresAuth: 'admin' }, component: () => import(\"@/views/configuration/trade-agreements.vue\") },\r\n { path: \"/configuration/roles\", meta: { requiresAuth: [\"view_role\"] }, component: () => import(\"@/views/configuration/roles.vue\") },\r\n { path: \"/configuration/users\", meta: { requiresAuth: [\"view_user\"] }, component: () => import(\"@/views/configuration/users.vue\") },\r\n { path: \"/configuration/zones\", meta: { requiresAuth: [\"view_zone\"] }, component: () => import(\"@/views/configuration/zones.vue\") },\r\n];\r\n\r\nconst accountRoutes = [\r\n { path: \"/account\", redirect: \"/dashboard\" },\r\n { path: \"/account/settings\", meta: { requiresAuth: true }, component: () => import(\"@/views/account/settings.vue\") }\r\n];\r\n\r\nconst loginRoutes = [\r\n {\r\n name: 'account', path: \"/\", component: () => import(\"@/views/layout/account.vue\"),\r\n children: [\r\n { path: \"/unsubscribe\", component: () => import(\"@/views/account/unsubscribe.vue\") },\r\n { path: \"/login\", component: () => import(\"@/views/account/login.vue\") },\r\n { path: \"/forgotpassword\", name: \"forgotpassword\", component: () => import(\"@/views/account/forgot-password.vue\") },\r\n { path: \"/passwordreset/\", redirect: \"/login\" },\r\n { path: \"/passwordreset/:token\", component: () => import(\"@/views/account/password-reset.vue\") },\r\n { path:\"/emailoptout/:token\", component: () => import(\"@/views/account/unsubscribe-confirm.vue\")}\r\n ]\r\n },\r\n { path: \"/logout\", component: () => import(\"@/views/account/logout.vue\") }\r\n]\r\n\r\nconst publicRoutes = [\r\n {\r\n path: '/signup', component: () => import(\"@/views/public/signup.vue\"),\r\n beforeEnter: (to, from, next) => {\r\n if (process.env.VUE_APP_TENANT_NAME.toLowerCase().includes('cinet')) {\r\n next({ path: '/login' })\r\n } else {\r\n next()\r\n }\r\n },\r\n children: [\r\n { name: 'signup-company-lookup', path: '/', component: () => import(\"@/views/public/company-lookup.vue\") },\r\n { name: 'signup-company-join', path: 'join/:slug', component: () => import(\"@/views/public/company-join.vue\") },\r\n { name: 'signup-company-new', path: 'create', component: () => import(\"@/views/public/company-create.vue\") },\r\n { path: 'join/', redirect: \"/signup\" },\r\n { name: 'signup-company-success', path: 'success', component: () => import(\"@/views/public/company-create-success.vue\") },\r\n { name: 'signup-company-error', path: 'error', component: () => import(\"@/views/public/company-create-error.vue\") },\r\n ]\r\n },\r\n]\r\n\r\nconst invite2BidRoutes = [\r\n {\r\n path: \"/respond-to-invitation\", component: () => import(\"@/views/layout/account.vue\"),\r\n children: [\r\n { path: \"/\", meta: { requiresAuth: false }, component: () => import(\"@/views/project/components/invite-2-bid/respond-to-invitation.vue\") }\r\n ]\r\n }\r\n];\r\n\r\nexport const routes = [\r\n ...dashboardRoutes,\r\n ...projectRoutes,\r\n ...companyRoutes,\r\n ...membershipRoutes,\r\n ...configurationRoutes,\r\n ...accountRoutes,\r\n ...loginRoutes,\r\n ...publicRoutes,\r\n ...invite2BidRoutes,\r\n { path: \"*\", redirect: \"/dashboard\" }\r\n];\r\n\r\nlet router = new Router({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes: routes\r\n});\r\n\r\nrouter.beforeResolve((to, from, next) => {\r\n let isValid = true;\r\n\r\n if (to.matched.some(record => !!record.meta.requiresAuth)) {\r\n let jwt = JwtHelper.getJwtToken();\r\n isValid = !!jwt;\r\n }\r\n\r\n if (to.meta && to.meta.requiresAuth && typeof to.meta.requiresAuth === 'string' && to.meta.requiresAuth === 'admin') {\r\n isValid = router.app.$permissions().isSysAdmin || router.app.$permissions().isClientAdmin;\r\n }\r\n else if (to.meta && to.meta.requiresAuth && typeof to.meta.requiresAuth === 'object') {\r\n let requiredPermissions = to.meta.requiresAuth;\r\n isValid = router.app.$permissions().isSysAdmin || router.app.$permissions().isClientAdmin || router.app.$permissions().hasRequiredPermissions(requiredPermissions);\r\n }\r\n\r\n if (isValid == false) return next({ path: '/login', query: { redirect: to.fullPath } });\r\n else next();\r\n});\r\n\r\nexport default router;\r\n","export const TenderStages = Object.freeze({\r\n CLOSED:\t'2501c6dc-361e-4970-b02b-40be2d3d8b08',\r\n CANCELLED: '47f26b13-e584-4654-b18a-43dfe3308563',\r\n OPEN: 'ba1408eb-83d9-4c94-a2ba-6d9436773b36',\r\n UNOFFICIAL_RESULTS: '7173009e-9821-4215-9692-b5cc26403b15',\r\n PREBID: '187158c8-6cb9-4067-9af6-bc1cade44f49',\r\n AWARDED: '80c4cd45-a72a-4d1e-877f-f39458f8eb02'\r\n})\r\n\r\nexport const Invite2BidEmailStages = Object.freeze({\r\n COMPOSE: '6ddded3d-3400-4c51-a577-af0433228dc3',\r\n PREVIEW: '2b584604-c413-49bb-9a11-fb889e9ebb12',\r\n CONFIRMED: '0b5f13b9-ac5a-4ea1-96ca-33b3c8191453'\r\n})\r\n\r\nexport const PublicCompanyJoinAcceptanceStatus = Object.freeze({\r\n Approved: 1,\r\n Rejected: 0,\r\n Pending: 2\r\n})\r\n\r\nexport default { TenderStages, Invite2BidEmailStages, PublicCompanyJoinAcceptanceStatus };\r\n","export const alpha = (a, b) => a < b ? -1 : a > b ? 1 : 0;\r\nexport const date = (a, b) => { let aDate = new Date(a), bDate = new Date(b); return aDate < bDate ? -1 : aDate > bDate ? 1 : 0 };\r\nexport const sortOrder = (a, b) => a.sortOrder < b.sortOrder ? -1 : a.sortOrder > b.sortOrder ? 1 : 0;\r\n\r\nexport default { alpha, date, sortOrder }\r\n","import axios from 'axios'\r\nimport { store } from '@/store/'\r\nimport router from \"@/router/\";\r\nimport JwtHelper from \"@/utils/jwtHelper\";\r\nimport { EventBus } from \"@/event-bus/event-bus.js\";\r\n\r\nexport const httpClient = axios.create({\r\n baseURL: process.env.VUE_APP_API_URL,\r\n timeout: 0,\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n})\r\n\r\nhttpClient.interceptors.request.use(\r\n function (config) {\r\n let token = JwtHelper.getBearerToken();\r\n\r\n if (token) {\r\n config.headers['Authorization'] = `Bearer ${ token }`;\r\n }\r\n\r\n config.onDownloadProgress = (progressEvent) => EventBus.$emit('api-call-progress', progressEvent)\r\n\r\n return config;\r\n },\r\n function (error) {\r\n return Promise.reject(error)\r\n }\r\n)\r\n\r\nhttpClient.interceptors.response.use(response => response, error => {\r\n const status = error.response ? error.response.status : null;\r\n\r\n if (status === 401) {\r\n return resetTokenAndReattemptRequest(error);\r\n }\r\n\r\n return Promise.reject(error);\r\n});\r\n\r\nlet subscribers = [];\r\n\r\nasync function resetTokenAndReattemptRequest (error) {\r\n try {\r\n const { response: errorResponse } = error;\r\n\r\n const retryOriginalRequest = new Promise(resolve => {\r\n addSubscriber(access_token => {\r\n errorResponse.config.headers.Authorization = 'Bearer ' + access_token;\r\n resolve(axios(errorResponse.config));\r\n });\r\n });\r\n\r\n if (!store.state.auth.isRefreshing) {\r\n store.dispatch('setRefreshingState', true);\r\n let refreshToken = JwtHelper.getRefreshToken();\r\n\r\n try {\r\n const response = await axios.post(process.env.VUE_APP_API_URL + `/api/v1/user/${ refreshToken }/refresh`);\r\n\r\n if (!response.data) {\r\n return Promise.reject(error);\r\n }\r\n\r\n const newToken = response.data.token;\r\n JwtHelper.setToken(JwtHelper.keys.jwt, response.data);\r\n store.dispatch('setRefreshingState', false);\r\n onAccessTokenFetched(newToken);\r\n }\r\n catch {\r\n router.push({ path: '/logout' });\r\n }\r\n }\r\n\r\n return retryOriginalRequest;\r\n }\r\n catch (err) {\r\n return Promise.reject(err);\r\n }\r\n}\r\n\r\nfunction onAccessTokenFetched(access_token) {\r\n subscribers.forEach(callback => callback(access_token));\r\n subscribers = [];\r\n}\r\n\r\nfunction addSubscriber(callback) {\r\n subscribers.push(callback);\r\n}\r\n\r\nexport default httpClient;\r\n","import httpClient from \"@/services/base.service.js\";\r\nimport { transformToFormData } from \"@/utils/object\";\r\n\r\nconst apiBase = '/api/v1/addressbook/';\r\n\r\nexport default {\r\n getForInviteToBid: function () {\r\n return httpClient.get(`${apiBase}getforinvitetobid/`);\r\n },\r\n getForLoggedInUser: function () {\r\n return httpClient.get(`${apiBase}getforloggedinuser/`);\r\n },\r\n getById: function (id) {\r\n return httpClient.get(`${apiBase}get/` + id);\r\n },\r\n save: function (data) {\r\n if (!data.isEdit) {\r\n let formData = transformToFormData({ ...data.addressBook });\r\n\r\n return httpClient.post(`${apiBase}post/`, formData, { headers: { 'Content-Type': 'multipart/form-data' } })\r\n }\r\n else {\r\n return httpClient.put(`${apiBase}put/${data.addressBook.id}`, data.addressBook);\r\n }\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(`${apiBase}delete/` + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n search: function (searchCriteria) {\r\n return httpClient.post(`/api/v1/addressbookcontact/search/`, searchCriteria)\r\n } \r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/advertisement/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n const transform = (data) => {\r\n let formData = new FormData();\r\n Object.keys(data).forEach(key => { formData.append(key, data[key]); });\r\n return formData;\r\n }\r\n\r\n if (!isEdit) {\r\n return httpClient.post('/api/v1/advertisement/post', data, { headers: { 'Content-Type': 'multipart/form-data' }, transformRequest: transform })\r\n }\r\n\r\n return httpClient.put('/api/v1/advertisement/put/' + data.id, data);\r\n},\r\n delete: function (id, code) {\r\n return httpClient.delete(`/api/v1/advertisement/delete/${id}/${code}`);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/advertisementgroup/\");\r\n },\r\n getListings: function () {\r\n return httpClient.get(\"/api/v1/advertisementgroup/listings\");\r\n },\r\n getRandomAd: function (code, count) {\r\n return httpClient.get(`/api/v1/advertisementgroup/${code}/random/${count}`);\r\n },\r\n getAllAds: function (code) {\r\n return httpClient.get(`/api/v1/advertisementgroup/${code}`);\r\n },\r\n toggle: function (direction) {\r\n return httpClient.put('/api/v1/advertisementgroup/toggle', direction);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nconst apiBase = '/api/v1/applicationactivity/';\r\n\r\nexport default {\r\n create: function (params) {\r\n return httpClient.post(`${apiBase}create`, params);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nlet apiBase = '/api/v1/bidinvitationlist';\r\n\r\nexport default {\r\n save: function (params) {\r\n return httpClient.post(apiBase, params)\r\n },\r\n getForLoggedInUser: function () {\r\n return httpClient.get(`${apiBase}/listsforloggedinuser`);\r\n },\r\n listNameExists: function (listName) {\r\n return httpClient.get(`${apiBase}/listnameexists?name=${escape(listName)}`);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nlet apiBase = '/api/v1/bidinvitationselectiontype';\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(`${apiBase}/get`);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n excel: function (params) {\r\n return httpClient({ url: '/api/v1/bidinvitation/excel', method: \"POST\", responseType: \"blob\", data: params });\r\n },\r\n followUp: function (params) {\r\n return httpClient.post('/api/v1/bidinvitation/followup/', params);\r\n },\r\n remind: function (bidInvitationCompanyId) {\r\n return httpClient.post('/api/v1/bidinvitation/remind/' + bidInvitationCompanyId);\r\n },\r\n respondToInvitation: function (bidInvitationCompanyId, status) {\r\n return httpClient.get(`/api/v1/bidinvitation/respondtoinvitation?id=${bidInvitationCompanyId}&status=${status}`)\r\n },\r\n save: function (params) {\r\n return httpClient.post('/api/v1/bidinvitation', params)\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nlet apiBase = '/api/v1/bidinvitationstatustype';\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(`${apiBase}/get`);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/businesscategory/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/category/get\");\r\n },\r\n getByGrouping: function () {\r\n return httpClient.get(\"/api/v1/category/getbygrouping\");\r\n },\r\n getTopLevel: function () {\r\n return httpClient.get(\"/api/v1/category/gettoplevel\");\r\n },\r\n getLevelByParentId: function (id) {\r\n return httpClient.get(\"/api/v1/category/getlevelbyparentid/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/classificationOfWork/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/classificationtype/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getConfigs: function () {\r\n return httpClient.get(\"/api/v1/client/config/\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/companyliabilityinsurance/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n excel: function (params) {\r\n return httpClient({ url: \"/api/v1/company/excel\", method: \"POST\", responseType: \"blob\", data: params });\r\n },\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/company/get\");\r\n },\r\n getLookup: function () {\r\n return httpClient.get(\"/api/v1/company/getlookup\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/company/get/\" + id);\r\n },\r\n getByTypeahead: function (query) {\r\n return httpClient.get(\"/api/v1/company/gettbyypeahead?query=\" + query);\r\n },\r\n getMemberships: function (id) {\r\n return httpClient.get(\"/api/v1/company/getmemberships/\" + id);\r\n },\r\n getNotifications: function () {\r\n return httpClient.get(\"/api/v1/company/getnotifications\");\r\n },\r\n getUserEmails: function (companyIds) {\r\n return httpClient.post('/api/v1/company/getuseremails', companyIds)\r\n },\r\n getUsers: function (payload) {\r\n return httpClient.post('/api/v1/company/users', payload)\r\n },\r\n getAlias: function (company) {\r\n return httpClient({ method: 'post', url: '/api/v1/company/alias', data: company });\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/company/put/' + data.id : '/api/v1/company/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n search: function (searchCriteria) {\r\n return httpClient.post('/api/v1/company/search', searchCriteria)\r\n },\r\n signupCreate: function (data) {\r\n return httpClient.post('/api/v1/public/signup/create', data)\r\n },\r\n signupCompanyLookup: function (alias) {\r\n return httpClient.get('/api/v1/public/signup/companylookup?alias=' + alias)\r\n },\r\n signupJoin: function (data) {\r\n return httpClient.post('/api/v1/public/signup/join', data)\r\n },\r\n saveCompanyFile(uploadedFile, companyId, uploadType) {\r\n var formData = new FormData();\r\n\r\n formData.append(\"companyId\", companyId);\r\n formData.append(\"uploadedFile\", uploadedFile);\r\n formData.append(\"uploadType\", uploadType);\r\n\r\n return httpClient.post('/api/v1/company/savefile', formData, { headers: { 'Content-Type': 'multipart/form-data' } })\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/companysearch/delete/\" + id);\r\n },\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/companysearch/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/companysearch/get/\" + id);\r\n },\r\n save: function (params) {\r\n return httpClient.post('/api/v1/companysearch/post', params)\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/contacttype/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/contacttype/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/contacttype/put/' + data.id : '/api/v1/contacttype/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/contacttype/delete/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n calendar: function(searchCriteria) {\r\n return httpClient.post(\"/api/v1/dashboard/calendar\", searchCriteria);\r\n },\r\n get admin() {\r\n return {\r\n overview: function () {\r\n return httpClient.get('/api/v1/dashboard/admin/overview')\r\n },\r\n dismissalbtaddenda: function (searchCriteria) {\r\n return httpClient.post(\"/api/v1/dashboard/admin/dismissalbtaddenda\", searchCriteria);\r\n },\r\n dismissalsearch: function (searchCriteria) {\r\n return httpClient.post(\"/api/v1/dashboard/admin/dismissalsearch\", searchCriteria);\r\n },\r\n search: function (searchCriteria) {\r\n return httpClient.post(\"/api/v1/dashboard/admin/search\", searchCriteria);\r\n }\r\n }\r\n },\r\n get member() {\r\n return {\r\n createdprojects: function (searchCriteria) {\r\n return httpClient.post(\"/api/v1/dashboard/member/createdprojects\", searchCriteria);\r\n },\r\n invitedprojects: function (searchCriteria) {\r\n return httpClient.post(\"/api/v1/dashboard/member/invitedprojects\", searchCriteria);\r\n },\r\n membership: function () {\r\n return httpClient.get(\"/api/v1/dashboard/member/membership\");\r\n },\r\n dismissalsearch: function (searchCriteria) {\r\n return httpClient.post(\"/api/v1/dashboard/member/dismissalsearch\", searchCriteria);\r\n },\r\n search: function (searchCriteria) {\r\n return httpClient.post(\"/api/v1/dashboard/member/search\", searchCriteria);\r\n }\r\n }\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n dismiss: function (id) {\r\n return httpClient.post('/api/v1/dismissproject/dismiss/' + id)\r\n },\r\n search: function (searchCriteria) {\r\n return httpClient.post('/api/v1/dismissproject/search', searchCriteria)\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n sendCompanyEmail: function (email) {\r\n return httpClient.post('/api/v1/email/company', email)\r\n },\r\n sendIndividual: function (email) {\r\n return httpClient.post('/api/v1/email/individual', email)\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n moveFiles: function (params) {\r\n return httpClient.post(\"/api/v1/file/move\", params)\r\n },\r\n downloadFile: function (id, cancelToken) {\r\n return httpClient({\r\n url: \"/api/v1/file/download/\" + id,\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n timeout: 0,\r\n cancelToken: cancelToken\r\n });\r\n },\r\n deleteFile: function (id, data) {\r\n return httpClient.delete(\"/api/v1/file/delete/\" + id, { data });\r\n },\r\n deleteSelectedFiles: function (data) {\r\n return httpClient.delete(\"/api/v1/file/deleteselectedfiles\", { data });\r\n },\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/folder/get/\" + id);\r\n },\r\n createFolder: function (data) {\r\n return httpClient.post(\"/api/v1/folder/post\", data);\r\n },\r\n deleteFolder: function (id) {\r\n return httpClient.delete(\"/api/v1/folder/delete/\" + id);\r\n },\r\n deleteSelectedFolders: function (ids) {\r\n return httpClient.post(\"/api/v1/folder/deleteselectedfolders\", ids);\r\n },\r\n download: function (id, cancelToken) {\r\n return httpClient({\r\n url: \"/api/v1/folder/download/\" + id,\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n timeout: 0,\r\n cancelToken: cancelToken\r\n });\r\n },\r\n downloadSelectedFiles: function (id, data, cancelToken) {\r\n return httpClient.post(\"/api/v1/folder/downloadselected/\" + id, data, {\r\n responseType: \"blob\",\r\n timeout: 0,\r\n cancelToken: cancelToken\r\n })\r\n },\r\n getDisplayStructure: function (id) {\r\n return httpClient.get(\"/api/v1/folder/getdisplaystructure/\" + id);\r\n },\r\n updateFolder: function (id, data) {\r\n return httpClient.put(\"/api/v1/folder/put/\" + id, data);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/funding/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/labourType/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/labourOfWork/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n staticimage: function () {\r\n return httpClient.get(\"/api/v1/map/staticimage\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n get: function () {\r\n return httpClient.get(\"/api/v1/membershipplan\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n create: function (params) {\r\n return httpClient.post('/api/v1/news/post', params);\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/news/delete/\" + id);\r\n },\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/news/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/news/get/\" + id);\r\n },\r\n getDashboardNews: function () {\r\n return httpClient.get(\"/api/v1/news/getdashboardnews\");\r\n },\r\n save: function ({ data, isEdit }) {\r\n if (isEdit === true ) {\r\n return this.update(data);\r\n }\r\n return this.create(data);\r\n },\r\n update: function (params) {\r\n return httpClient.put('/api/v1/news/put/' + params.id, params);\r\n },\r\n toggle: function (direction) {\r\n return httpClient.put('/api/v1/news/toggle', direction);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/owner/get\");\r\n },\r\n GetAllByProjectId: function (projectId) {\r\n return httpClient.get(\"/api/v1/owner/getallbyprojectid/\" + projectId);\r\n },\r\n getByTypeahead: function (query) {\r\n return httpClient.get(\"/api/v1/owner/gettbyypeahead?query=\" + query);\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/owner/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/owner/put/' + data.id : '/api/v1/owner/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n search: function (searchCriteria) {\r\n return httpClient.post('/api/v1/owner/search', searchCriteria)\r\n },\r\n delete: function (id) {\r\n return httpClient.delete('/api/v1/owner/delete/' + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/ownertype/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/ownertype/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/ownertype/put/' + data.id : '/api/v1/ownertype/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/ownertype/delete/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/participanttype/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/participanttype/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/participanttype/put/' + data.id : '/api/v1/participanttype/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/participanttype/delete/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n export: function (params) {\r\n return httpClient({ url: \"/api/v1/payment/excel\", method: \"POST\", responseType: \"blob\", data: params });\r\n },\r\n getProviderDetailsByProject: function (projectId) {\r\n return httpClient.get(\"/api/v1/payment/getproviderdetailsbyproject/\" + projectId);\r\n },\r\n membershipUpgrade: function (payload) {\r\n return httpClient.post(\"/api/v1/payment/membership/upgrade\", payload);\r\n },\r\n post: function (params) {\r\n return httpClient.post(\"/api/v1/payment/post\", params);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/permissiongroup/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/procurementtype/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/procurementtype/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/procurementtype/put/' + data.id : '/api/v1/procurementtype/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/procurementtype/delete/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n requestToBid: function (params) {\r\n return httpClient.post('/api/v1/projectbid/requesttobid', params)\r\n },\r\n removeFromBid: function (params) {\r\n return httpClient.post('/api/v1/projectbid/removefrombid', params)\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nconst apiBase = \"/api/v1/project\";\r\n\r\nexport default {\r\n export: function (params) {\r\n return httpClient({ url: `${apiBase}/excel`, method: \"POST\", responseType: \"blob\", data: params });\r\n },\r\n activityReport: function (projectId) {\r\n return httpClient({ url: `${apiBase}/activityreport/${projectId}`, method: \"POST\", responseType: \"blob\" });\r\n },\r\n bulletinReport: function (params) {\r\n return httpClient({ url: `${apiBase}/bulletinreport`, method: \"POST\", responseType: \"blob\", data: params });\r\n },\r\n getAll: function () {\r\n return httpClient.get(`${apiBase}/get`);\r\n },\r\n getById: function (id) {\r\n return httpClient.get(`${apiBase}/get/` + id);\r\n },\r\n getDetailsById: function (id) {\r\n return httpClient.get(`${apiBase}/details/` + id);\r\n },\r\n getForLoggedInUser: function () {\r\n return httpClient.get(`${apiBase}/projectsforloggedinuser`);\r\n },\r\n orderPrint: function (id) {\r\n return httpClient.post(`${apiBase}/orderprint/` + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? `${apiBase}/put/` + data.id : `${apiBase}/post`;\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n search: function (searchCriteria) {\r\n return httpClient.post(`${apiBase}/search`, searchCriteria)\r\n },\r\n searchWithKeywordDensity: function (searchCriteria) {\r\n return httpClient.post('/api/v1/project/search/keyworddensity', searchCriteria)\r\n },\r\n subscribe: function (id) {\r\n return httpClient.post(`${apiBase}/subscribe/` + id);\r\n },\r\n unsubscribe: function (id) {\r\n return httpClient.post(`${apiBase}/unsubscribe/` + id);\r\n },\r\n sendToBCBid(id) {\r\n return httpClient.post(`${apiBase}/sendtobcbid/` + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/projectsearch/delete/\" + id);\r\n },\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/projectsearch/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/projectsearch/get/\" + id);\r\n },\r\n save: function (params) {\r\n return httpClient.post('/api/v1/projectsearch/post', params)\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getKeywordDensityByProjectId: function (keyword, projectId) {\r\n let url = `api/v1.0/DocumentSearch/keyword/${keyword}/project/${projectId}`;\r\n return httpClient({ baseURL: process.env.VUE_APP_DOCUMENT_SEARCH_API_URL, url: url, method: \"GET\" });\r\n },\r\n getKeywordHighlightsByProjectId: function (keyword, projectId) {\r\n let url = `api/v1.0/DocumentSearch/keyword/${keyword}/project/${projectId}/highlights`;\r\n return httpClient({ baseURL: process.env.VUE_APP_DOCUMENT_SEARCH_API_URL, url: url, method: \"GET\" });\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/province/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/country/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/role/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/role/get/\" + id);\r\n },\r\n purchasable: function () {\r\n return httpClient.get(\"/api/v1/role/purchasable/\");\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/role/put/' + data.id : '/api/v1/role/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/role/delete/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/serviceregion/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/serviceregion/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/serviceregion/put/' + data.id : '/api/v1/serviceregion/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/serviceregion/delete/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/socialmediatype/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/tenderstage/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/tenderstage/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/tenderstage/put/' + data.id : '/api/v1/tenderstage/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/tenderstage/delete/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/tradeagreement/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/tradeagreement/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/tradeagreement/put/' + data.id : '/api/v1/tradeagreement/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/tradeagreement/delete/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n authenticate: function (model) {\r\n return httpClient.post('/api/v1/user/authenticate', model)\r\n },\r\n create: function (params) {\r\n return httpClient.post('/api/v1/user/post', params);\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/user/delete/\" + id);\r\n },\r\n forgotPassword: function (params) {\r\n return httpClient.post(\"/api/v1/user/forgotpassword\", params);\r\n },\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/user/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/user/get/\" + id);\r\n },\r\n profile: function (params) {\r\n return httpClient.patch(\"/api/v1/user/profile/\" + params.id, params);\r\n },\r\n resetPassword: function (params) {\r\n return httpClient.post(\"/api/v1/user/passwordreset\", params)\r\n },\r\n save: function ({ data, isEdit }) {\r\n if (isEdit === true ) {\r\n return this.update(data);\r\n }\r\n return this.create(data);\r\n },\r\n search: function (searchCriteria) {\r\n return httpClient.post('/api/v1/user/search', searchCriteria)\r\n },\r\n update: function (params) {\r\n return httpClient.put('/api/v1/user/put/' + params.id, params);\r\n },\r\n verifyEmail: function (email) {\r\n return httpClient.get('/api/v1/user/verify/email/?email=' + encodeURIComponent(email));\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/zone/get\");\r\n },\r\n getAllPublic: function () {\r\n return httpClient.get(\"/api/v1/public/zones\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/zone/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/zone/put/' + data.id : '/api/v1/zone/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/zone/delete/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/timezone/get\");\r\n },\r\n getById: function (id) {\r\n return httpClient.get(\"/api/v1/timezone/get/\" + id);\r\n },\r\n save: function ({ data, isEdit }) {\r\n let http = isEdit ? 'put' : 'post'\r\n let url = isEdit ? '/api/v1/timezone/put/' + data.id : '/api/v1/timezone/post';\r\n return httpClient({ method: http, url: url, data: data });\r\n },\r\n delete: function (id) {\r\n return httpClient.delete(\"/api/v1/timezone/delete/\" + id);\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/licence/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getAll: function () {\r\n return httpClient.get(\"/api/v1/unionaffiliation/get\");\r\n }\r\n};\r\n","import httpClient from \"@/services/base.service.js\";\r\n\r\nexport default {\r\n getRecaptchaKey: function () {\r\n return httpClient.get(\"/api/v1/clientsetting/recaptchakey\");\r\n }\r\n};\r\n","import Vue from 'vue';\r\n\r\n// Create global event bus (for non-essential state changes only.)\r\nexport const EventBus = new Vue();\r\n"],"sourceRoot":""}