{"version":3,"sources":["_types/commonTypes.ts","_actions/tenderActions.ts","_constants/apiConstants.ts","_actions/codeListActions.ts","_mappers/codeListMapper.ts","_actions/userActions.ts","_api/tenderApi.ts","_reducers/partialInitialStates.ts","_mappers/tenderMapper.ts","_libs/history.tsx","_constants/routesConstants.ts","_actions/myTendersAction.ts","_api/tenderSupplierApi.ts","_constants/externalLoginConstants.ts","_api/userApi.ts","_libs/tokenStorageManager/tokenStorageManager.ts","_components/toasts/toast.tsx","_api/codeListApi.ts","_libs/utils.ts","_constants/commonConstants.ts","_actions/uiActions.ts","_actions/wikiActions.ts","_api/wikiApi.ts","_actions/commonActions.ts","_types/tenderTypes.ts","_mappers/commonMapper.ts","_actions/alertActions.ts","_actions/notificationActions.ts","_api/notificationApi.ts","_libs/setDefaultAuthorizationHeader.ts","_libs/contexts/LocalizationContext.tsx","_mappers/userMapper.ts","_libs/helpers.ts","_actions/contactsActions.ts","_mappers/tenderSupplierMapper.ts","_actions/connectionActions.ts","_api/adminApi.ts","_components/icons/MaterialIcon.tsx","_libs/tokenStorageManager/tokenStorageManagerFactory.ts","_actions/admin/localizationActions.ts","_mappers/adminMapper.ts","_libs/calculator.ts","_api/contactsApi.ts","_reducers/myTendersReducer.ts","_actions/admin/newsletterActions.ts","_constants/formConstants.ts","_libs/regexs.ts","_actions/tendersActions.ts","_actions/governmentTendersActions.ts","_api/settingsApi.ts","_actions/guideActions.ts","core/Maintenance.tsx","_components/routing/ScrollToTop.tsx","_libs/axiosSettings.ts","_libs/dateExtensionMethods.ts","_libs/LuckyOrange.ts","_observers/initObservers.ts","_observers/tenderObservers.ts","_observers/userObservers.ts","_store/configureStore.ts","index.tsx","_mappers/notificationMapper.ts","core/Maintenance.module.scss","_libs/String.ts","_components/actions/Action.tsx","_libs/collapsible.ts","_libs/actionDispatcher.ts","_reducers/tenderReducer.ts","_assets/images/favicon-notification.png","_components/grid/Row.tsx","_components/buttons/Button.tsx","_validation/validator.ts","_components/buttons/pageSidebar/PageSidebarButton.tsx","_components/buttons/FormButton.tsx","_libs/labelsManager.ts","_actions/usersActions.ts","_components/inputs/TableCellInput.tsx","_libs/hooks/useTooltip.ts","_components/inputs/checkboxes/Checkbox.tsx","_libs/hooks/useWindowWidth.ts","_libs/contexts/MediaContext.tsx","_components/inputs/checkboxes/FilledInCheckbox.tsx","_components/routing/GoogleAnalytics.tsx","_components/cards/Card.module.scss","newAuction/components/HideIrrelevantSuppliersButton.tsx","_actions/tenderTemplatesActions.ts","newAuction/components/lists/MustHaveConditionsListRow.tsx","newAuction/components/lists/MustHaveConditionsList.tsx","newAuction/components/MustHaveConditions.tsx","newAuction/components/MustHaveConditionsContainer.tsx","_components/notifications/Notification.tsx","_components/notifications/Notifications.tsx","_assets/images/maintenance.png","_assets/images/favicon.png","_reducers/alertReducer.ts","_reducers/authenticationReducer.ts","_reducers/registrationReducer.ts","_reducers/tenderTemplatesReducer.ts","_reducers/notificationReducer.ts","_reducers/codeListReducer.ts","_reducers/uiReducer.ts","_reducers/usersReducer.ts","_reducers/tendersReducer.ts","_reducers/governmentTendersReducer.tsx","_reducers/wikiReducer.ts","_reducers/guideReducer.ts","_reducers/ContactsReducer.ts","_reducers/commonReducer.ts","_reducers/newsletterReducer.ts","_reducers/admin/localizationReducer.ts","_reducers/admin/wikiReducer.ts","_reducers/admin/adminReducer.ts","core/reducer.ts","_middlewares/singalR/singalRMiddleware.ts","_middlewares/singalR/hubs/hub.ts","_middlewares/singalR/hubs/tenderHub.ts","_middlewares/singalR/hubs/notificationHub.ts","_middlewares/singalR/hubs/appHub.ts","_store/configureStore.prod.ts"],"names":["Role","IconPosition","InputTagName","SuppliersTenderStatus","AddressSource","Persistance","SortDirection","Color","GuideNavigationTarget","NewsletterStatus","IActionTypes","createNewTender","dispatch","getState","user","authentication","tenderService","then","tenderId","type","CREATE_TENDER_SUCCESS","payload","success","catch","error","updateTenderProps","name","value","shouldUpdateOnBackend","updateTenderPropsSuccess","UPDATE_TENDER_PROPS_SUCCESS","updateTender","currTender","tender","currentTender","updTender","res","mapTender","data","codeList","updateTenderOnBackend","items","getItemsDetailsWithIds","criteria","getCriteriaDetailsWithIds","mustHaveConditions","getMustHaveConditionsWithIds","deliveryAddressId","DeliveryAddress","AddressId","mainPictureUrl","MainPictureUrl","attachments","Attachments","map","a","id","AttachmentId","FileName","successUpdateTenderOnBe","addAnnouncement","announcement","ADD_ANNOUNCEMENT","mainPicutreUrl","UPDATE_TENDER_ON_BACKEND_SUCCESS","updateTenderStatus","statusId","UPDATE_TENDER_STATUS","loadTemplateToTender","template","LOAD_TEMPLATE_SUCCESS","loadTenderById","loadTenderSuccess","upsertDeliveryAddressCodelist","addressSource","newDeliveryAddress","err","console","log","loadTenderForAuctionOverview","scheduleTender","tenderStatusId","TenderStatus","SCHEDULED","SCHEDULE_TENDER_SUCCESS","toggleFavoriteTender","isFavorite","addTenderToFavoritesBE","TOGGLE_FAVORITE","duplicateTender","LOAD_TENDER_SUCCESS","addNewItemDetails","item","ADD_NEW_ITEM_DETAILS_SUCCESS","updateItemDetails","index","UPDATE_ITEM_DETAILS_SUCCESS","removeItemDetails","REMOVE_ITEM_DETAILS_SUCCESS","addNewCriterionDetails","criterion","ADD_NEW_CRITERION_DETAILS_SUCCESS","updateCriterionDetails","UPDATE_CRITERION_DETAILS_SUCCESS","removeCriterionDetails","REMOVE_CRITERION_DETAILS_SUCCESS","uploadAttachments","errorCounter","START_UPLOADING_ATTACHMENTS","localization","common","promises","forEach","push","ShowErrorToast","String","format","attachment_upload_error_toast","autoClose","Promise","all","END_UPLOADING_ATTACHMENTS","resolve","ADD_NEW_ATTACHMENTS_SUCCESS","uploadMainPicture","file","url","UPLOAD_MAIN_PICTURE_SUCCESS","removeMainPicture","REMOVE_MAIN_PICTURE_SUCCESS","removeAttachment","attachment","list","REMOVE_ATTACHMENT_SUCCESS","resetCurrentTender","RESET_NEW_TENDER_SUCCESS","addNewMusHaveCondition","condition","conditionWithId","mapMustHaveConditionFromDTO","MustHaveConditions","length","ADD_NEW_MUST_HAVE_CONDITION_SUCCESS","updateMustHaveCondition","UPDATE_MUST_HAVE_CONDITION_SUCCESS","removeMustHaveCondition","REMOVE_MUST_HAVE_CONDITION_SUCCESS","updateNewDeliveryAddress","address","newAddress","updateNewDeliveryAddressProps","updatedTender","updateNewDeliveryAddressSuccess","mapDtoToAddress","countries","UPDATE_NEW_DELIVERY_ADDRESS_PROPS_SUCCESS","addSupplierByEmail","email","createSupplierBE","ErrorMessage","reject","Supplier","supp","mapToSupplierFromTenderSupplierDTO","suppliersInvitationStatuses","supplier","addSupplier","unblockSupplier","userName","unblockSupplierBE","status","UNBLOCK_SUPPLIER","unblockSupplierSuccess","find","s","blockSupplier","message","blockSupplierBE","updateSuppliersParictipationStatus","BLOCKED","updateSuppliersBlockReason","reason","UPDATE_SUPPLIERS_BLOCK_REASON","addSupplierSuccess","ADD_SUPPLIER_SUCCESS","removeSupplier","tenderSupplierApi","removeSupplierFromTender","username","REMOVE_SUPPLIER_SUCCESS","updateSuppliersMHCResponses","responses","saveMHCResponses","r","MustHaveConditionId","mhcId","NewResponse","response","updateSuppliersMHCResponsesSuccess","UPDATE_SUPPLIERS_MHC_RESPONSES","sendInvitationsToSuppliers","suppliers","emailsToSend","sendInvitationsToSuppliersBE","sendInvitationsToSuppliersSuccess","x","INVITATION_SENT","sendInvitationToSupplier","emails","invitationStatus","SEND_INVITATIONS_TO_SUPPLIERS","leaveAuction","leaveTender","respondToInvitation","respondToInvitationBySellerBE","invitationStatusCodeList","RESPOND_TO_INVITATION_BY_SUPPLIER_SUCCESS","uploadSuppliersAttachments","START_UPLOADING_SUPPLIERS_ATTACHMENTS","currUser","uploadSuppliersAttachmentBE","addSuppliersAttachmentsSuccess","END_UPLOADING_SUPPLIERS_ATTACHMENTS","ADD_NEW_SUPPLIERS_ATTACHMENTS_SUCCESS","removeSuppliersAttachment","removeSuppliersAttachmentSuccess","REMOVE_SUPPLIERS_ATTACHMENT_SUCCESS","submitTenderChange","SUBMIT_CHANGE_SUCCESS","updateSuppliersItemBid","suppliersItemBid","UPDATE_SUPPLIERS_ITEM_BID_SUCCESS","updateSuppliersCriterionBid","suppliersCriterionBid","UPDATE_SUPPLIERS_CRITERION_BID_SUCCESS","updateSuppliersOfferDescription","description","editOfferDescriptionBE","updateSuppliersOfferDescriptionSuccess","UPDATE_SUPPLIERS_OFFER_DESCRIPTION_SUCCESS","updateSuppliersPositions","suppliersPositions","UPDATE_SUPPLIERS_POSITIONS_SUCCESS","applyToCurrentTender","mhcResponses","responsesDTO","m","applyToPublicTender","goBackToAuction","rejoinTender","PENDING_COMEBACK","UPDATE_SUPPLIERS_PARTICIPATION_STATUS","updateSuppliersLastActivity","date","UPDATE_SUPPLIERS_LAST_ACTIVITY","addDemoBidders","addDemoBiddersBE","supplierDto","addBidChange","bid","ADD_BID_CHANGE","removeBidChange","REMOVE_BID_CHANGE","toggleHideIrrelvantSuppliers","TOGGLE_HIDE_IRRELEVANT_SUPPLIERS","API_URL","process","GOOGLE_MAP_URL","RECAPTCHA_SITE_KEY","IMAGE_ORIGIN","window","location","origin","loadCurrenciesCodeList","codeListService","currencies","LOAD_CURRENCIES_SUCCESS","loadUnitsOfMeasurementCodeList","unitsOfMeasurement","LOAD_UNITS_OF_MEASUREMENT_SUCCESS","loadUnitsOfTenderCriterionCodeList","unitsOfTenderCriterion","LOAD_UNITS_OF_TENDER_CRITERION_SUCCESS","loadIndustriesCodeList","industries","LOAD_INDUSTRIES_SUCCESS","loadCanadaProvinces","provinces","LOAD_CANADA_PROVINCES_SUCCESS","loadUSAStates","states","LOAD_USA_STATES_SUCCESS","loadCountriesCodeList","LOAD_COUNTRIES_SUCCESS","loadTenderStatusesCodeList","statuses","LOAD_TENDER_STATUSES_SUCCESS","loadAddressesCodeList","addresses","result","element","AddressDto","mapAddresses","LOAD_ADDRESSES_CODELIST_SUCCESS","loadSuppiersInvitationStatusCodeList","LOAD_SUPPLIERS_INVITATION_STATUSES_SUCCESS","tenderAddressSource","tenderAddress","codelistAddresses","country","zipCode","streetAddress","addressId","findIndex","DELIVERY","updateAddressCodeList","addNewAddress","upsertAddressCodelist","UPDATE_ADDRESS_CODELIST_SUCCESS","ADD_NEW_ADDRESS_SUCCESS","resetAddressesCodeList","RESET_ADDRESSES_SUCCES","tenderCodelistsLoaded","TENDER_CODELISTS_LOADED_SUCCESS","request","LOGIN_REQUEST","LOGIN_SUCCESS","failure","LOGIN_FAILURE","login","password","options","setDefaultAuthorizationHeader","userService","storage","staySignedIn","localStorage","sessionStorage","storageManager","TokenStorageManager","setJwtToken","access_token","setRefreshToken","refresh_token","authenticateUser","externalToken","alertActions","error_description","impersonate","externalLogin","token","refreshToken","Name","successAuthenticateUser","IsUserProfileFilled","InRoles","moment","Expires","toDate","SurveyCompleted","RemainingFreeTenders","Created","commonActions","setPendingCounters","PendingAuctionInvitationsCount","PendingPublicBiddersCount","actionDispatcher","dispatchAllStartupActions","userInfoResponseErrors","NOT_ACTIVATED","external_login_failed_not_activated","external_login_failed_not_authenticated","fillSurvey","SURVEY_FILLED","authentication_failed","isProfileFilled","roles","expires","surveyCompleted","remainingFreeTenders","creationDate","AUTHENTICATION_SUCCESS","logout","LOGOUT","removeItem","JWT_TOKEN","REFRESH_TOKEN","register","subscribeForNewsletter","tenderRedirectQueryString","utmString","REGISTER_REQUEST","REGISTER_SUCCESS","redirect","history","pathname","routes","LOGIN","search","qs","stringify","registration_successful","REGISTER_FAILURE","Error","loadUserDetails","mapToUser","LOAD_USER_DETAILS","userDetailsLoaded","updateUserDetails","dto","mapToUserDetailsDTO","UPDATE_USER_DETAILS","isEmailConfirmed","ContactEmailConfirmed","ShowSuccessToast","save_profile_success_toast","save_profile_error_toast","updateCompanyDetails","company","mapToCompanyDTO","UPDATE_COMPANY_DETAILS","saveUserAddress","successSaveUserAddress","saveCompanyAddress","successSaveCompanyAddress","saveAddressToProfile","saveToUserAddress","mapAddressToDto","USER","COMPANY","updateBillingInfo","UPDATE_BILING_INFO","role","reduceRemainingFreeTenders","REDUCE_REMAINING_FREE_TENDERS","SAVE_ADDRESS_TO_USER","SAVE_ADDRESS_TO_COMPANY","USER_DETAILS_LOADED","TENDER_URL","TENDER_API_URL","fetchMyTendersBE","currentPage","pageLimit","filter","sort","axios","get","params","searchByColumn","columnId","order","direction","pageNo","recordsPerPage","fetchTenderBE","fetchLastUnfinishedTenderBE","createNewTenderBE","post","duplicateTenderBE","CancelTender","HideTender","hidden","patch","uploadAttachmentBE","formData","headers","delete","downloadAttachmentBE","attachmentId","responseType","removeAttachmentBE","removeTenderDraft","updateTenderBE","deliveryAddressChanged","mapToTenderDTO","removeTender","Id","prolongTender","additionalDuration","config","put","SearchAuctionsBE","keywords","minimalExpectedValue","maximalExpectedValue","auctionNameCheck","deliveryAddressCheck","buyerDetailsCheck","AuctionGroup","DeliveryAddressGroup","BuyerDetailGroup","SearchGovAuctionsBE","fetchTendersBE","ids","pageNumber","PageNo","fetchGovTendersBE","scheduleTenderBE","tenderApi","fetchTenderTemplates","messageToAllBidders","msg","fetchLatestPublicTenders","pingActivityOnTender","shareAuctionFacebook","initialCountry","code","capital","region","banned","initialDeliveryAddressState","streetAddress2","city","state","gpsCoords","lat","lng","initialCompanyState","web","position","numberOfEmployees","registrationId","taxId","branches","vatId","yearlyRevenue","initialUserState","coveredUsername","rating","firstName","lastName","accountType","defaultCurrency","facebookProfile","favouriteAuctionKeywords","linkedinProfile","phoneNumber","isSearcheable","wantToBuy","wantToSell","codeLists","Industries","industry","i","itemDetails","ItemsDetails","ItemDetailId","unitPrice","UnitPrice","unitOfMeasurement","UnitOfMeasurement","quantity","Quantity","expPrice","ExpPrice","bidStep","BidStep","bestBid","BestBid","Description","criteriaDetails","CriteriaDetails","CriterionId","unit","Unit","crit","winningThreshold","WinningThreshold","winningTreshold","thresh","weight","Weight","minBid","MinBid","maxBid","MaxBid","Suppliers","text","MustHaveCondition","hasAdditionalInfo","AdditionalInfo","announcements","TenderAnnouncements","Announcement","TenderId","tenderStatus","Keywords","currency","Currency","totExpPrice","TotalExpectedPrice","totExpPriceInUserCurr","TotalExpectedPriceForUser","itemsDetails","isUploading","City","c","CountryId","State","Street","StreetLine2","PostalCode","GPS_NS","GPS_EW","isPublic","IsPublic","IsFavorite","duration","Duration","proposalEndDate","ProposalEndDateTime","toISOString","startDate","StartDateTime","createdDate","CreateDateTime","stepProgress","TenderStepProgress","canceledReason","CanceledReason","isVatIncluded","IsVatIncluded","owner","Owner","Email","Rating","FirstName","LastName","UserName","transformToStarUsername","CompanyId","CompanyName","VatId","totalActiveBidders","TotalActiveBidders","criteriaBids","critBid","Bid","Number","itemsBids","itemBid","mustHaveConditionResponses","Username","MhcResponses","CriteriaBids","RejectedReason","rejectedReason","ItemsBids","OveralPosition","overallPosition","SupplierStatusId","Useremail","OfferDescription","offerDescription","LastActive","lastActivityDate","deliveryAddress","mapTenderTemplate","IsDemo","Tender","auctionStartDTT","Date","replace","setSeconds","proposalEndDTT","isDemo","NEW_DELIVERY","startDateTime","proposalEndDateTime","getMandatoryMustHaveCondition","t","mapTendersLightWeight","tendersLW","tenderLW","ID","totalActiveBiddersCount","TotalActiveBiddersCount","createDate","newAppliesCount","NewAppliesCount","isOwner","ownerName","OwnerName","ownerCompanyId","OwnerCompanyId","StartDate","supplierStatus","SuplierStatus","totalExpectedPrice","Value","TenderStatusId","mapTenderLWfromTender","startsWith","itemsDetailsCalculator","calculateTotalExpPrice","join","mapTenderLWfromTenderLWDTO","mapToSuppliersItemBid","itemBidDTO","itemId","ItemId","toString","mapToSuppliersCriteriaBid","criteriaId","mapToSuppliersPositionFromDTO","Position","slice","mapSavings","currencyId","CreatedDate","amount","IsOwner","Savings","FinalPrice","tenderName","TenderName","createBrowserHistory","adminRoutes","IMyTendersActionTypes","saveTenderLW","tenderIndex","myTenders","tenders","updateTenderSuccess","saveNewTenderSuccess","addTenderLW","addTenderToFavorite","add_tender_to_favorites_success_toast","add_tender_to_favorites_error_toast","UPDATE_TENDER_LW_SUCCESS","updateTenderLwActiveBidders","count","updateTenderLwNewApplies","updateTenderLwVisibility","visibility","updateTenderLwStatus","UPDATE_TENDER_LW_STATUS_SUCCESS","updateTenderLwStatusSuccess","updateTenderLwSuppliersStatus","UPDATE_TENDER_LW_SUPPLIERS_STATUS_SUCCESS","updateTenderLwSuppliersStatusSuccess","SAVE_NEW_TENDER_LW_SUCCESS","sortMyTenders","currPage","SORT_REQUEST_START","sortRequestStart","loadMyTenders","finally","SORT_REQUEST_END","setMyTendersFilter","SET_FILTER","resetMyTendersFilter","initialState","clearMyTenders","setMyTendersSearch","SET_SEARCH","filterMyTendersByName","filterRequestStart","filterRequestEnd","filterMyTenders","FILTER_REQUEST_START","FILTER_REQUEST_END","MyAuctions","totalCount","TotalResults","LOAD_MY_TENDERS_SUCCESS","REMOVE_TENDER_SUCCESS","toggleFavoriteMyTender","TOGGLE_FAVORITE_TENDER","CLEAR","userNames","respondToPublicBidderBE","publicUser","bidToItem","favorite","MhcResponse","Response","bidToCriterion","criterionId","finalizeProposal","externalLoginIdentifiers","returnUrl","messageEn","require","ACCOUNT_API_URL","loginBE","grant_type","dayOfweek","logoutBE","registerBE","JSON","Password","ConfirmPassword","confirmationPassword","RegisterUTMParameters","ModelState","hasOwnProperty","registration_cvalid_off","checkEmailUniquenessBE","fetchUserInfoBE","Authorization","handleUserInfoResponse","fetchExternalLoginsBE","generateState","externalLoginPaths","Facebook","Google","Twitter","Url","activateUserBE","userId","changePasswordBE","oldPassword","newPassword","confirmPassword","OldPassword","NewPassword","checkExternalToken","fetchUserDetailsBE","updateUserDetailsBE","updateCompanyDetailsBE","saveAddressToProfileBE","userAddress","activateContactEmail","SearchUsersBE","searchOnlyCompanies","supplierUsernameCheck","supplierAddressCheck","searchInCompanies","searchInUserdetails","addressGroup","detailsGroup","RequestDeleteProfile","DeleteProfile","fetchUsersByCompanyIds","path","assign","IsAuthentificated","IsActivated","NOT_AUTHENTICATED","userApi","requestResetPassword","checkResetToken","resetPassword","secretToken","SecretToken","reportIssue","getJwtToken","getRefreshToken","this","getItem","setItem","removeJwtToken","removeRefreshTOken","getTokenPersistance","LOCAL","SESSION","NONE","toast","className","iconName","iconClassName","ShowInfoToast","CODELIST_URL","fetchCurrencies","mapCurrency","fetchUnitsOfMeasurement","mapUnitsOfMeasurement","fetchIndustries","mapIndustry","fetchUnitsOfTenderCriterion","mapUnitsOfTenderCriterion","fetchCountries","mapCountries","fetchSuppliersInvitationStatuses","mapSupplierInvitationStatuses","fetchTenderStatuses","mapTenderStatus","fetchWikiCategories","mapCategory","fetchAddressesBE","fetchCanadaProvinces","mapCanadaProvince","fetchUSAStates","mapUSStates","Code","Capital","Region","Banned","UnitOfTenderCriterionId","Data","IndustryId","display","Display","UnitOfMeasurementId","CanadaProvinceId","USStateId","CurrencyId","symbol","Symbol","resetBids","bids","debounceEvent","debouncedEvent","debounce","e","persist","updateFavicon","faviconUrl","link","document","querySelector","createElement","rel","href","getElementsByTagName","appendChild","momentWithSecAndMsReset","set","ms","SaveFile","fileData","fileName","FileSaver","saveAs","sliderSettings","slidesToShow","slidesToScroll","responsive","breakpoint","settings","b64EncodeUnicode","str","btoa","encodeURIComponent","match","p1","fromCharCode","isNumber","trim","isNaN","dateIsValid","getTime","getQueryParams","parse","ignoreQueryPrefix","INSERT_NEW_ADDRESS_ID","YES_OR_NO_CRITERION_UNIT_ID","HIDE_ON_SMALL","HIDE_ON_MEDIUM_DOWN","HIDE_ON_LARGE_UP","paginationTables","AUCTION_SEARCH_RESULT","GOV_AUCTION_SEARCH_RESULT","SUPPLIERS_SEARCH_RESULT","MANIFESTO_KEY","toggleInviteByEmailSection","TOGGLE_INIVTE_BY_EMAIL_SECTION","toggleEditDeliveryCard","card","isCardShown","ui","auctionDataStep","isEditDeliveryCardOpened","collapsible","collapseSection","expandSection","TOGGLE_EDIT_DELIVERY_CARD","toggleAddFromBestauctionUsersCard","TOGGLE_ADD_FROM_BESTAUCTION_USERS_CARD","toggleAddFromMyContactsCard","TOGGLE_ADD_FROM_MY_CONTACTS_CARD","toggleNotificationPanel","TOGGLE_NOTIFICATION_PANEL","toggleAuctionEndedNotification","hasEnded","TOGGLE_AUCTION_ENDED_NOTIFICATION","toggleDetailedTableView","TOGGLE_DETAILED_TABLE_VIEW","toggleSaveAddressToUserProfile","TOGGLE_SAVE_ADDRESS_TO_USER_PROFILE","toggleSaveAddressToCompanyProfile","TOGGLE_SAVE_ADDRESS_TO_COMPANY_PROFILE","IWikiActionTypes","ADMIN_API_URL","fetchWikiContent","mapWikiContent","question","Question","answer","Answer","categoryId","CategoryId","wikiApi","addCategory","wikiCategoryName","editCategory","category","wikiCategoryId","removeCategory","addQuestionAndAnswer","body","editQuestionAndAnswer","removeQuestion","QuestionId","loadWikiContent","wikiContent","LOAD_WIKI_CONTENT","loadWikiCategories","codeListApi","wikiCategories","LOAD_WIKI_CATEGORIES","addQuestion","ADD_QUESTION_AND_ANSWER","addWikiCategory","ADD_WIKI_CATEGORY","editQuestion","EDIT_WIKI_QUESTION_AND_ANSWER","editWikiCategory","EDIT_WIKI_CATEGORY","REMOVE_WIKI_QUESTION","removeWikiCategory","REMOVE_WIKI_CATEGORY","setPendingAuctionInvCount","SET_PENDING_AUCTION_INV_COUNT","setPendingPublicBiddersCount","SET_PENDING_PUBLIC_BIDDERS_COUNT","loadLocalization","adminApi","fetchOnlyFeLocalizationTexts","texts","mappedText","loc","Key","LOAD_LOCALIZATION","auctionInvitationsCount","publicBiddersCount","mapGoogleAddressComponentsToAddress","components","countryComponent","types","short_name","cityComponent","zipCodeComponent","stateComponent","routeComponent","premiseComponent","streetNumberComponent","streetLine2","long_name","normalize","SUCCESS","ERROR","clear","INotificationActionTypes","NOTIFICATION_API_URL","fetchNotificationsBE","page","countPerPage","MarkMultipleNotificationsAsReadBE","notificationsIds","addNotification","notification","faviconNotification","ADD_NOTIFICATION","loadNotifications","mapToNotifications","notifications","n","read","LOAD_NOTIFICATIONS_SUCCESS","markAllUnreadNotificationsAsRead","notifIds","notifcation","notif","favicon","MARK_ALL_UNREAD_NOTIFICATIONS_AS_READ","defaults","LocalizationContext","createContext","LocalizationProvider","children","useSelector","Provider","useLocalization","useContext","industriesCodeList","hideInfo","Company","d","idx","PhoneNumber","FacebookProfile","LinkedinProfile","DefaultCurrency","AccountType","WantToBuy","WantToSell","Country","ShowMeInPublicSearches","FavouriteAuctionKeywords","Address","NumberOfEmployees","Web","RegistrationId","TaxId","NumberOfBranches","YearlyRevenue","companyAddress","Array","from","mapToUserFromContact","UserProfile","CustomName","CompanyWeb","PersonalDescription","ExternalSorurce","scrollbarVisible","scrollHeight","clientHeight","composeShortAddressStringWithFullCountryName","composeLongAddressString","part1","matchAfterAtSign","IContactsActionTypes","removeContact","contactsApi","REMOVE_CONTACT","removeContactSuccessAction","edtitContact","customName","companyName","companyWeb","countryId","editContact","EDIT_CONTACT","addContact","hideContactInformation","ADD_CONTACT","addContactSuccessAction","loadContacts","getContacts","contacts","NoOfAllContacts","Results","json","users","LOAD_CONTACTS","loadContactsSuccessAction","sortContacts","setContactsFilter","supplierInvitationStatusCodeList","countriesCodeList","criterionBid","canReinvite","ConnectionActionTypes","signalrConnection","start","START","stop","STOP","invoke","hub","method","args","INVOKE","URL","fetchUsers","orderBy","fetchProfiles","fetchLocalizationTexts","addLocalizationText","encodedText","correction","newCorrection","editLocalizationText","removeLocalizationText","key","logErr","toEmail","ToEmail","giveTrial","days","checkLocalizationIntegrity","deleteUser","MaterialIcon","iconPosition","disabled","innerRef","restProps","ref","cs","LEFT","RIGHT","TokenStorageManagerFactory","create","persistance","loadTexts","Correction","isFeText","IsFeText","textCorrected","TextCorrected","mapLocalizationTextAdmin","LOAD_TEXTS","changeText","CHANGE_TEXT","addText","ADD_TEXT","addTextSuccessAction","editText","EDIT_TEXT","editTextSuccessAction","removeText","REMOVE_TEXT","removeTextSuccessAction","calculateSum","values","reduce","b","calculateExpectedPrice","price","calculateBidStep","toFixed","criteriaDetailsCalculator","recalculateCriteriaPriceWeight","currPriceWeight","currWeight","prevWeight","Math","round","orderByColumn","asc","fromExternal","personalDescription","isInContactList","companyId","isInContactListByUsername","isLoaded","isSorting","DESC","isFiltering","reducer","action","FAVORITE","_","toggleSubscribing","TOGGLE_SUBSCRIBING","loadNewsletterStatus","settingsApi","fetchNewsletterStatus","LOAD_STATUS_SUCCESS","SUBSCRIBE_SUCCESS","unsubscribeForNewsletter","UNSUBSCRIBE_SUCCESS","LOGIN_FORM","REGISTER_FORM","COLLABORATOR_FORM","BASIC_DATA_FORM","INVITE_SUPPLIER_BY_EMAIL_FORM","ADD_CONTACT_BY_EMAIL_FORM","INVITE_NEW_USER_FORM","CHANGE_PASSWORD_FORM","FORGOT_PASSWORD_REQUEST_FORM","FORGOT_NEW_PASSWORD_FORM","TWITTER_REGISTRATION_FORM","REPORT_ISSUE_FORM","RegExp","onlyNumbersRegexWithTowDecimalPrecision","time24hMaskRegex","dateRegex","passwordRegex","webUrlRegex","englishLetterRegex","emailRegex","ITendersActionTypes","getTenders","tendersFound","self","indexOf","tendersFoundLength","tendersToFetch","ADD_TENDERS","addUsersSuccessAction","clearTenders","CLEAR_TENDERS","toggleTenderFavorite","toggleFavorite","IGovTendersActionTypes","getGovTenders","govTenders","addTendersSuccessAction","getGovTender","clearGovTenders","toggleGovTenderFavorite","getServerTime","saveSurvey","surveyAnswer","openGuide","heading","target","guide","SET_GUIDE","setGuide","$","tapTarget","OPEN_GUIDE","closeGuide","CLOSE_GUIDE","Maintenance","cx","styles","flexWrapper","container","src","maintImg","image","ScrollToTop","prevProps","props","scrollTo","top","React","Component","withRouter","axiosSettings","setupInterceptors","interceptors","use","originalRequest","_retry","prototype","getTimeString","h","getHours","getMinutes","addDays","setDate","getDate","addHours","hours","setHours","addMinutes","minutes","setMinutes","setHoursMinutes","addSeconds","seconds","getSeconds","addMiliseconds","setMilliseconds","getMilliseconds","addTimeFromAMPM","time","ampm","timeArr","split","store","LuckyOrange","useEffect","REACT_APP_LUCKY_ORANGE_ID","__lo_site_id","wa","async","parentNode","insertBefore","tenderHasChangedObserver","observer","currentState","previousState","prevTender","shouldUpdateBackend","userHasChangedObserver","currentUserState","previousUserState","hasAddressChanged","currAddres","prevAddress","configureStore","default","App","lazy","AdminApp","syncHistoryWithStore","observe","validator","init","tokenPersistance","renderApp","ReactDOM","render","GoogleAnalytics","fallback","toastClassName","delayShow","delayHide","place","getContent","dataTip","alt","ADMIN","component","getElementById","renderMaintenance","ACTIVATION","tokenStorageManager","authenticated","removeTokens","dtoArr","title","Title","Text","Read","mapToNotification","module","exports","stringToFormat","tokens","number","Action","tooltip","icon","onClick","dataTarget","style","iconStyle","last","dataFor","data-target","data-title","data-tip","data-for","sectionHeight","height","setTimeout","setAttribute","elementTransition","transition","requestAnimationFrame","NOTIFICATIONS_PER_PAGE","loadCodeLists","MY_AUCTIONS","loadAddresses","initialAddressSource","add","hideIrrelevantSuppliers","HIDE_IRRELEVANT_SUPPLIERS_STATE_CACHE","bidsChanges","criteriaWeight","suppIndex","INVITATION_NOT_SENT","responseStatus","INVITATION_ACCEPTED","INVITATION_REJECTED_BY_BIDDER","conditions","supplierIndex","itemBids","itemIndex","criterionBids","suppPosIndex","Row","noMargin","classNames","Button","label","initValidatorMethods","addMethod","test","_element","addressCountryId","max","val","initMessages","jQuery","extend","messages","required","remote","dateISO","digits","creditcard","equalTo","accept","maxlength","minlength","rangelength","range","min","validateClearingPath","fromPathName","toPathName","shouldShowHeaderAndFooter","isAuthenticated","pathName","landingRoutes","REGISTER","FORGOT_PASSWORD_REQUEST","shouldToggleEditDeliveryCardProp","previousAddressSource","currentAddressSource","isCardOpened","isBidderAllowedToTender","PENDING_PUBLIC_BIDDER","isPublicBidderAllowedToTender","shouldDisableBidding","currentDateTime","tenderStartDateTime","tenderEndDateTime","isBidderRelevant","shouldShowCoveredUserInformation","userStatus","INVITATION_REJECTED_BY_BUYER","setDefaults","errrorValidation","unhighlight","validClass","errorClass","autofocusOnError","invalidHandler","errorList","tagName","SELECT","siblings","scrollIntoView","behavior","block","getAttribute","errorPlacement","highlight","ignore","isValid","formId","valid","validateRegistration","validate","rules","passwordUpperLowerNumber","validateLogin","validateNewTenderBasicData","addresSourceRequired","addressCountryRequired","maxDuration","validateTwitterRegForm","validateCollaboratorForm","validateUserDetailsForm","countrySelectRequired","websiteUrlFormat","validateCompanyDetailsForm","isVatRequired","validateInviteByEmailForm","applicationState","emailDifferentThanCurrentUserName","emailNotDuplicitAsSuppliers","validateSelect","selectId","removeClass","addClass","validateChangePassword","validateForgotPassword","validateForgotPasswordRequest","validateEmailForm","validateAuctionsAndSuppliersFilteringForm","validateHowDidYouHearAboutUsForm","selectRequired","validateReportIssueForm","subject","PageSidebarButton","violet","onBlur","wavesLight","FormButton","getSuppliersInvitationStatusLabel","suppliersInvitationStatus","APPROVAL_MISSED","labelsManager","getSuppliersStatusWithReason","getAddressOptionLabel","deliveryLabelCounter","isLast","CURRENT_LOCATION","getOverallPositionLabel","getDateTimeDeltaLabel","timeDiff","abs","floor","getTenderStatusLabel","NEW","RFP_SUBMITTED","RFP_ENDED","SUBMITTED","ENDED","CANCELED","FREEZE","IUsersActionTypes","getUsersByCompanyIds","companyIds","usersFound","usersFoundLength","usersToFetch","ADD_USERS","TableCellInput","inputClassName","onChange","readOnly","onMouseEnter","onKeyPress","placeholder","step","inputStyle","autoFocus","pattern","onFocus","onKeyDown","reference","borderBottom","useTooltip","deps","ReactTooltip","rebuild","Checkbox","checkedValue","checkboxClassType","checkboxClassNames","wrapperClassName","wrapperStyle","checked","useWindowWidth","useState","innerWidth","width","setWidth","handleResize","addEventListener","removeEventListener","mobileScreenBreakpoint","getComputedStyle","documentElement","getPropertyValue","tabletScreenBreakpoint","largeScreenBreakpoint","getMedia","baseMedia","largeDesktop","smallDesktop","tablet","mobile","mobileAndTablet","desktop","MediaContext","useMedia","MediaProvider","media","setMedia","newMedia","FilledInCheckbox","labelClassName","getGAUtmParams","Object","keys","obj","currKey","createUtmParamString","utmParams","GARegisterEvent","GAEvent","ReactGA","event","REACT_APP_GA_UA","initialize","pageview","listen","mapDispatchToProps","toggleHideIrrelevantSuppliers","connect","active","supp_def_sidebar_hide_irrelevant_button","newActiveState","loadTenderTemplates","templates","LOAD_TEMPLATES","MustHaveConditionsListRow","isMandatory","onConditionChange","onRemoveCondition","onConfirmCondition","onEnterConfirmCondition","onFocusCondition","isFocused","isEditable","flex","marginRight","marginTop","remove_tooltip","MustHaveConditionsList","onComfirmCondition","onInputKeyDown","onConditionBlur","marginBottom","borderLeft","borderRight","stopPropagation","onAddConditionClick","cardStyles","footer","auct_params_add_condition_button","auct_params_gdpr_must_have_condition","MustHaveConditionsContainer","handleConfirmCondition","updateCondition","handleInputKeyDown","currentTarget","blur","propsValue","handlerRemoveCondition","handleAddCondition","addMustHaveCondition","uuidv4","setState","handleConditionChange","row","isCheckboxChanged","handleFocusCondition","handleBlur","propValue","context","contextType","ownProps","NotificationAction","NewLabel","Notification","contentClickHandler","targetLink","closest","preventDefault","onLinkClick","getAnchor","notifAction","TO_AUCTION_OWNER","OWNER_AUCTION","TO_AUCTION_SUPPLIER","SUPPLIER_AUCTION","getNotificationText","anchor","onNotificationClick","dangerouslySetInnerHTML","__html","PureComponent","Notifications","listElem","notificationClicked","onScroll","scrollVerticalEnd","offsetHeight","scrollTop","loadMoreNotifications","prevState","lastLoadedPage","handleNotificationClick","closePanel","markNotificationsAsRead","showNotifications","notificationPanel","isOpened","isAuthenticating","isSurveyCompleted","isRegistering","tenderStatuses","canadaProvinces","usaStates","saveAddressToCompanyProfile","saveAddressToUserProfile","suppliersDefinitionStep","isInviteByEmailSectionOpened","isAddFromBestauctionUserCardOpened","isAddFromMyContactsCardOpened","auctionRoom","hasAuctionEnded","isDetailedTableViewActive","content","categories","opened","loadedPages","reload","pendingAuctionInvitationsCount","pendingPublicBiddersCount","isSubscribing","subscribedStatus","UNSUBSCRIBED","prevText","fromLocalization","wiki","fromWiki","combineReducers","admin","fromAdmin","alert","fromAlert","fromAuthentication","fromCommon","registration","fromRegistration","fromTender","tenderTemplates","fromTenderTemplates","fromMyTenders","fromNotification","fromCodeList","fromUI","fromUsers","fromTenders","fromGovTenders","fromGuide","fromContacts","newsletter","fromNewsletter","routing","locationBeforeTransitions","appReducer","PROFILE_FILLED","clearCache","fill","contactsList","contactIndex","u","routerReducer","rootReducer","connection","hubConnection","useDefaultPath","Hub","hubName","proxy","createHubProxy","TenderHub","bidChangedDuration","registerMethods","on","bidChange","clearTimeout","created","isSupplier","bidder","NotificationHub","notificationDto","AppHub","signalrMiddleware","bind","stateConversion","0","1","2","4","keepAlive","wasConnected","reconnectAttempts","onStateChanged","STATE_CHANGED","stateChanged","newState","disconnected","accessToken","next","AUTHORIZATION","middleware","thunk","composedEnhancers","compose","applyMiddleware","createStore"],"mappings":"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","file":"static/js/main.baee7b67.chunk.js","sourcesContent":["import { ThunkDispatch } from 'redux-thunk';\nimport { Action } from 'redux';\n\nimport { ConfirmationAlertUIProps } from '_components/confirmationAlerts/ConfirmationAlertUI';\nimport { MustHaveConditionResponse } from './tenderTypes';\n\nexport type StripeStatus =\n | 'active'\n | 'past_due'\n | 'unpaid'\n | 'canceled'\n | 'incomplete'\n | 'incomplete_expired'\n | 'trialing';\n\nexport interface Currency {\n id: string;\n name: string;\n symbol: string;\n}\n\nexport interface CodeList {\n id: T;\n name: string;\n}\n\nexport interface Industry {\n id: string;\n name: string;\n display: string;\n}\n\nexport interface AddressOptionValue {\n addressSource: number;\n addressCountryId: number;\n addressZipCode: string;\n addressStreet: string;\n}\n\nexport interface ItemDetails {\n id: number;\n name: string;\n unitPrice: number;\n unitOfMeasurement: CodeList;\n quantity: number;\n expPrice: number;\n bidStep: number;\n bestBid: number;\n description: string;\n}\n\nexport interface CriterionDetails {\n id: number;\n name: string;\n unit: CodeList;\n winningThreshold: CodeList;\n weight: CodeList;\n bestBid: number;\n description: string;\n minBid?: number;\n maxBid?: number;\n}\n\nexport interface Address {\n id: number;\n streetAddress: string;\n streetAddress2: string;\n city: string;\n state: string;\n zipCode: string;\n country: Country;\n gpsCoords: Coords;\n}\n\nexport interface Coords {\n lat: string;\n lng: string;\n}\n\nexport interface AddressCodeList {\n addressSource: AddressSource;\n address: Address;\n}\n\nexport interface Country extends CodeList {\n code: string;\n capital: string;\n region: string;\n banned: boolean | null;\n}\n\nexport interface RegionCountries {\n regionId: number;\n region: string;\n regionGroup: number;\n countries: number[];\n}\n\nexport interface AttachmentState {\n isUploading: boolean;\n list: Attachment[];\n}\n\nexport interface Attachment {\n id: number;\n name: string;\n}\n\nexport interface AttachmentReq {\n name: string;\n data: FormData;\n}\n\nexport interface ConfirmationAlertOptions {\n title: string;\n message: string;\n customUI: React.FC;\n onConfirm?: () => void;\n onCancel?: () => void;\n willUnmount?: () => void;\n}\n\nexport interface User {\n userName: string;\n coveredUsername: string;\n country: string;\n email: string;\n isEmailConfirmed: boolean;\n rating: number;\n firstName: string;\n lastName: string;\n address: Address;\n accountType: string;\n defaultCurrency: string;\n phoneNumber: string;\n linkedinProfile: string;\n facebookProfile: string;\n wantToSell: boolean;\n wantToBuy: boolean;\n favouriteAuctionKeywords: string;\n isSearcheable: boolean;\n company: Company;\n hideInfo?: boolean;\n description?: string;\n}\n\nexport interface Company {\n id: number;\n name: string;\n web: string;\n position: string;\n industries: Industry[];\n numberOfEmployees: string;\n yearlyRevenue: string;\n address: Address;\n branches: number;\n vatId: string;\n registrationId: string;\n taxId: string;\n}\n\nexport interface Supplier {\n status: CodeList;\n rejectedReason: string;\n user: User;\n isPublic: boolean;\n overallPosition: number;\n attachments: AttachmentState;\n itemsBids: Array;\n criteriaBids: Array;\n offerDescription: string;\n lastActivityDate: string;\n canReinvite: boolean;\n mustHaveConditionResponses: MustHaveConditionResponse[];\n}\n\nexport interface Bid {\n id: number;\n value: string;\n}\n\nexport interface TenderRedirectQueryString {\n redirect: string;\n tenderId: string;\n externalToken?: string;\n email?: string;\n}\n\nexport interface WikiQuestionAndAnswer {\n id: number;\n categoryId: number;\n question: string;\n answer: string;\n}\n\nexport interface LoginOptions {\n staySignedIn: boolean;\n redirect?: string;\n tenderId?: string;\n externalToken?: string;\n}\n\nexport interface SuppliersPosition {\n userName: string;\n position: number;\n}\n\nexport interface CountdownTime {\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n}\n\nexport interface Notification {\n id: number;\n title: string;\n text: string;\n date: Date;\n read: boolean;\n}\n\nexport interface TooltipProps {\n dataTip?: string;\n dataFor?: string;\n}\n\nexport interface Order {\n columnId: string;\n direction: SortDirection;\n}\n\nexport type ReduxDispatch = ThunkDispatch;\n\nexport interface IAction {\n type: T;\n payload: P;\n}\n\nexport interface KeyValuePair {\n key: T;\n value: S;\n}\n\nexport interface LocalizationText extends KeyValuePair {\n correction: string;\n isFeText: boolean;\n textCorrected: boolean;\n}\n\n/** ENUMS */\nexport enum Role {\n TRANSLATOR = 'Translator',\n ADMIN = 'Admin',\n FREE = 'Free',\n BUSINESS_STANDARD = 'BusinessStandard',\n BUSINESS_PREMIUM = 'BusinessPremium'\n}\n\nexport enum IconPosition {\n LEFT = 'left',\n RIGHT = 'right',\n CENTER = 'center',\n NONE = 'none'\n}\n\nexport enum InputTagName {\n SELECT = 'SELECT'\n}\n\nexport enum SuppliersTenderStatus {\n INVITATION_NOT_SENT = 0,\n INVITATION_SENT = 1,\n PENDING_PUBLIC_BIDDER = 2,\n INVITATION_ACCEPTED = 3,\n INVITATION_REJECTED_BY_BIDDER = 4,\n INVITATION_REJECTED_BY_BUYER = 5,\n REMOVED = 6,\n BLOCKED = 7,\n APPROVAL_MISSED = 8,\n FAVORITE = 9,\n LEFT = 10,\n PENDING_COMEBACK = 11\n}\n\nexport enum AddressSource {\n CURRENT_LOCATION = 0,\n USER = 1,\n COMPANY = 2,\n DELIVERY = 3,\n NEW_DELIVERY = 4\n}\n\nexport enum Persistance {\n LOCAL = 'local',\n SESSION = 'session',\n NONE = 'none'\n}\n\nexport enum SortDirection {\n ASC = 'asc',\n DESC = 'desc',\n NONE = 'none'\n}\n\nexport enum Color {\n WHITE = 'white',\n GREEN = 'green'\n}\n\nexport enum GuideNavigationTarget {\n PROFILE = 'profile',\n DEMO_NEXT_STEP = 'demo-next-step',\n MANIFESTO = 'manifesto',\n NONE = ''\n}\n\nexport enum NewsletterStatus {\n SUBSCRIBED = 'subscribed',\n UNSUBSCRIBED = 'unsubscribed',\n PENDING = 'pending',\n CLEANED = 'cleaned'\n}\n\nexport interface GAUtmParams {\n utm_source?: string;\n utm_medium?: string;\n utm_campaign?: string;\n utm_term?: string;\n utm_content?: string;\n}\n","import { ThunkAction } from 'redux-thunk';\n\nimport * as tenderService from '_api/tenderApi';\nimport {\n TenderTemplate,\n Tender,\n SuppliersBidChange,\n SuppliersItemBid,\n SuppliersCriterionBid,\n TenderStatus,\n Message,\n MustHaveCondition,\n MustHaveConditionResponse\n} from '_types/tenderTypes';\nimport {\n Supplier,\n SuppliersTenderStatus,\n SuppliersPosition,\n User,\n Address,\n AddressSource,\n AttachmentReq,\n IAction\n} from '_types/commonTypes';\nimport { ItemDetails, CriterionDetails, Attachment, CodeList } from '_types/commonTypes';\nimport {\n mapTender,\n getItemsDetailsWithIds,\n getCriteriaDetailsWithIds,\n mapMustHaveConditionFromDTO,\n getMustHaveConditionsWithIds\n} from '_mappers/tenderMapper';\nimport { IApplicationState } from 'core/reducer';\nimport {\n createSupplierBE,\n sendInvitationsToSuppliersBE,\n respondToInvitationBySellerBE,\n blockSupplierBE,\n unblockSupplierBE,\n uploadSuppliersAttachmentBE,\n editOfferDescriptionBE,\n tenderSupplierApi,\n addTenderToFavoritesBE\n} from '_api/tenderSupplierApi';\nimport { mapToSupplierFromTenderSupplierDTO } from '_mappers/tenderSupplierMapper';\nimport { upsertDeliveryAddressCodelist } from './codeListActions';\nimport { addDemoBiddersBE } from '_api/tenderSupplierApi';\nimport { mapDtoToAddress } from '_mappers/commonMapper';\nimport { ShowErrorToast } from '_components/toasts/toast';\nimport { String } from '_libs/String';\n\nexport enum IActionTypes {\n CREATE_TENDER_SUCCESS = '[CREATE_TENDER] SUCCESS',\n UPDATE_TENDER_PROPS_SUCCESS = '[UPDATE_TENDER_PROPS] SUCCESS',\n UPDATE_TENDER_ON_BACKEND_SUCCESS = '[UPDATE_TENDER_ON_BACKEND] SUCCESS',\n UPDATE_TENDER_STATUS = '[UPDATE_TENDER_STATUS] SUCCESS',\n LOAD_TEMPLATE_SUCCESS = '[LOAD_TEMPLATE] SUCCESS',\n LOAD_TENDER_SUCCESS = '[LOAD_TENDER] SUCCESS',\n ADD_NEW_ITEM_DETAILS_SUCCESS = '[ADD_NEW_ITEM_DETAILS] SUCCESS',\n UPDATE_ITEM_DETAILS_SUCCESS = '[UPDATE_ITEM_DETAILS] SUCCESS',\n REMOVE_ITEM_DETAILS_SUCCESS = '[REMOVE_ITEM_DETAILS] SUCCESS',\n ADD_NEW_CRITERION_DETAILS_SUCCESS = '[ADD_NEW_CRITERION_DETAILS] SUCCESS',\n UPDATE_CRITERION_DETAILS_SUCCESS = '[UPDATE_CRITERION_DETAILS] SUCCESS',\n REMOVE_CRITERION_DETAILS_SUCCESS = '[REMOVE_CRITERION_DETAILS] SUCCESS',\n START_UPLOADING_ATTACHMENTS = 'START_UPLOADING_ATTACHMENTS',\n END_UPLOADING_ATTACHMENTS = 'END_UPLOADING_ATTACHMENTS',\n ADD_NEW_ATTACHMENTS_SUCCESS = '[ADD_NEW_ATTACHMENTS] SUCCESS',\n REMOVE_ATTACHMENT_SUCCESS = '[REMOVE_ATTACHMENT] SUCCESS',\n ADD_NEW_MUST_HAVE_CONDITION_SUCCESS = '[ADD_NEW_MUST_HAVE_CONDITION] SUCCESS',\n UPDATE_MUST_HAVE_CONDITION_SUCCESS = '[UPDATE_MUST_HAVE_CONDITION] SUCCESS',\n REMOVE_MUST_HAVE_CONDITION_SUCCESS = '[REMOVE_MUST_HAVE_CONDITION] SUCCESS',\n UPLOAD_MAIN_PICTURE_SUCCESS = '[UPLOAD_MAIN_PICTURE] SUCCESS',\n REMOVE_MAIN_PICTURE_SUCCESS = '[REMOVE_MAIN_PICTURE] SUCCESS',\n RESET_NEW_TENDER_SUCCESS = '[RESET_NEW_TENDER] SUCCESS',\n UPDATE_NEW_DELIVERY_ADDRESS_PROPS_SUCCESS = '[UPDATE_NEW_DELIVERY_ADDRESS_PROPS] SUCCESS',\n SUBMIT_CHANGE_SUCCESS = '[SUBMIT_CHANGE] SUCCESS',\n ADD_ANNOUNCEMENT = 'ADD_ANNOUNCEMENT',\n ADD_SUPPLIER_SUCCESS = '[ADD_SUPPLIER] SUCCESS',\n REMOVE_SUPPLIER_SUCCESS = '[REMOVE_SUPPLIER] SUCCESS',\n UNBLOCK_SUPPLIER = '[UNBLOCK_SUPPLIER] SUCCESS',\n UPDATE_SUPPLIERS_BLOCK_REASON = 'UPDATE_SUPPLIERS_BLOCK_REASON',\n START_UPLOADING_SUPPLIERS_ATTACHMENTS = 'START_UPLOADING_SUPPLIERS_ATTACHMENTS',\n END_UPLOADING_SUPPLIERS_ATTACHMENTS = 'END_UPLOADING_SUPPLIERS_ATTACHMENTS',\n ADD_NEW_SUPPLIERS_ATTACHMENTS_SUCCESS = '[ADD_NEW_SUPPLIERS_ATTACHMENTS] SUCCESS',\n REMOVE_SUPPLIERS_ATTACHMENT_SUCCESS = '[REMOVE_SUPPLIERS_ATTACHMENT_SUCCESS] SUCCESS',\n RESPOND_TO_INVITATION_BY_SUPPLIER_SUCCESS = '[RESPOND_TO_INVITATION_BY_SUPPLIER] SUCCESS',\n SEND_INVITATIONS_TO_SUPPLIERS = '[SEND_INVITATIONS_TO_SUPPLIERS] SUCCESS',\n UPDATE_SUPPLIERS_MHC_RESPONSES = '[UPDATE_SUPPLIERS_MHC_RESPONSES] SUCCESS',\n UPDATE_SUPPLIERS_ITEM_BID_SUCCESS = '[UPDATE_SUPPLIERS_ITEM_BID] SUCCESS',\n UPDATE_SUPPLIERS_CRITERION_BID_SUCCESS = '[UPDATE_SUPPLIERS_CRITERION_BID] SUCCESS',\n UPDATE_SUPPLIERS_POSITIONS_SUCCESS = '[UPDATE_SUPPLIERS_POSITIONS] SUCCESS',\n UPDATE_SUPPLIERS_OFFER_DESCRIPTION_SUCCESS = '[UPDATE_SUPPLIERS_OFFER_DESCRIPTION] SUCCESS',\n UPDATE_SUPPLIERS_PARTICIPATION_STATUS = '[UPDATE_SUPPLIERS_PARTICIPATION_STATUS] SUCCESS',\n UPDATE_SUPPLIERS_LAST_ACTIVITY = 'UPDATE_SUPPLIERS_LAST_ACTIVITY',\n SCHEDULE_TENDER_SUCCESS = '[SCHEDULE_TENDER] SUCCESS',\n ADD_BID_CHANGE = 'ADD_BID_CHANGE',\n REMOVE_BID_CHANGE = 'REMOVE_BID_CHANGE',\n TOGGLE_HIDE_IRRELEVANT_SUPPLIERS = 'TOGGLE_HIDE_IRRELEVANT_SUPPLIERS',\n TOGGLE_FAVORITE = '[TENDER] TOGGLE_FAVORITE'\n}\n\ninterface ICreateTenderSuccessAction {\n type: IActionTypes.CREATE_TENDER_SUCCESS;\n payload: { tenderId: number; user: User };\n}\n\ninterface IUpdateTenderPropsSuccessAction {\n type: IActionTypes.UPDATE_TENDER_PROPS_SUCCESS;\n payload: { name: string; value: any };\n shouldUpdateOnBackend: boolean;\n}\n\ninterface IUpdateTenderOnBackendSuccessAction {\n type: IActionTypes.UPDATE_TENDER_ON_BACKEND_SUCCESS;\n payload: {\n items: Array;\n criteria: Array;\n deliveryAddressId: number;\n mustHaveConditions: Array;\n attachments: Array;\n mainPicutreUrl: string;\n };\n}\n\ninterface IUpdateTenderStatusAction {\n type: IActionTypes.UPDATE_TENDER_STATUS;\n payload: { statusId: number };\n}\n\ninterface ILoadTemplateSuccessAction {\n type: IActionTypes.LOAD_TEMPLATE_SUCCESS;\n payload: { template: TenderTemplate };\n}\n\ninterface ILoadTenderSuccessAction {\n type: IActionTypes.LOAD_TENDER_SUCCESS;\n payload: { tender: Tender };\n}\n\ninterface IAddNewItemDetailsSucessAction {\n type: IActionTypes.ADD_NEW_ITEM_DETAILS_SUCCESS;\n payload: { item: ItemDetails };\n}\n\ninterface IUpdateItemDetailsSucessAction {\n type: IActionTypes.UPDATE_ITEM_DETAILS_SUCCESS;\n payload: { index: number; name: string; value: any };\n shouldUpdateOnBackend: boolean;\n}\n\ninterface IRemoveItemDetailsSucessAction {\n type: IActionTypes.REMOVE_ITEM_DETAILS_SUCCESS;\n payload: { index: number };\n}\n\ninterface IAddNewCriterionDetailsSucessAction {\n type: IActionTypes.ADD_NEW_CRITERION_DETAILS_SUCCESS;\n payload: { criterion: CriterionDetails };\n}\n\ninterface IUpdateCriterionDetailsSucessAction {\n type: IActionTypes.UPDATE_CRITERION_DETAILS_SUCCESS;\n payload: { index: number; name: string; value: any };\n shouldUpdateOnBackend: boolean;\n}\n\ninterface IAddNewAttachmentsSucessAction {\n type: IActionTypes.ADD_NEW_ATTACHMENTS_SUCCESS;\n payload: { attachments: Attachment[] };\n}\ninterface IStartUploadingAttachmentsAction {\n type: IActionTypes.START_UPLOADING_ATTACHMENTS;\n}\ninterface IEndUploadingAttachmentsAction {\n type: IActionTypes.END_UPLOADING_ATTACHMENTS;\n}\n\ninterface IRemoveAttachmentSucessAction {\n type: IActionTypes.REMOVE_ATTACHMENT_SUCCESS;\n payload: { index: number };\n}\n\ninterface IRemoveSuppliersAttachmentSucessAction {\n type: IActionTypes.REMOVE_SUPPLIERS_ATTACHMENT_SUCCESS;\n payload: { id: number };\n}\ninterface IAddNewSuppliersAttachmentsSucessAction {\n type: IActionTypes.ADD_NEW_SUPPLIERS_ATTACHMENTS_SUCCESS;\n payload: { username: string; attachments: Attachment[] };\n}\ninterface IStartUploadingSuppliersAttachmentsAction {\n type: IActionTypes.START_UPLOADING_SUPPLIERS_ATTACHMENTS;\n}\ninterface IEndUploadingSuppliersAttachmentsAction {\n type: IActionTypes.END_UPLOADING_SUPPLIERS_ATTACHMENTS;\n}\n\ninterface IRemoveCriterionDetailsSucessAction {\n type: IActionTypes.REMOVE_CRITERION_DETAILS_SUCCESS;\n payload: { index: number };\n}\n\ninterface IAddNewMustHaveConditionSucessAction {\n type: IActionTypes.ADD_NEW_MUST_HAVE_CONDITION_SUCCESS;\n payload: { condition: MustHaveCondition };\n}\n\ninterface IUpdateMustHaveConditionSucessAction {\n type: IActionTypes.UPDATE_MUST_HAVE_CONDITION_SUCCESS;\n payload: { index: number; condition: MustHaveCondition };\n}\n\ninterface IRemoveMustHaveConditionSucessAction {\n type: IActionTypes.REMOVE_MUST_HAVE_CONDITION_SUCCESS;\n payload: { index: number };\n}\n\ninterface IResetNewTenderSuccessAction {\n type: IActionTypes.RESET_NEW_TENDER_SUCCESS;\n payload: {};\n}\n\ninterface IUploadMainPictureSuccess extends IAction {}\ninterface IRemoveMainPictureSuccess extends IAction {}\n\ninterface ISendInvitationsToSuppliersSuccessAction {\n type: IActionTypes.SEND_INVITATIONS_TO_SUPPLIERS;\n payload: { emails: string[]; invitationStatus: CodeList };\n}\ninterface IRespondToInvitationBySupplierSuccessAction {\n type: IActionTypes.RESPOND_TO_INVITATION_BY_SUPPLIER_SUCCESS;\n payload: { response: boolean; invitationStatusCodeList: Array> };\n}\n\ninterface IAddSupplierSuccessAction {\n type: IActionTypes.ADD_SUPPLIER_SUCCESS;\n payload: { supplier: Supplier };\n shouldUpdateOnBackend: boolean;\n}\n\ninterface IRemoveSupplierSuccessAction\n extends IAction {}\n\ninterface IUpdateSuppliersMHCResonsesSuccessAction\n extends IAction<\n IActionTypes.UPDATE_SUPPLIERS_MHC_RESPONSES,\n { username: string; responses: MustHaveConditionResponse[] }\n > {}\n\ninterface IUnblockSupplierSuccessAction {\n type: IActionTypes.UNBLOCK_SUPPLIER;\n payload: { userName: string; status: CodeList };\n}\n\ninterface IAddAnnouncementAction extends IAction {}\n\ninterface IUpdateNewDeliveryAddressSuccessAction {\n type: IActionTypes.UPDATE_NEW_DELIVERY_ADDRESS_PROPS_SUCCESS;\n payload: { name: string; value: any };\n shouldUpdateOnBackend: boolean;\n}\n\ninterface ISUbmitChangeSuccess {\n type: IActionTypes.SUBMIT_CHANGE_SUCCESS;\n}\n\ninterface IUpdateSuppliersItemBidSuccess {\n type: IActionTypes.UPDATE_SUPPLIERS_ITEM_BID_SUCCESS;\n payload: { suppliersItemBid: SuppliersItemBid };\n}\n\ninterface IUpdateSuppliersCriterionBidSuccess {\n type: IActionTypes.UPDATE_SUPPLIERS_CRITERION_BID_SUCCESS;\n payload: { suppliersCriterionBid: SuppliersCriterionBid };\n}\n\ninterface IUpdateSuppliersPositionsSuccess {\n type: IActionTypes.UPDATE_SUPPLIERS_POSITIONS_SUCCESS;\n payload: { suppliersPositions: Array };\n}\n\ninterface IUpdateSuppliersOfferDescriptionSuccess {\n type: IActionTypes.UPDATE_SUPPLIERS_OFFER_DESCRIPTION_SUCCESS;\n payload: { userName: string; description: string };\n}\n\ninterface IUpdateSuppliersBlockReasonAction {\n type: IActionTypes.UPDATE_SUPPLIERS_BLOCK_REASON;\n payload: { userName: string; reason: string };\n}\n\ninterface IUpdateSuppliersParticipationStatusSuccess {\n type: IActionTypes.UPDATE_SUPPLIERS_PARTICIPATION_STATUS;\n payload: { userName: string; status: CodeList };\n}\n\ninterface IUpdateSuppliersLastActivityAction\n extends IAction {}\n\ninterface IScheduleTenderSuccess {\n type: IActionTypes.SCHEDULE_TENDER_SUCCESS;\n payload: { tenderStatusId: number };\n}\n\ninterface IAddBidChangeAction {\n type: IActionTypes.ADD_BID_CHANGE;\n payload: { bid: SuppliersBidChange };\n}\n\ninterface IRemoveBidChangeAction {\n type: IActionTypes.REMOVE_BID_CHANGE;\n payload: { bid: SuppliersBidChange };\n}\n\ninterface IToggleHideIrelevantSuppliers {\n type: IActionTypes.TOGGLE_HIDE_IRRELEVANT_SUPPLIERS;\n}\n\ninterface IToggleFavoriteAction {\n type: IActionTypes.TOGGLE_FAVORITE;\n payload: { isFavorite };\n}\n\nfunction createNewTender(): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const user = getState().authentication.user;\n\n return tenderService\n .createNewTenderBE()\n .then(tenderId => {\n dispatch(success(tenderId, user));\n return tenderId;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(tenderId: number, user: User): ICreateTenderSuccessAction {\n return { type: IActionTypes.CREATE_TENDER_SUCCESS, payload: { tenderId, user } };\n }\n}\n\n/**\n * Updates tender root property and calls update tender on backend\n * @param name - property name\n * @param value - property value\n * LEGACY USE UPDATETENDER\n */\nfunction updateTenderProps(\n name: string,\n value: any,\n shouldUpdateOnBackend: boolean = true\n): ThunkAction {\n return dispatch => {\n dispatch(updateTenderPropsSuccess(name, value, shouldUpdateOnBackend));\n };\n}\n\nfunction updateTenderPropsSuccess(\n name: string,\n value: any,\n shouldUpdateOnBackend: boolean\n): IUpdateTenderPropsSuccessAction {\n return {\n type: IActionTypes.UPDATE_TENDER_PROPS_SUCCESS,\n payload: { name, value },\n shouldUpdateOnBackend\n };\n}\n\nfunction updateTender(name: string, value: any): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const currTender = getState().tender.currentTender;\n const updTender = { ...currTender, [name]: value };\n\n return tenderService.updateTenderBE(updTender).then(res => {\n dispatch(updateTenderPropsSuccess(name, value, false));\n return mapTender(res.data, getState().codeList);\n });\n };\n}\n\n/**\n * Makes api call to update tender on backend, and gets Ids for items and\n * criteria\n */\nfunction updateTenderOnBackend(): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const currentTender = getState().tender.currentTender;\n\n return tenderService\n .updateTenderBE(currentTender)\n .then(res => {\n const items = getItemsDetailsWithIds(res.data, currentTender);\n const criteria = getCriteriaDetailsWithIds(res.data, currentTender);\n const mustHaveConditions = getMustHaveConditionsWithIds(res.data, currentTender);\n const deliveryAddressId = res.data.DeliveryAddress ? res.data.DeliveryAddress.AddressId : 0;\n const mainPictureUrl = res.data.MainPictureUrl;\n const attachments: Attachment[] = res.data.Attachments\n ? res.data.Attachments.map(a => ({\n id: a.AttachmentId,\n name: a.FileName\n }))\n : [];\n\n dispatch(\n successUpdateTenderOnBe(\n items,\n criteria,\n deliveryAddressId,\n mustHaveConditions,\n attachments,\n mainPictureUrl\n )\n );\n })\n .catch(error => {\n throw error;\n });\n };\n}\n\nfunction addAnnouncement(announcement: Message): IAddAnnouncementAction {\n return { type: IActionTypes.ADD_ANNOUNCEMENT, payload: { announcement } };\n}\n\nfunction successUpdateTenderOnBe(\n items: Array,\n criteria: Array,\n deliveryAddressId: number,\n mustHaveConditions: Array,\n attachments: Array,\n mainPicutreUrl: string\n): IUpdateTenderOnBackendSuccessAction {\n return {\n type: IActionTypes.UPDATE_TENDER_ON_BACKEND_SUCCESS,\n payload: { items, criteria, deliveryAddressId, mustHaveConditions, attachments, mainPicutreUrl }\n };\n}\n\nfunction updateTenderStatus(statusId: number): IUpdateTenderStatusAction {\n return { type: IActionTypes.UPDATE_TENDER_STATUS, payload: { statusId } };\n}\n\n/**\n * Loads tender defaults\n */\nfunction loadTemplateToTender(template: TenderTemplate): ILoadTemplateSuccessAction {\n return { type: IActionTypes.LOAD_TEMPLATE_SUCCESS, payload: { template } };\n}\n\n/**\n * Loads tender by id from backend and saves it to current tender\n * @param id - tender id\n */\nfunction loadTenderById(id: number): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n return tenderService\n .fetchTenderBE(id)\n .then(res => mapTender(res.data, getState().codeList))\n .then(tender => {\n dispatch(loadTenderSuccess(tender));\n dispatch(upsertDeliveryAddressCodelist(tender.addressSource, tender.newDeliveryAddress));\n\n return tender;\n })\n .catch(err => {\n console.log(err);\n return null;\n });\n };\n}\n\nfunction loadTenderForAuctionOverview(id: number): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n return tenderService\n .fetchTenderBE(id)\n .then(res => mapTender(res.data, getState().codeList))\n .then(tender => {\n dispatch(loadTenderSuccess(tender));\n\n return tender;\n })\n .catch(err => {\n return null;\n });\n };\n}\n\n/**\n * Schedules tender and returns new tender status\n * @param id - tender id\n */\nfunction scheduleTender(id: number): ThunkAction, any, null, any> {\n return dispatch => {\n return tenderService.scheduleTenderBE(id).then(() => dispatch(success(TenderStatus.SCHEDULED)));\n };\n\n function success(tenderStatusId: number): IScheduleTenderSuccess {\n return { type: IActionTypes.SCHEDULE_TENDER_SUCCESS, payload: { tenderStatusId } };\n }\n}\n\nfunction toggleFavoriteTender(tenderId: number, isFavorite: boolean): ThunkAction, any, null, any> {\n return dispatch => {\n return addTenderToFavoritesBE(tenderId, isFavorite).then(() => dispatch(success(isFavorite)));\n };\n\n function success(isFavorite: boolean): IToggleFavoriteAction {\n return { type: IActionTypes.TOGGLE_FAVORITE, payload: { isFavorite } };\n }\n}\n\nfunction duplicateTender(id: number): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n return tenderService\n .duplicateTenderBE(id)\n .then(res => mapTender(res.data, getState().codeList))\n .then(tender => {\n dispatch(loadTenderSuccess(tender));\n\n dispatch(upsertDeliveryAddressCodelist(tender.addressSource, tender.newDeliveryAddress));\n });\n };\n}\n\nfunction loadTenderSuccess(tender: Tender): ILoadTenderSuccessAction {\n return { type: IActionTypes.LOAD_TENDER_SUCCESS, payload: { tender } };\n}\n\n// Item details actions section\n\n/**\n * Adds new item details to store and after store is updated, triggers update tender on backend\n * @param item\n */\nfunction addNewItemDetails(item: ItemDetails): ThunkAction {\n return dispatch => {\n dispatch(success(item));\n };\n function success(item: ItemDetails): IAddNewItemDetailsSucessAction {\n return { type: IActionTypes.ADD_NEW_ITEM_DETAILS_SUCCESS, payload: { item } };\n }\n}\n\nfunction updateItemDetails(index: number, name: string, value: any, shouldUpdateOnBackend: boolean = true) {\n return success(index, name, value);\n\n function success(index: number, name: string, value: any): IUpdateItemDetailsSucessAction {\n return {\n type: IActionTypes.UPDATE_ITEM_DETAILS_SUCCESS,\n payload: { index, name, value },\n shouldUpdateOnBackend\n };\n }\n}\n\nfunction removeItemDetails(index: number) {\n return success(index);\n\n function success(index: number): IRemoveItemDetailsSucessAction {\n return { type: IActionTypes.REMOVE_ITEM_DETAILS_SUCCESS, payload: { index } };\n }\n}\n\n// Criterion details actions section\nfunction addNewCriterionDetails(criterion: CriterionDetails) {\n return success(criterion);\n\n function success(criterion: CriterionDetails): IAddNewCriterionDetailsSucessAction {\n return {\n type: IActionTypes.ADD_NEW_CRITERION_DETAILS_SUCCESS,\n payload: { criterion }\n };\n }\n}\n\nfunction updateCriterionDetails(index: number, name: string, value: any, shouldUpdateOnBackend: boolean = true) {\n return success(index, name, value);\n\n function success(index: number, name: string, value: any): IUpdateCriterionDetailsSucessAction {\n return {\n type: IActionTypes.UPDATE_CRITERION_DETAILS_SUCCESS,\n payload: { index, name, value },\n shouldUpdateOnBackend\n };\n }\n}\n\nfunction removeCriterionDetails(index: number) {\n return success(index);\n\n function success(index: number): IRemoveCriterionDetailsSucessAction {\n return {\n type: IActionTypes.REMOVE_CRITERION_DETAILS_SUCCESS,\n payload: { index }\n };\n }\n}\n\n// Attachments section\nfunction uploadAttachments(attachments: AttachmentReq[]): ThunkAction, any, null, any> {\n return async (dispatch, getState: () => IApplicationState) => {\n let errorCounter = 0;\n dispatch(startUploading());\n const tenderId = getState().tender.currentTender.tenderId;\n const localization = getState().common.localization;\n\n const promises: any[] = [];\n attachments.forEach(a => {\n promises.push(\n tenderService\n .uploadAttachmentBE(tenderId, a.data)\n .then(res => {\n dispatch(success([{ id: res.data[0], name: a.name }]));\n })\n .catch(err => {\n errorCounter += 1;\n ShowErrorToast(String.format(localization.attachment_upload_error_toast, a.name), {\n autoClose: false\n });\n })\n );\n });\n\n await Promise.all(promises);\n dispatch(endUploading());\n\n return Promise.resolve(errorCounter);\n };\n\n function startUploading(): IStartUploadingAttachmentsAction {\n return { type: IActionTypes.START_UPLOADING_ATTACHMENTS };\n }\n\n function endUploading(): IEndUploadingAttachmentsAction {\n return { type: IActionTypes.END_UPLOADING_ATTACHMENTS };\n }\n\n function success(attachments: Attachment[]): IAddNewAttachmentsSucessAction {\n return {\n type: IActionTypes.ADD_NEW_ATTACHMENTS_SUCCESS,\n payload: { attachments }\n };\n }\n}\n\nfunction uploadMainPicture(tenderId: number, file: FormData): ThunkAction, any, null, any> {\n return dispatch => {\n return tenderService.uploadMainPicture(tenderId, file).then(res => dispatch(success(res.data)));\n };\n\n function success(url: string): IUploadMainPictureSuccess {\n return { type: IActionTypes.UPLOAD_MAIN_PICTURE_SUCCESS, payload: { url } };\n }\n}\n\nfunction removeMainPicture(tenderId: number): ThunkAction, any, null, any> {\n return dispatch => {\n return tenderService.removeMainPicture(tenderId).then(res => dispatch(success()));\n };\n\n function success(): IRemoveMainPictureSuccess {\n return { type: IActionTypes.REMOVE_MAIN_PICTURE_SUCCESS, payload: {} };\n }\n}\n\nfunction removeAttachment(index: number): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const attachment = getState().tender.currentTender.attachments.list[index];\n return tenderService.removeAttachmentBE(attachment.id).then(res => dispatch(success(index)));\n };\n\n function success(index: number): IRemoveAttachmentSucessAction {\n return { type: IActionTypes.REMOVE_ATTACHMENT_SUCCESS, payload: { index } };\n }\n}\n\nfunction resetCurrentTender() {\n return { type: IActionTypes.RESET_NEW_TENDER_SUCCESS, payload: {} };\n}\n\n// Must have condition section\nfunction addNewMusHaveCondition(condition: MustHaveCondition): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const tender = getState().tender.currentTender;\n const updTender: Tender = { ...tender, mustHaveConditions: [...tender.mustHaveConditions, condition] };\n\n return tenderService.updateTenderBE(updTender).then(res => {\n const conditionWithId = mapMustHaveConditionFromDTO(\n res.data.MustHaveConditions[res.data.MustHaveConditions.length - 1]\n );\n\n dispatch(success(conditionWithId));\n });\n };\n\n function success(condition: MustHaveCondition): IAddNewMustHaveConditionSucessAction {\n return {\n type: IActionTypes.ADD_NEW_MUST_HAVE_CONDITION_SUCCESS,\n payload: { condition }\n };\n }\n}\n\nfunction updateMustHaveCondition(index: number, condition: MustHaveCondition) {\n return success(index, condition);\n\n function success(index: number, condition: MustHaveCondition): IUpdateMustHaveConditionSucessAction {\n return {\n type: IActionTypes.UPDATE_MUST_HAVE_CONDITION_SUCCESS,\n payload: { index, condition }\n };\n }\n}\n\nfunction removeMustHaveCondition(index: number) {\n return success(index);\n\n function success(index: number): IRemoveMustHaveConditionSucessAction {\n return {\n type: IActionTypes.REMOVE_MUST_HAVE_CONDITION_SUCCESS,\n payload: { index }\n };\n }\n}\n\n// New delivery address section\nfunction updateNewDeliveryAddress(\n addressSource: AddressSource,\n address: Address\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const currTender = getState().tender.currentTender;\n const updTender: Tender = {\n ...currTender,\n newDeliveryAddress: address,\n addressSource: addressSource\n };\n\n return tenderService\n .updateTenderBE(updTender, true)\n .then(res => {\n const deliveryAddressId = res.data.DeliveryAddress ? res.data.DeliveryAddress.AddressId : 0;\n const newAddress = { ...updTender.newDeliveryAddress, id: deliveryAddressId };\n dispatch(updateTenderPropsSuccess('newDeliveryAddress', newAddress, false));\n dispatch(updateTenderPropsSuccess('addressSource', addressSource, false));\n return newAddress;\n })\n .catch(error => {\n return false;\n });\n };\n}\n\n// New delivery address section\nfunction updateNewDeliveryAddressProps(\n name: string,\n value: any,\n shouldUpdateOnBackend: boolean = true\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const currTender = getState().tender.currentTender;\n const updatedTender: Tender = {\n ...currTender,\n newDeliveryAddress: { ...currTender.newDeliveryAddress, [name]: value }\n };\n\n return tenderService\n .updateTenderBE(updatedTender, true)\n .then(res => {\n const items = getItemsDetailsWithIds(res.data, updatedTender);\n const criteria = getCriteriaDetailsWithIds(res.data, updatedTender);\n const deliveryAddressId = res.data.DeliveryAddress ? res.data.DeliveryAddress.AddressId : 0;\n const mustHaveConditions = getMustHaveConditionsWithIds(res.data, updatedTender);\n const mainPictureUrl = res.data.MainPictureUrl;\n\n const attachments: Attachment[] = res.data.Attachments\n ? res.data.Attachments.map(a => ({\n id: a.AttachmentId,\n name: a.FileName\n }))\n : [];\n\n dispatch(updateNewDeliveryAddressSuccess(name, value, false));\n dispatch(\n successUpdateTenderOnBe(\n items,\n criteria,\n deliveryAddressId,\n mustHaveConditions,\n attachments,\n mainPictureUrl\n )\n );\n return mapDtoToAddress(res.data.DeliveryAddress, getState().codeList.countries);\n })\n .catch(error => {\n return false;\n });\n };\n}\n\nfunction updateNewDeliveryAddressSuccess(\n name: string,\n value: any,\n shouldUpdateOnBackend: boolean\n): IUpdateNewDeliveryAddressSuccessAction {\n return {\n type: IActionTypes.UPDATE_NEW_DELIVERY_ADDRESS_PROPS_SUCCESS,\n payload: { name, value },\n shouldUpdateOnBackend: shouldUpdateOnBackend\n };\n}\n\n// Suppliers section\n\n/**\n * Adds supplier by email via backend create supplier that returns supplier DTO\n */\nfunction addSupplierByEmail(email: string): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const tenderId = getState().tender.currentTender.tenderId;\n return createSupplierBE(email, tenderId)\n .then(res => {\n if (res.data.ErrorMessage) Promise.reject(res.data.ErrorMessage);\n return res.data.Supplier;\n })\n .then(supp => {\n return mapToSupplierFromTenderSupplierDTO(\n supp,\n getState().codeList.suppliersInvitationStatuses,\n getState().codeList.countries\n );\n })\n .then(supplier => dispatch(addSupplier(supplier)));\n };\n}\n\n/**\n * Adds supplier by email via backend create supplier that returns supplier DTO\n */\nfunction unblockSupplier(tenderId: number, userName: string): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n return unblockSupplierBE(tenderId, userName).then(res => {\n dispatch(\n unblockSupplierSuccess(\n userName,\n getState().codeList.suppliersInvitationStatuses.find(s => s.id === res.data)!\n )\n );\n });\n };\n\n function unblockSupplierSuccess(userName: string, status: CodeList): IUnblockSupplierSuccessAction {\n return {\n type: IActionTypes.UNBLOCK_SUPPLIER,\n payload: { userName, status }\n };\n }\n}\n\nfunction blockSupplier(userName: string, message: string): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const tenderId = getState().tender.currentTender.tenderId;\n return blockSupplierBE(tenderId, userName, message).then(res => {\n dispatch(updateSuppliersParictipationStatus(userName, SuppliersTenderStatus.BLOCKED));\n });\n };\n}\n\nfunction updateSuppliersBlockReason(userName: string, reason: string): IUpdateSuppliersBlockReasonAction {\n return {\n type: IActionTypes.UPDATE_SUPPLIERS_BLOCK_REASON,\n payload: { userName, reason }\n };\n}\n\n/**\n * Adds a supplier to app state\n * @param supplier - Supplier\n * @param shouldUpdateOnBackend\n */\nfunction addSupplier(supplier: Supplier, shouldUpdateOnBackend: boolean = true) {\n return addSupplierSuccess(supplier, shouldUpdateOnBackend);\n}\n\nfunction addSupplierSuccess(supplier: Supplier, shouldUpdateOnBackend: boolean = true): IAddSupplierSuccessAction {\n return {\n type: IActionTypes.ADD_SUPPLIER_SUCCESS,\n payload: { supplier },\n shouldUpdateOnBackend\n };\n}\n\nfunction removeSupplier(supplier: Supplier): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const tenderId = getState().tender.currentTender.tenderId;\n return tenderSupplierApi.removeSupplierFromTender(supplier.user.userName, tenderId).then(() => {\n dispatch(success(supplier.user.userName));\n });\n };\n\n function success(username: string): IRemoveSupplierSuccessAction {\n return { type: IActionTypes.REMOVE_SUPPLIER_SUCCESS, payload: { username } };\n }\n}\n\nfunction updateSuppliersMHCResponses(\n username: string,\n tenderId: number,\n responses: MustHaveConditionResponse[]\n): ThunkAction, any, null, any> {\n return dispatch => {\n return tenderSupplierApi\n .saveMHCResponses(\n responses.map(r => ({ MustHaveConditionId: r.mhcId, NewResponse: r.response })),\n tenderId\n )\n .then(res => dispatch(updateSuppliersMHCResponsesSuccess(username, responses)));\n };\n}\n\nfunction updateSuppliersMHCResponsesSuccess(\n username: string,\n responses: MustHaveConditionResponse[]\n): IUpdateSuppliersMHCResonsesSuccessAction {\n return { type: IActionTypes.UPDATE_SUPPLIERS_MHC_RESPONSES, payload: { username, responses } };\n}\n\n/**\n * Sends invitations to suppliers, on BE is determined whether to send it to external or internal\n * supplier\n * @param suppliers to be invited\n */\nfunction sendInvitationsToSuppliers(\n suppliers: Supplier[],\n message: string\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const emailsToSend: string[] = [];\n suppliers.forEach(supp => emailsToSend.push(supp.user.userName));\n return sendInvitationsToSuppliersBE(emailsToSend, getState().tender.currentTender.tenderId, message)\n .then(res => {\n dispatch(\n sendInvitationsToSuppliersSuccess(\n emailsToSend,\n getState().codeList.suppliersInvitationStatuses.find(\n x => x.id === SuppliersTenderStatus.INVITATION_SENT\n )!\n )\n );\n })\n .catch(error => {\n throw error;\n });\n };\n}\n\n/**\n * Sends invitation to supplier\n * @param email to invite\n */\nfunction sendInvitationToSupplier(email: string, message: string): ThunkAction, any, any, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const emails = [email];\n return sendInvitationsToSuppliersBE(emails, getState().tender.currentTender.tenderId, message)\n .then(() => {\n dispatch(\n sendInvitationsToSuppliersSuccess(\n emails,\n getState().codeList.suppliersInvitationStatuses.find(\n x => x.id === SuppliersTenderStatus.INVITATION_SENT\n )!\n )\n );\n })\n .catch(error => {\n throw error;\n });\n };\n}\n\nfunction sendInvitationsToSuppliersSuccess(\n emails: string[],\n invitationStatus: CodeList\n): ISendInvitationsToSuppliersSuccessAction {\n return {\n type: IActionTypes.SEND_INVITATIONS_TO_SUPPLIERS,\n payload: { emails, invitationStatus }\n };\n}\n\nfunction leaveAuction(reason: string): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const tenderId = getState().tender.currentTender.tenderId;\n\n return tenderSupplierApi.leaveTender(tenderId, reason);\n };\n}\n\n/**\n * Respond to invitation by changing the supplier status to accepted / rejected\n * @param response\n */\nfunction respondToInvitation(response: boolean): ThunkAction, any, null, any> {\n {\n return (dispatch, getState: () => IApplicationState) => {\n return respondToInvitationBySellerBE(response, getState().tender.currentTender.tenderId)\n .then(() => {\n dispatch(success(response, getState().codeList.suppliersInvitationStatuses));\n return true;\n })\n .catch(error => {\n throw error;\n });\n };\n }\n\n function success(\n response: boolean,\n invitationStatusCodeList: Array>\n ): IRespondToInvitationBySupplierSuccessAction {\n return {\n type: IActionTypes.RESPOND_TO_INVITATION_BY_SUPPLIER_SUCCESS,\n payload: { response, invitationStatusCodeList }\n };\n }\n}\n\n// Attachments section\nfunction uploadSuppliersAttachments(attachments: AttachmentReq[]): ThunkAction, any, null, any> {\n return async (dispatch, getState: () => IApplicationState) => {\n let errorCounter = 0;\n\n dispatch(startUploading());\n const tenderId = getState().tender.currentTender.tenderId;\n const localization = getState().common.localization;\n const currUser = getState().authentication.user.userName;\n\n const promises: any[] = [];\n attachments.forEach(a => {\n promises.push(\n uploadSuppliersAttachmentBE(tenderId, a.data)\n .then(res => {\n dispatch(addSuppliersAttachmentsSuccess(currUser, [{ id: res.data[0], name: a.name }]));\n })\n .catch(() => {\n errorCounter += 1;\n ShowErrorToast(String.format(localization.attachment_upload_error_toast, a.name), {\n autoClose: false\n });\n })\n );\n });\n\n await Promise.all(promises);\n dispatch(endUploading());\n\n return Promise.resolve(errorCounter);\n };\n\n function startUploading(): IStartUploadingSuppliersAttachmentsAction {\n return { type: IActionTypes.START_UPLOADING_SUPPLIERS_ATTACHMENTS };\n }\n\n function endUploading(): IEndUploadingSuppliersAttachmentsAction {\n return { type: IActionTypes.END_UPLOADING_SUPPLIERS_ATTACHMENTS };\n }\n}\n\nexport function addSuppliersAttachmentsSuccess(\n username: string,\n attachments: Attachment[]\n): IAddNewSuppliersAttachmentsSucessAction {\n return {\n type: IActionTypes.ADD_NEW_SUPPLIERS_ATTACHMENTS_SUCCESS,\n payload: { username, attachments }\n };\n}\n\nfunction removeSuppliersAttachment(id: number): ThunkAction, any, null, any> {\n return dispatch => {\n return tenderService.removeAttachmentBE(id).then(() => dispatch(removeSuppliersAttachmentSuccess(id)));\n };\n}\n\nfunction removeSuppliersAttachmentSuccess(id: number): IRemoveSuppliersAttachmentSucessAction {\n return { type: IActionTypes.REMOVE_SUPPLIERS_ATTACHMENT_SUCCESS, payload: { id } };\n}\n\nfunction submitTenderChange(): ISUbmitChangeSuccess {\n return { type: IActionTypes.SUBMIT_CHANGE_SUCCESS };\n}\n\nfunction updateSuppliersItemBid(suppliersItemBid: SuppliersItemBid) {\n return success(suppliersItemBid);\n function success(suppliersItemBid: SuppliersItemBid): IUpdateSuppliersItemBidSuccess {\n return {\n type: IActionTypes.UPDATE_SUPPLIERS_ITEM_BID_SUCCESS,\n payload: { suppliersItemBid }\n };\n }\n}\n\nfunction updateSuppliersCriterionBid(suppliersCriterionBid: SuppliersCriterionBid) {\n return success(suppliersCriterionBid);\n\n function success(suppliersCriterionBid: SuppliersCriterionBid): IUpdateSuppliersCriterionBidSuccess {\n return {\n type: IActionTypes.UPDATE_SUPPLIERS_CRITERION_BID_SUCCESS,\n payload: { suppliersCriterionBid }\n };\n }\n}\n\nfunction updateSuppliersOfferDescription(\n userName: string,\n description: string\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const tenderId = getState().tender.currentTender.tenderId;\n\n return editOfferDescriptionBE(tenderId, description).then(res => {\n dispatch(updateSuppliersOfferDescriptionSuccess(userName, res.data));\n });\n };\n}\n\nfunction updateSuppliersOfferDescriptionSuccess(\n userName: string,\n description: string\n): IUpdateSuppliersOfferDescriptionSuccess {\n return {\n type: IActionTypes.UPDATE_SUPPLIERS_OFFER_DESCRIPTION_SUCCESS,\n payload: { userName, description }\n };\n}\n\nfunction updateSuppliersPositions(suppliersPositions: Array) {\n return success(suppliersPositions);\n\n function success(suppliersPositions: Array): IUpdateSuppliersPositionsSuccess {\n return {\n type: IActionTypes.UPDATE_SUPPLIERS_POSITIONS_SUCCESS,\n payload: { suppliersPositions }\n };\n }\n}\n\nfunction applyToCurrentTender(\n mhcResponses: MustHaveConditionResponse[]\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const { tenderId } = getState().tender.currentTender;\n const { suppliersInvitationStatuses, countries } = getState().codeList;\n const responsesDTO = mhcResponses.map(m => ({ MustHaveConditionId: m.mhcId, NewResponse: m.response }));\n\n return tenderSupplierApi.applyToPublicTender(tenderId, responsesDTO).then(data => {\n const supplier = mapToSupplierFromTenderSupplierDTO(data, suppliersInvitationStatuses, countries);\n\n dispatch(addSupplierSuccess(supplier, false));\n });\n };\n}\n\nfunction goBackToAuction(tenderId: number, reason: string): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const username = getState().authentication.user.userName;\n return tenderSupplierApi.rejoinTender(tenderId, reason).then(res => {\n dispatch(updateSuppliersParictipationStatus(username, SuppliersTenderStatus.PENDING_COMEBACK));\n });\n };\n}\n\nfunction updateSuppliersParictipationStatus(\n userName: string,\n statusId: number\n): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const status = getState().codeList.suppliersInvitationStatuses.find(s => s.id === statusId)!;\n\n dispatch(success(userName, status));\n };\n function success(userName: string, status: CodeList): IUpdateSuppliersParticipationStatusSuccess {\n return {\n type: IActionTypes.UPDATE_SUPPLIERS_PARTICIPATION_STATUS,\n payload: { userName, status }\n };\n }\n}\n\nfunction updateSuppliersLastActivity(username: string, date: string): ThunkAction {\n return dispatch => {\n dispatch(success(username, date));\n };\n function success(username: string, date: string): IUpdateSuppliersLastActivityAction {\n return {\n type: IActionTypes.UPDATE_SUPPLIERS_LAST_ACTIVITY,\n payload: { username, date }\n };\n }\n}\n\nfunction addDemoBidders(tenderId: number): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n addDemoBiddersBE(tenderId)\n .then(res => {\n const suppliersInvitationStatuses = getState().codeList.suppliersInvitationStatuses;\n const countries = getState().codeList.countries;\n\n res.data.forEach(supplierDto => {\n const supplier = mapToSupplierFromTenderSupplierDTO(supplierDto, suppliersInvitationStatuses, countries);\n dispatch(addSupplier(supplier, false));\n });\n })\n .catch(error => {\n throw error;\n });\n };\n}\n\nfunction addBidChange(suppliersCriterionBid: SuppliersBidChange) {\n return success(suppliersCriterionBid);\n\n function success(bid: SuppliersBidChange): IAddBidChangeAction {\n return {\n type: IActionTypes.ADD_BID_CHANGE,\n payload: { bid }\n };\n }\n}\n\nfunction removeBidChange(suppliersCriterionBid: SuppliersBidChange) {\n return success(suppliersCriterionBid);\n\n function success(bid: SuppliersBidChange): IRemoveBidChangeAction {\n return {\n type: IActionTypes.REMOVE_BID_CHANGE,\n payload: { bid }\n };\n }\n}\n\nfunction toggleHideIrrelvantSuppliers(): IToggleHideIrelevantSuppliers {\n return { type: IActionTypes.TOGGLE_HIDE_IRRELEVANT_SUPPLIERS };\n}\n\nexport type TenderAction =\n | ILoadTemplateSuccessAction\n | ILoadTenderSuccessAction\n | ICreateTenderSuccessAction\n | IUpdateTenderPropsSuccessAction\n | IUpdateTenderOnBackendSuccessAction\n | IToggleFavoriteAction\n | IAddNewItemDetailsSucessAction\n | IUpdateItemDetailsSucessAction\n | IRemoveItemDetailsSucessAction\n | IAddNewCriterionDetailsSucessAction\n | IUpdateCriterionDetailsSucessAction\n | IRemoveCriterionDetailsSucessAction\n | IStartUploadingAttachmentsAction\n | IEndUploadingAttachmentsAction\n | IAddNewAttachmentsSucessAction\n | IStartUploadingSuppliersAttachmentsAction\n | IEndUploadingSuppliersAttachmentsAction\n | IAddNewSuppliersAttachmentsSucessAction\n | IRemoveAttachmentSucessAction\n | IRemoveSuppliersAttachmentSucessAction\n | IResetNewTenderSuccessAction\n | IAddAnnouncementAction\n | IAddSupplierSuccessAction\n | IRemoveSupplierSuccessAction\n | ISendInvitationsToSuppliersSuccessAction\n | IRespondToInvitationBySupplierSuccessAction\n | IAddNewMustHaveConditionSucessAction\n | IUpdateMustHaveConditionSucessAction\n | IRemoveMustHaveConditionSucessAction\n | IUpdateNewDeliveryAddressSuccessAction\n | ISUbmitChangeSuccess\n | IUpdateSuppliersItemBidSuccess\n | IUpdateSuppliersCriterionBidSuccess\n | IUpdateSuppliersOfferDescriptionSuccess\n | IUpdateSuppliersPositionsSuccess\n | IUpdateSuppliersParticipationStatusSuccess\n | IUpdateSuppliersBlockReasonAction\n | IUpdateSuppliersLastActivityAction\n | IScheduleTenderSuccess\n | IUpdateTenderStatusAction\n | IUnblockSupplierSuccessAction\n | IAddBidChangeAction\n | IRemoveBidChangeAction\n | IToggleHideIrelevantSuppliers\n | IUpdateSuppliersMHCResonsesSuccessAction\n | IUploadMainPictureSuccess\n | IRemoveMainPictureSuccess;\n\nexport {\n createNewTender,\n updateTenderProps,\n updateTenderOnBackend,\n loadTemplateToTender,\n loadTenderById,\n addNewItemDetails,\n updateItemDetails,\n removeItemDetails,\n addNewCriterionDetails,\n updateCriterionDetails,\n removeCriterionDetails,\n uploadAttachments,\n removeAttachment,\n resetCurrentTender,\n addSupplierByEmail,\n addSupplier,\n removeSupplier,\n sendInvitationToSupplier,\n sendInvitationsToSuppliers,\n addNewMusHaveCondition,\n updateMustHaveCondition,\n removeMustHaveCondition,\n updateNewDeliveryAddressProps,\n submitTenderChange,\n respondToInvitation,\n leaveAuction,\n goBackToAuction,\n updateSuppliersItemBid,\n updateSuppliersCriterionBid,\n updateSuppliersPositions,\n updateSuppliersParictipationStatus,\n uploadSuppliersAttachments,\n updateSuppliersOfferDescription,\n updateSuppliersBlockReason,\n updateSuppliersOfferDescriptionSuccess,\n removeSuppliersAttachment,\n blockSupplier,\n duplicateTender,\n addDemoBidders,\n scheduleTender,\n addAnnouncement,\n loadTenderForAuctionOverview,\n updateTenderStatus,\n updateTender,\n updateNewDeliveryAddress,\n unblockSupplier,\n addBidChange,\n removeBidChange,\n toggleHideIrrelvantSuppliers,\n updateSuppliersLastActivity,\n toggleFavoriteTender,\n removeSuppliersAttachmentSuccess,\n updateSuppliersMHCResponses,\n updateSuppliersMHCResponsesSuccess,\n applyToCurrentTender,\n uploadMainPicture,\n removeMainPicture\n};\n","// const productionUrl = 'https://devapi.bestauction.com'; // DEV;\n// const developmentUrl = 'https://devapi.bestauction.com'; // DEV;\n// const productionUrl = 'https://appapi.bestauction.com';\n// const developmentUrl = 'https://appapi.bestauction.com';\n\nconst API_URL = process.env.REACT_APP_API_URL;\nexport default API_URL;\n\nconst googleApiKey = 'AIzaSyAuIfurumzj2HWLloCg1me63r65U_pWoRY';\n\nexport const GOOGLE_MAP_URL = `https://maps.googleapis.com/maps/api/js?key=${googleApiKey}&language=en&v=3.exp&libraries=geometry,drawing,places`;\n\nexport const RECAPTCHA_SITE_KEY = '6LdSqagUAAAAAP9oxL0SKqAbYKezYrB5fTI8eBqF';\n\nexport const MAILCHIMP_API_KEY = 'f19da5925795626f6d65babbc4fc2028-us17';\nexport const MAILCHIMP_LIST_ID = '12b8de72b5';\n\nexport const IMAGE_ORIGIN =\n process.env.NODE_ENV === 'development' ? 'https://dev.bestauction.com' : window.location.origin;\n","import {\n Currency,\n CodeList,\n Industry,\n Country,\n AddressCodeList,\n Address,\n AddressSource\n} from '_types/commonTypes';\nimport { ThunkAction } from 'redux-thunk';\n\nimport * as codeListService from '_api/codeListApi';\nimport { mapAddresses } from '_mappers/codeListMapper';\nimport { IApplicationState } from 'core/reducer';\n\nexport enum IActionTypes {\n LOAD_CURRENCIES_SUCCESS = '[LOAD_CURRENCIES] SUCCESS',\n LOAD_UNITS_OF_MEASUREMENT_SUCCESS = '[LOAD_UNITS_OF_MEASUREMENT] SUCCESS',\n LOAD_UNITS_OF_TENDER_CRITERION_SUCCESS = '[LOAD_UNITS_OF_TENDER_CRITERION] SUCCESS',\n LOAD_INDUSTRIES_SUCCESS = '[LOAD_INDUSTRIES_SUCCESS] SUCCESS',\n LOAD_CANADA_PROVINCES_SUCCESS = '[LOAD_PROVINCES_SUCCESS] SUCCESS',\n LOAD_USA_STATES_SUCCESS = '[LOAD_USA_STATES_SUCCESS] SUCCESS',\n LOAD_COUNTRIES_SUCCESS = '[LOAD_COUNTRIES_SUCCESS] SUCCESS',\n LOAD_TENDER_STATUSES_SUCCESS = '[LOAD_TENDER_STATUSES] SUCCESS',\n LOAD_ADDRESSES_CODELIST_SUCCESS = '[LOAD_ADDRESSES_CODELIST] SUCCESS',\n LOAD_SUPPLIERS_INVITATION_STATUSES_SUCCESS = '[LOAD_SUPPLIERS_INVITATION_STATUSES] SUCCESS',\n ADD_NEW_ADDRESS_SUCCESS = '[ADD_NEW_ADDRESS_ADDRESS] SUCCESS',\n UPDATE_ADDRESS_CODELIST_SUCCESS = '[UPDATE_ADDRESS_CODELIST] SUCCESS',\n REMOVE_INSERT_NEW_ADDRESS_SUCCESS = '[REMOVE_INSERT_NEW_ADDRESS] SUCCESS',\n RESET_ADDRESSES_SUCCES = '[RESET_ADDRESSES] SUCCES',\n TENDER_CODELISTS_LOADED_SUCCESS = '[TENDER_CODELISTS_LOADED] SUCCESS'\n}\n\ninterface ILoadCurrenciesSuccessAction {\n type: IActionTypes.LOAD_CURRENCIES_SUCCESS;\n payload: { currencies: Currency[] };\n}\n\ninterface ILoadUnitsOfMeasurementSuccessAction {\n type: IActionTypes.LOAD_UNITS_OF_MEASUREMENT_SUCCESS;\n payload: { unitsOfMeasurement: Array> };\n}\ninterface ILoadUnitsOfTenderCriterionSuccessAction {\n type: IActionTypes.LOAD_UNITS_OF_TENDER_CRITERION_SUCCESS;\n payload: { unitsOfTenderCriterion: Array> };\n}\ninterface ILoadCountriesSuccessAction {\n type: IActionTypes.LOAD_COUNTRIES_SUCCESS;\n payload: { countries: Array };\n}\ninterface ILoadTenderStatusesSuccessAction {\n type: IActionTypes.LOAD_TENDER_STATUSES_SUCCESS;\n payload: { statuses: Array> };\n}\ninterface ILoadIndustriesSuccessAction {\n type: IActionTypes.LOAD_INDUSTRIES_SUCCESS;\n payload: { industries: Industry[] };\n}\ninterface ILoadCanadaProvincesSuccessAction {\n type: IActionTypes.LOAD_CANADA_PROVINCES_SUCCESS;\n payload: { provinces: Array> };\n}\ninterface ILoadUSAStatesSuccessAction {\n type: IActionTypes.LOAD_USA_STATES_SUCCESS;\n payload: { states: Array> };\n}\ninterface ILoadCodelistAddressesSuccessAction {\n type: IActionTypes.LOAD_ADDRESSES_CODELIST_SUCCESS;\n payload: { addresses: AddressCodeList[] };\n}\ninterface ILoadSuppliersInvitationStatusesSuccess {\n type: IActionTypes.LOAD_SUPPLIERS_INVITATION_STATUSES_SUCCESS;\n payload: { statuses: Array> };\n}\n\ninterface IAddNewAddressSuccess {\n type: IActionTypes.ADD_NEW_ADDRESS_SUCCESS;\n payload: { address: AddressCodeList };\n}\ninterface IUpdateAddressCodelistSuccess {\n type: IActionTypes.UPDATE_ADDRESS_CODELIST_SUCCESS;\n payload: { index: number; address: Address };\n}\ninterface IResetAddressesSuccess {\n type: IActionTypes.RESET_ADDRESSES_SUCCES;\n}\ninterface ITenderCodelistsLoadedSuccess {\n type: IActionTypes.TENDER_CODELISTS_LOADED_SUCCESS;\n}\n\nfunction loadCurrenciesCodeList(): ThunkAction, any, null, any> {\n return dispatch => {\n return codeListService\n .fetchCurrencies()\n .then(currencies => {\n dispatch(success(currencies));\n return currencies;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(currencies: Currency[]): ILoadCurrenciesSuccessAction {\n return { type: IActionTypes.LOAD_CURRENCIES_SUCCESS, payload: { currencies } };\n }\n}\n\nfunction loadUnitsOfMeasurementCodeList(): ThunkAction, any, null, any> {\n return dispatch => {\n return codeListService\n .fetchUnitsOfMeasurement()\n .then(unitsOfMeasurement => {\n dispatch(success(unitsOfMeasurement));\n return unitsOfMeasurement;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(unitsOfMeasurement: Array>): ILoadUnitsOfMeasurementSuccessAction {\n return {\n type: IActionTypes.LOAD_UNITS_OF_MEASUREMENT_SUCCESS,\n payload: { unitsOfMeasurement }\n };\n }\n}\n\nfunction loadUnitsOfTenderCriterionCodeList(): ThunkAction, any, null, any> {\n return dispatch => {\n return codeListService\n .fetchUnitsOfTenderCriterion()\n .then(unitsOfTenderCriterion => {\n dispatch(success(unitsOfTenderCriterion));\n return unitsOfTenderCriterion;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(unitsOfTenderCriterion: Array>): ILoadUnitsOfTenderCriterionSuccessAction {\n return {\n type: IActionTypes.LOAD_UNITS_OF_TENDER_CRITERION_SUCCESS,\n payload: { unitsOfTenderCriterion }\n };\n }\n}\n\nfunction loadIndustriesCodeList(): ThunkAction, any, null, any> {\n return dispatch => {\n return codeListService\n .fetchIndustries()\n .then(industries => {\n dispatch(success(industries));\n return industries;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(industries: Industry[]): ILoadIndustriesSuccessAction {\n return {\n type: IActionTypes.LOAD_INDUSTRIES_SUCCESS,\n payload: { industries }\n };\n }\n}\n\nfunction loadCanadaProvinces(): ThunkAction, any, null, any> {\n return dispatch => {\n return codeListService\n .fetchCanadaProvinces()\n .then(provinces => {\n dispatch(success(provinces));\n return provinces;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(provinces: Array>): ILoadCanadaProvincesSuccessAction {\n return {\n type: IActionTypes.LOAD_CANADA_PROVINCES_SUCCESS,\n payload: { provinces }\n };\n }\n}\n\nfunction loadUSAStates(): ThunkAction, any, null, any> {\n return dispatch => {\n return codeListService\n .fetchUSAStates()\n .then(provinces => {\n dispatch(success(provinces));\n return provinces;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(states: Array>): ILoadUSAStatesSuccessAction {\n return {\n type: IActionTypes.LOAD_USA_STATES_SUCCESS,\n payload: { states }\n };\n }\n}\n\nfunction loadCountriesCodeList(): ThunkAction, any, null, any> {\n return dispatch => {\n return codeListService\n .fetchCountries()\n .then(countries => {\n dispatch(success(countries));\n return countries;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(countries: Array): ILoadCountriesSuccessAction {\n return {\n type: IActionTypes.LOAD_COUNTRIES_SUCCESS,\n payload: { countries }\n };\n }\n}\nfunction loadTenderStatusesCodeList(): ThunkAction, any, null, any> {\n return dispatch => {\n return codeListService\n .fetchTenderStatuses()\n .then(statuses => {\n dispatch(success(statuses));\n return statuses;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(statuses: Array>): ILoadTenderStatusesSuccessAction {\n return {\n type: IActionTypes.LOAD_TENDER_STATUSES_SUCCESS,\n payload: { statuses }\n };\n }\n}\n\nfunction loadAddressesCodeList(): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n return codeListService\n .fetchAddressesBE()\n .then(res => {\n const countries = getState().codeList.countries;\n const addresses = mapAddresses(res.data, countries);\n dispatch(success(addresses));\n return addresses;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(addresses: AddressCodeList[]): ILoadCodelistAddressesSuccessAction {\n return {\n type: IActionTypes.LOAD_ADDRESSES_CODELIST_SUCCESS,\n payload: { addresses }\n };\n }\n}\n\nfunction loadSuppiersInvitationStatusCodeList(): ThunkAction, any, null, any> {\n return dispatch => {\n return codeListService\n .fetchSuppliersInvitationStatuses()\n .then(statuses => {\n dispatch(success(statuses));\n return statuses;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(statuses: Array>): ILoadSuppliersInvitationStatusesSuccess {\n return {\n type: IActionTypes.LOAD_SUPPLIERS_INVITATION_STATUSES_SUCCESS,\n payload: { statuses }\n };\n }\n}\n\n// New address needs to be added/updated to codelist, because this address\n// doesn't have to be present in addresses codelist, because of there are only\n// 3 last delivery addreses\nfunction upsertDeliveryAddressCodelist(\n tenderAddressSource: number,\n tenderAddress: Address\n): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const codelistAddresses = getState().codeList.addresses;\n const address = codelistAddresses.find(\n a =>\n a.addressSource === tenderAddressSource &&\n a.address.country.id === tenderAddress.country.id &&\n a.address.zipCode === tenderAddress.zipCode &&\n a.address.streetAddress === tenderAddress.streetAddress\n );\n\n if (!address && tenderAddress.id !== 0) {\n const addressId = codelistAddresses.findIndex(\n a => a.addressSource === AddressSource.DELIVERY && a.address.id !== 0\n );\n\n if (addressId > -1) {\n dispatch(updateAddressCodeList(addressId, tenderAddress));\n } else {\n dispatch(\n addNewAddress({\n addressSource: 3,\n address: tenderAddress\n })\n );\n }\n }\n };\n}\n\n// Updates/inserts address by address source, mainly for company / home address usage\nfunction upsertAddressCodelist(addressSource: number, address: Address): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const index = getState().codeList.addresses.findIndex(a => a.addressSource === addressSource);\n if (index > -1) {\n dispatch(updateAddressCodeList(index, address));\n } else {\n dispatch(addNewAddress({ addressSource, address }));\n }\n };\n}\n\nfunction updateAddressCodeList(index: number, address: Address): IUpdateAddressCodelistSuccess {\n return {\n type: IActionTypes.UPDATE_ADDRESS_CODELIST_SUCCESS,\n payload: { index, address }\n };\n}\n\nfunction addNewAddress(address: AddressCodeList): IAddNewAddressSuccess {\n return {\n type: IActionTypes.ADD_NEW_ADDRESS_SUCCESS,\n payload: { address }\n };\n}\nfunction resetAddressesCodeList(): IResetAddressesSuccess {\n return { type: IActionTypes.RESET_ADDRESSES_SUCCES };\n}\nfunction tenderCodelistsLoaded(): ITenderCodelistsLoadedSuccess {\n return { type: IActionTypes.TENDER_CODELISTS_LOADED_SUCCESS };\n}\n\nexport type CodeListAction =\n | ILoadCurrenciesSuccessAction\n | ILoadUnitsOfMeasurementSuccessAction\n | ILoadUnitsOfTenderCriterionSuccessAction\n | ILoadIndustriesSuccessAction\n | ILoadCountriesSuccessAction\n | ILoadCodelistAddressesSuccessAction\n | ILoadSuppliersInvitationStatusesSuccess\n | IAddNewAddressSuccess\n | IResetAddressesSuccess\n | ITenderCodelistsLoadedSuccess\n | IUpdateAddressCodelistSuccess\n | ILoadTenderStatusesSuccessAction\n | ILoadCanadaProvincesSuccessAction\n | ILoadUSAStatesSuccessAction;\n\nexport {\n loadCurrenciesCodeList,\n loadUnitsOfMeasurementCodeList,\n loadUnitsOfTenderCriterionCodeList,\n loadIndustriesCodeList,\n loadCountriesCodeList,\n loadAddressesCodeList,\n loadSuppiersInvitationStatusCodeList,\n loadTenderStatusesCodeList,\n resetAddressesCodeList,\n tenderCodelistsLoaded,\n upsertDeliveryAddressCodelist,\n addNewAddress,\n updateAddressCodeList,\n upsertAddressCodelist,\n loadCanadaProvinces,\n loadUSAStates\n};\n","import { AddressCodeList, Country } from '_types/commonTypes';\nimport { mapDtoToAddress } from './commonMapper';\n\nexport const mapAddresses = (data: any, countries: Country[]): AddressCodeList[] => {\n const result: AddressCodeList[] = [];\n\n data.forEach(element => {\n result.push({\n addressSource: element.AddressSource,\n address: mapDtoToAddress(element.AddressDto, countries)\n });\n });\n\n return result;\n};\n","import { ThunkAction } from 'redux-thunk';\nimport qs from 'qs';\nimport moment from 'moment';\n\nimport * as userService from '_api/userApi';\nimport * as alertActions from './alertActions';\nimport history from '_libs/history';\nimport TokenStorageManager, { JWT_TOKEN, REFRESH_TOKEN } from '_libs/tokenStorageManager/tokenStorageManager';\nimport setDefaultAuthorizationHeader from '_libs/setDefaultAuthorizationHeader';\nimport { actionDispatcher } from '_libs/actionDispatcher';\nimport { routes } from '_constants/routesConstants';\nimport {\n LoginOptions,\n TenderRedirectQueryString,\n User,\n Company,\n Address,\n AddressSource,\n Role,\n GAUtmParams,\n IAction\n} from '_types/commonTypes';\nimport { mapToUser, mapToUserDetailsDTO, mapToCompanyDTO } from '_mappers/userMapper';\nimport { IApplicationState } from 'core/reducer';\nimport { mapAddressToDto } from '_mappers/commonMapper';\nimport { addNewAddress } from './codeListActions';\nimport { ShowSuccessToast, ShowErrorToast } from '_components/toasts/toast';\nimport { userInfoResponseErrors } from '_constants/commonConstants';\nimport commonActions from './commonActions';\nimport { UserDetailsDTO } from '_types/backendTypes';\n\nexport type NewUser = {\n email: string;\n password: string;\n confirmationPassword: string;\n};\n\nexport type NewUserErrors = NewUser;\n\nexport enum IActionTypes {\n LOGIN_REQUEST = '[login] REQUEST',\n LOGIN_SUCCESS = '[login] SUCCESS',\n LOGIN_FAILURE = '[login] FAILURE',\n LOGOUT = '[logout] LOGOUT',\n REGISTER_REQUEST = '[REGISTER] REQUEST',\n REGISTER_SUCCESS = '[REGISTER] SUCCESS',\n REGISTER_FAILURE = '[REGISTER] FAILURE',\n AUTHENTICATION_SUCCESS = '[AUTHENTICATION] SUCCESS',\n LOAD_USER_DETAILS = '[LOAD_USER_DETAILS] SUCCESS',\n UPDATE_USER_DETAILS = '[UPDATE_USER_DETAILS] SUCCESS',\n UPDATE_COMPANY_DETAILS = '[UPDATE_COMPANY_DETAILS] SUCCESS',\n SAVE_ADDRESS_TO_USER = '[SAVE_ADDRESS_TO_USER] SUCCESS',\n SAVE_ADDRESS_TO_COMPANY = '[SAVE_ADDRESS_TO_COMPANY] SUCCESS',\n USER_DETAILS_LOADED = 'USER_DETAILS_LOADED',\n UPDATE_BILING_INFO = 'UPDATE_BILLING_INFO',\n REDUCE_REMAINING_FREE_TENDERS = 'REDUCE_REMAINING_FREE_TENDERS',\n PROFILE_FILLED = 'PROFILE_FILLED',\n SURVEY_FILLED = 'SURVEY_FILLED'\n}\n\ninterface ILoginRequestAction {\n type: IActionTypes.LOGIN_REQUEST;\n payload: { userName: string };\n}\ninterface ILoginSuccessAction {\n type: IActionTypes.LOGIN_SUCCESS;\n payload: { userName: string };\n}\ninterface ILoginFailureAction {\n type: IActionTypes.LOGIN_FAILURE;\n payload: { error: string };\n}\ninterface ILogoutAction {\n type: IActionTypes.LOGOUT;\n}\ninterface IRegisterRequestAction {\n type: IActionTypes.REGISTER_REQUEST;\n}\ninterface IRegisterSuccessAction {\n type: IActionTypes.REGISTER_SUCCESS;\n}\ninterface IRegisterFailureAction {\n type: IActionTypes.REGISTER_FAILURE;\n payload: { error: string };\n}\ninterface IAuthenticateUserSuccessAction {\n type: IActionTypes.AUTHENTICATION_SUCCESS;\n payload: {\n userName: string;\n isProfileFilled: boolean;\n roles: Role[];\n expires: Date;\n surveyCompleted: boolean;\n remainingFreeTenders: number;\n creationDate: Date;\n };\n}\ninterface ILoadUserDetailsSuccessAction {\n type: IActionTypes.LOAD_USER_DETAILS;\n payload: { user: User };\n}\ninterface IUpdateUserDetailsSuccessAction {\n type: IActionTypes.UPDATE_USER_DETAILS;\n payload: { user: User };\n}\ninterface IUpdateCompanyDetailsSuccessAction {\n type: IActionTypes.UPDATE_COMPANY_DETAILS;\n payload: { company: Company };\n}\ninterface ISaveAddressToUserSuccessAction {\n type: IActionTypes.SAVE_ADDRESS_TO_USER;\n payload: { address: Address };\n}\ninterface ISaveAddressToCompanySuccessAction {\n type: IActionTypes.SAVE_ADDRESS_TO_COMPANY;\n payload: { address: Address };\n}\ninterface ISaveAddressToCompanySuccessAction {\n type: IActionTypes.SAVE_ADDRESS_TO_COMPANY;\n payload: { address: Address };\n}\ninterface ISaveAddressToCompanySuccessAction {\n type: IActionTypes.SAVE_ADDRESS_TO_COMPANY;\n payload: { address: Address };\n}\ninterface IUserDetailsLoadedAction {\n type: IActionTypes.USER_DETAILS_LOADED;\n}\ninterface IProfileFilledAction {\n type: IActionTypes.PROFILE_FILLED;\n}\ninterface ISurveyFilledAction {\n type: IActionTypes.SURVEY_FILLED;\n}\n\ninterface IUpdateBillingInfo {\n type: IActionTypes.UPDATE_BILING_INFO;\n payload: { role: Role[]; expires: string };\n}\n\ninterface IReduceRemainingFreeTenders extends IAction {}\n\nfunction request(userName: string): ILoginRequestAction {\n return { type: IActionTypes.LOGIN_REQUEST, payload: { userName } };\n}\nfunction success(userName: string): ILoginSuccessAction {\n return { type: IActionTypes.LOGIN_SUCCESS, payload: { userName } };\n}\nfunction failure(error: string): ILoginFailureAction {\n return { type: IActionTypes.LOGIN_FAILURE, payload: { error } };\n}\n\nfunction login(\n userName: string,\n password: string,\n options: LoginOptions\n): ThunkAction, any, null, any> {\n return dispatch => {\n dispatch(request(userName));\n setDefaultAuthorizationHeader('');\n\n return userService\n .loginBE(userName, password)\n .then(data => {\n const storage = options.staySignedIn ? localStorage : sessionStorage;\n const storageManager = new TokenStorageManager(storage);\n storageManager.setJwtToken(data.access_token);\n storageManager.setRefreshToken(data.refresh_token);\n setDefaultAuthorizationHeader(data.access_token);\n\n dispatch(success(data.userName));\n dispatch(authenticateUser(data.access_token));\n\n if (options.externalToken) {\n userService.checkExternalToken(options.externalToken);\n }\n\n return true;\n })\n .catch(error => {\n dispatch(failure(error));\n dispatch(alertActions.error(error.data.error_description));\n return false;\n });\n };\n}\n\nfunction impersonate(userName: string): ThunkAction, any, null, any> {\n return dispatch => {\n dispatch(request(userName));\n\n return userService\n .impersonate(userName)\n .then(data => {\n const storage = sessionStorage;\n const storageManager = new TokenStorageManager(storage);\n storageManager.setJwtToken(data.access_token);\n storageManager.setRefreshToken(data.refresh_token);\n setDefaultAuthorizationHeader(data.access_token);\n\n dispatch(success(userName));\n dispatch(authenticateUser(data.access_token));\n\n return true;\n })\n .catch(error => {\n dispatch(failure(error));\n dispatch(alertActions.error(error.data.error_description));\n return false;\n });\n };\n}\n\nfunction externalLogin(token: string, refreshToken: string): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const localization = getState().common.localization;\n\n return userService\n .fetchUserInfoBE(token)\n .then(data => {\n const storageManager = new TokenStorageManager(localStorage);\n storageManager.setJwtToken(token);\n storageManager.setRefreshToken(refreshToken);\n setDefaultAuthorizationHeader(token);\n\n dispatch(success(data.Name));\n dispatch(\n successAuthenticateUser(\n data.name,\n data.IsUserProfileFilled,\n data.InRoles,\n moment(data.Expires).toDate(),\n data.SurveyCompleted,\n data.RemainingFreeTenders,\n data.Created ? moment(data.Created).toDate() : null\n )\n );\n dispatch(\n commonActions.setPendingCounters(data.PendingAuctionInvitationsCount, data.PendingPublicBiddersCount)\n );\n actionDispatcher.dispatchAllStartupActions(dispatch, token);\n return true;\n })\n .catch(error => {\n dispatch(failure(error));\n dispatch(\n alertActions.error(\n error === userInfoResponseErrors.NOT_ACTIVATED\n ? localization.external_login_failed_not_activated\n : localization.external_login_failed_not_authenticated\n )\n );\n return false;\n });\n };\n}\n\nfunction fillProfile(): IProfileFilledAction {\n return { type: IActionTypes.PROFILE_FILLED };\n}\n\nfunction fillSurvey(): ISurveyFilledAction {\n return { type: IActionTypes.SURVEY_FILLED };\n}\n\n/**\n * Gets user info from backend if thats not possible due to wrong token user will be redirected\n * to login page and needs to be login\n * @param token - bearer token\n */\nfunction authenticateUser(token: string): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const localization = getState().common.localization;\n return userService\n .fetchUserInfoBE(token)\n .then(data => {\n dispatch(\n successAuthenticateUser(\n data.Name,\n data.IsUserProfileFilled,\n data.InRoles,\n moment(data.Expires).toDate(),\n data.SurveyCompleted,\n data.RemainingFreeTenders,\n data.Created ? moment(data.Created).toDate() : null\n )\n );\n dispatch(\n commonActions.setPendingCounters(data.PendingAuctionInvitationsCount, data.PendingPublicBiddersCount)\n );\n actionDispatcher.dispatchAllStartupActions(dispatch, token);\n return true;\n })\n .catch(error => {\n dispatch(failure(error));\n dispatch(alertActions.error(localization.authentication_failed));\n return false;\n });\n };\n}\n\nfunction successAuthenticateUser(\n userName: string,\n isProfileFilled: boolean,\n roles: Role[],\n expires: Date,\n surveyCompleted: boolean,\n remainingFreeTenders,\n creationDate\n): IAuthenticateUserSuccessAction {\n return {\n type: IActionTypes.AUTHENTICATION_SUCCESS,\n payload: { userName, isProfileFilled, roles, expires, surveyCompleted, remainingFreeTenders, creationDate }\n };\n}\n\nfunction logout(): ThunkAction, any, null, any> {\n return dispatch => {\n return userService\n .logoutBE()\n .then(() => {\n dispatch(success());\n localStorage.removeItem(JWT_TOKEN);\n sessionStorage.removeItem(JWT_TOKEN);\n localStorage.removeItem(REFRESH_TOKEN);\n sessionStorage.removeItem(REFRESH_TOKEN);\n setDefaultAuthorizationHeader('');\n return true;\n })\n .catch(() => {\n return false;\n });\n };\n\n function success(): ILogoutAction {\n return { type: IActionTypes.LOGOUT };\n }\n}\n\nfunction register(\n user: NewUser,\n subscribeForNewsletter: boolean,\n tenderRedirectQueryString: TenderRedirectQueryString | null | undefined,\n utmString?: string\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const localization = getState().common.localization;\n dispatch(request());\n\n debugger;\n return userService\n .registerBE(\n user,\n subscribeForNewsletter,\n tenderRedirectQueryString?.externalToken,\n tenderRedirectQueryString?.tenderId,\n utmString\n )\n .then(() => {\n dispatch(success());\n if (tenderRedirectQueryString) {\n const { redirect, tenderId, externalToken } = tenderRedirectQueryString;\n history.push({\n pathname: routes.LOGIN,\n search: qs.stringify({ redirect, tenderId, externalToken })\n });\n } else {\n history.push(routes.LOGIN);\n }\n\n dispatch(alertActions.success(localization.registration_successful));\n })\n .catch(error => {\n dispatch(failure(error));\n dispatch(alertActions.error(error));\n throw new Error(error);\n });\n };\n\n function request(): IRegisterRequestAction {\n return { type: IActionTypes.REGISTER_REQUEST };\n }\n\n function success(): IRegisterSuccessAction {\n return { type: IActionTypes.REGISTER_SUCCESS };\n }\n\n function failure(error: string): IRegisterFailureAction {\n return { type: IActionTypes.REGISTER_FAILURE, payload: { error } };\n }\n}\n\nfunction loadUserDetails(): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n return userService\n .fetchUserDetailsBE()\n .then(res => mapToUser(res.data, getState().codeList.countries, getState().codeList.industries))\n .then(user => {\n dispatch(success(user));\n dispatch(userDetailsLoaded());\n })\n .catch(err => {\n dispatch(userDetailsLoaded());\n throw err;\n });\n };\n\n function success(user: User): ILoadUserDetailsSuccessAction {\n return { type: IActionTypes.LOAD_USER_DETAILS, payload: { user } };\n }\n}\n\nfunction updateUserDetails(user: User): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const localization = getState().common.localization;\n const dto = mapToUserDetailsDTO(user);\n\n return userService\n .updateUserDetailsBE(dto)\n .then(res => {\n const data: UserDetailsDTO = res.data;\n dispatch(success({ ...user, isEmailConfirmed: data.ContactEmailConfirmed }));\n\n if (!data.ContactEmailConfirmed) {\n ShowSuccessToast('Please check your email to activate', { autoClose: 8000 });\n }\n\n ShowSuccessToast(localization.save_profile_success_toast, { autoClose: 1000 });\n return true;\n })\n .catch(err => {\n ShowErrorToast(localization.save_profile_error_toast);\n return false;\n });\n };\n\n function success(user: User): IUpdateUserDetailsSuccessAction {\n return { type: IActionTypes.UPDATE_USER_DETAILS, payload: { user } };\n }\n}\n\nfunction updateCompanyDetails(company: Company): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const localization = getState().common.localization;\n const dto = mapToCompanyDTO(company);\n\n return userService\n .updateCompanyDetailsBE(dto)\n .then(() => {\n dispatch(success(company));\n ShowSuccessToast(localization.save_profile_success_toast);\n return true;\n })\n .catch(err => {\n ShowErrorToast(localization.save_profile_error_toast);\n return false;\n });\n };\n\n function success(company: Company): IUpdateCompanyDetailsSuccessAction {\n return { type: IActionTypes.UPDATE_COMPANY_DETAILS, payload: { company } };\n }\n}\n\nfunction saveUserAddress(address: Address) {\n return successSaveUserAddress(address);\n}\n\nfunction saveCompanyAddress(address: Address) {\n return successSaveCompanyAddress(address);\n}\n\nfunction saveAddressToProfile(\n saveToUserAddress: boolean,\n address: Address\n): ThunkAction, any, null, any> {\n return dispatch => {\n const dto = mapAddressToDto(address);\n return userService\n .saveAddressToProfileBE(saveToUserAddress, dto)\n .then(res => {\n if (res.data) {\n if (saveToUserAddress) {\n dispatch(successSaveUserAddress(address));\n dispatch(addNewAddress({ addressSource: AddressSource.USER, address }));\n } else {\n dispatch(successSaveCompanyAddress(address));\n dispatch(addNewAddress({ addressSource: AddressSource.COMPANY, address }));\n }\n }\n })\n .catch(err => {\n throw err;\n });\n };\n}\n\nfunction updateBillingInfo(roles: Role[], expires: string): IUpdateBillingInfo {\n return { type: IActionTypes.UPDATE_BILING_INFO, payload: { role: roles, expires } };\n}\n\nfunction reduceRemainingFreeTenders(): IReduceRemainingFreeTenders {\n return { type: IActionTypes.REDUCE_REMAINING_FREE_TENDERS, payload: {} };\n}\n\nfunction successSaveUserAddress(address: Address): ISaveAddressToUserSuccessAction {\n return { type: IActionTypes.SAVE_ADDRESS_TO_USER, payload: { address } };\n}\n\nfunction successSaveCompanyAddress(address: Address): ISaveAddressToCompanySuccessAction {\n return { type: IActionTypes.SAVE_ADDRESS_TO_COMPANY, payload: { address } };\n}\n\nfunction userDetailsLoaded(): IUserDetailsLoadedAction {\n return { type: IActionTypes.USER_DETAILS_LOADED };\n}\n\nexport type LoginAction = ILoginRequestAction | ILoginSuccessAction | ILoginFailureAction | ILogoutAction;\n\nexport type AuthenticationAction =\n | IAuthenticateUserSuccessAction\n | LoginAction\n | ILoadUserDetailsSuccessAction\n | IUpdateUserDetailsSuccessAction\n | IUpdateCompanyDetailsSuccessAction\n | ISaveAddressToUserSuccessAction\n | ISaveAddressToCompanySuccessAction\n | IUserDetailsLoadedAction\n | IProfileFilledAction\n | ISurveyFilledAction\n | IUpdateBillingInfo\n | IReduceRemainingFreeTenders;\n\nexport type RegisterAction = IRegisterRequestAction | IRegisterSuccessAction | IRegisterFailureAction;\n\nexport {\n login,\n externalLogin,\n logout,\n register,\n authenticateUser,\n loadUserDetails,\n updateUserDetails,\n updateCompanyDetails,\n saveAddressToProfile,\n saveUserAddress,\n saveCompanyAddress,\n userDetailsLoaded,\n fillProfile,\n fillSurvey,\n updateBillingInfo,\n reduceRemainingFreeTenders,\n impersonate\n};\n","import axios, { AxiosRequestConfig } from 'axios';\n\nimport API_URL from '_constants/apiConstants';\nimport { Tender } from '_types/tenderTypes';\nimport { mapToTenderDTO } from '_mappers/tenderMapper';\nimport { Order } from '_types/commonTypes';\nexport const TENDER_URL = '/api/tender';\n\nconst TENDER_API_URL = API_URL + TENDER_URL;\n\nexport const fetchTenderTemplates = (): Promise => {\n return axios.get(`${TENDER_API_URL}/TenderDtoWithDefaults`);\n};\n\n/**\n * Fetches my tenders list\n */\nexport const fetchMyTendersBE = async (\n currentPage: number,\n pageLimit: number,\n filter: string,\n sort: Order,\n search: string\n): Promise => {\n const res = await axios.get(`${TENDER_API_URL}/GetMyTenders`, {\n params: {\n filter,\n searchByColumn: sort.columnId,\n order: sort.direction,\n pageNo: currentPage,\n recordsPerPage: pageLimit,\n name: search\n }\n });\n return res;\n};\n\n/**\n * Returns tender\n */\nexport const fetchTenderBE = async (id: number): Promise => {\n const res = await axios.get(`${TENDER_API_URL}/GetTender`, { params: { id } });\n return res;\n};\n\nexport const messageToAllBidders = (id: number, message: string): Promise => {\n return axios.post(`${TENDER_API_URL}/MessageToBidders`, { msg: message }, { params: { id } });\n};\n\n/**\n * Returns last unfinished tender id, if not found tender id is -1\n */\nexport const fetchLastUnfinishedTenderBE = async (): Promise => {\n const res = await axios.get(`${TENDER_API_URL}/MyLastOpenTender`);\n return res;\n};\n\n/**\n * Create new tender and receives tenderId\n */\nexport const createNewTenderBE = async (): Promise => {\n const res = await axios.post(`${TENDER_API_URL}/CreateNewTenderId`);\n return res.data;\n};\n\nexport const duplicateTenderBE = async (tenderId: number): Promise => {\n const res = await axios.post(`${TENDER_API_URL}/DuplicateTender`, {}, { params: { tenderId } });\n return res;\n};\n\nconst fetchLatestPublicTenders = (pageNumber: number, recordsPerPage: number) => {\n return axios.get(`${TENDER_API_URL}/LatestPublicTenders`, { params: { pageNo: pageNumber, recordsPerPage } });\n};\n\nexport const CancelTender = async (tenderId: number, reason: string): Promise => {\n const res = await axios.post(`${TENDER_API_URL}/CancelTender`, {}, { params: { tenderId, reason } });\n return res;\n};\n\nexport const HideTender = async (tenderId: number, hidden: boolean): Promise => {\n const res = await axios.patch(`${TENDER_API_URL}/HideTender`, {}, { params: { tenderId, hidden } });\n\n return res;\n};\n\nexport const uploadAttachmentBE = async (tenderId: number, formData: FormData) => {\n return axios.post(`${TENDER_API_URL}/UploadAttachment`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' },\n params: {\n tenderId\n }\n });\n};\n\nexport const uploadMainPicture = (tenderId: number, formData: FormData) => {\n return axios.post(`${TENDER_API_URL}/UploadMainPicture`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' },\n params: {\n tenderId\n }\n });\n};\n\nexport const removeMainPicture = (tenderId: number) => {\n return axios.delete(`${TENDER_API_URL}/DeleteMainPicture`, { params: { tenderId } });\n};\n\nexport const downloadAttachmentBE = async (id: number) => {\n return axios.get(`${TENDER_API_URL}/GetFileById`, {\n params: {\n attachmentId: id\n },\n responseType: 'blob'\n });\n};\n\nexport const removeAttachmentBE = async (id: number) => {\n return axios.delete(`${TENDER_API_URL}/DeleteAttachmentById`, {\n params: {\n attachmentId: id\n }\n });\n};\n\nconst removeTenderDraft = async (id: number) => {\n return axios.delete(`${TENDER_API_URL}/DeleteTenderDraft`, {\n params: {\n tenderId: id\n }\n });\n};\n/**\n * Update tender\n */\nexport const updateTenderBE = async (tender: Tender, deliveryAddressChanged: boolean = false): Promise => {\n const data: any = mapToTenderDTO(tender, deliveryAddressChanged);\n const res = await axios.post(`${TENDER_API_URL}/UpdateTender`, data);\n return res;\n};\n\n/**\n * Removes tender\n * @param tenderId - tender id\n */\nexport const removeTender = async (tenderId: number): Promise => {\n const res = await axios.post(\n `${TENDER_API_URL}/DeleteTender`,\n {},\n {\n params: {\n Id: tenderId\n }\n }\n );\n return res;\n};\n\n/**\n * Prolongs tender\n * @param tenderId\n * @param additionalDuration\n */\nexport const prolongTender = async (tenderId: number, additionalDuration: number): Promise => {\n const config: AxiosRequestConfig = {\n params: {\n tenderId: tenderId,\n length: additionalDuration\n }\n };\n\n const res = await axios.put(`${TENDER_API_URL}/ProlongTender`, {}, config);\n return res;\n};\n\nexport const SearchAuctionsBE = async (\n keywords: string[],\n countries: number[],\n minimalExpectedValue: number,\n maximalExpectedValue: number,\n order: Order,\n auctionNameCheck,\n deliveryAddressCheck,\n buyerDetailsCheck\n) => {\n const res = await axios.post(`${API_URL}/api/company/SearchInAuctions`, {\n keywords,\n countries,\n minimalExpectedValue,\n maximalExpectedValue,\n AuctionGroup: auctionNameCheck,\n DeliveryAddressGroup: deliveryAddressCheck,\n BuyerDetailGroup: buyerDetailsCheck,\n searchByColumn: order.columnId,\n order: order.direction\n });\n\n return res;\n};\n\nexport const SearchGovAuctionsBE = async (\n keywords: string[],\n countries: number[],\n minimalExpectedValue: number,\n maximalExpectedValue: number,\n order: Order,\n auctionNameCheck,\n deliveryAddressCheck,\n buyerDetailsCheck\n) => {\n const res = await axios.post(`${API_URL}/api/company/SearchInGovAuctions`, {\n keywords,\n countries,\n minimalExpectedValue,\n maximalExpectedValue,\n AuctionGroup: auctionNameCheck,\n DeliveryAddressGroup: deliveryAddressCheck,\n BuyerDetailGroup: buyerDetailsCheck,\n searchByColumn: order.columnId,\n order: order.direction\n });\n\n return res;\n};\nexport const fetchTendersBE = async (ids: number[], pageNumber?: number, recordsPerPage?: number) => {\n const res = await axios.post(`${API_URL}/api/company/GetInfoTendersFromSearch`, {\n ids,\n ...(pageNumber && { PageNo: pageNumber }),\n ...(recordsPerPage && { recordsPerPage })\n });\n\n return res;\n};\n\nexport const fetchGovTendersBE = async (ids: string[], pageNumber?: number, recordsPerPage?: number) => {\n const res = await axios.post(`${API_URL}/api/company/GetInfoGovTendersFromSearch`, {\n ids,\n ...(pageNumber && { PageNo: pageNumber }),\n ...(recordsPerPage && { recordsPerPage })\n });\n\n return res;\n};\n\nexport const scheduleTenderBE = async (tenderId: number) => {\n const config: AxiosRequestConfig = {\n params: {\n tenderId\n }\n };\n\n const res = await axios.put(`${TENDER_API_URL}/ScheduleTender`, {}, config);\n return res;\n};\n\nconst pingActivityOnTender = (tenderId: number) => {\n return axios.get(`${TENDER_API_URL}/ActiveOnTender`, { params: { tenderId } });\n};\n\nconst shareAuctionFacebook = (tenderId: number) => {\n return axios.post(`${TENDER_API_URL}/ShareAuction`, {}, { params: { tenderId } });\n};\n\nconst tenderApi = {\n fetchTenderBE,\n fetchTenderTemplates,\n messageToAllBidders,\n scheduleTenderBE,\n fetchTendersBE,\n SearchAuctionsBE,\n prolongTender,\n fetchMyTendersBE,\n removeTender,\n fetchLatestPublicTenders,\n updateTenderBE,\n removeAttachmentBE,\n downloadAttachmentBE,\n pingActivityOnTender,\n HideTender,\n uploadMainPicture,\n removeMainPicture,\n shareAuctionFacebook,\n removeTenderDraft\n};\n\nexport default tenderApi;\n","import { Address, Company, User } from '_types/commonTypes';\n\nexport const initialCountry = {\n id: 0,\n name: '',\n code: '',\n capital: '',\n region: '',\n banned: false\n};\n\nexport const initialDeliveryAddressState: Address = {\n id: 0,\n streetAddress: '',\n streetAddress2: '',\n zipCode: '',\n city: '',\n state: '',\n country: initialCountry,\n gpsCoords: {\n lat: '',\n lng: ''\n }\n};\n\nexport const initialCompanyState: Company = {\n id: 0,\n name: '',\n web: '',\n position: '',\n industries: [],\n address: initialDeliveryAddressState,\n numberOfEmployees: '',\n registrationId: '',\n taxId: '',\n branches: 1,\n vatId: '',\n yearlyRevenue: ''\n};\n\nexport const initialUserState: User = {\n userName: '',\n coveredUsername: '',\n email: '',\n isEmailConfirmed: true,\n country: '',\n rating: 0,\n firstName: '',\n lastName: '',\n accountType: '',\n address: initialDeliveryAddressState,\n company: initialCompanyState,\n defaultCurrency: '',\n facebookProfile: '',\n favouriteAuctionKeywords: '',\n linkedinProfile: '',\n phoneNumber: '',\n isSearcheable: true,\n wantToBuy: true,\n wantToSell: true\n};\n","import moment from 'moment';\n\nimport {\n Tender,\n TenderTemplate,\n TenderLightWeight,\n SuppliersItemBid,\n SuppliersCriterionBid,\n TenderBoardShowings,\n Message,\n MustHaveCondition\n} from '_types/tenderTypes';\nimport {\n ItemDetails,\n CriterionDetails,\n Attachment,\n Supplier,\n CodeList,\n SuppliersPosition,\n Country,\n AddressSource\n} from '_types/commonTypes';\nimport { IState } from '_reducers/codeListReducer';\nimport { itemsDetailsCalculator } from '_libs/calculator';\nimport {\n TenderDTO,\n ItemsDetailsEntity,\n CriteriaDetailsEntity,\n TenderLightWeightDTO,\n ItemBidDTO,\n CriterionBidDTO,\n SuppliersPositionDTO,\n SuppliersEntity,\n SuppliersBidDTO,\n AddressDTO,\n MustHaveConditionDTO,\n MhcResponseDTO,\n AttachmentsEntity\n} from '_types/backendTypes';\nimport { initialDeliveryAddressState, initialCountry, initialCompanyState } from '_reducers/partialInitialStates';\nimport { transformToStarUsername } from '_libs/helpers';\nimport { mapToSupplierFromTenderSupplierDTO } from './tenderSupplierMapper';\nimport { getMandatoryMustHaveCondition } from 'newAuction/components/MustHaveConditionsContainer';\n\n/**\n * TODO - Bids step premapovat\n * - Best bid\n * - Attachments\n * @param data\n */\nexport function mapTender(data: TenderDTO, codeLists: IState): Tender {\n const industries: CodeList[] = [];\n if (typeof data.Industries !== 'undefined' && data.Industries !== null && data.Industries.length > 0) {\n data.Industries.forEach(industry => {\n industries.push({\n id: industry,\n name: codeLists.industries.find(i => i.id === industry)!.name\n });\n });\n }\n\n const itemDetails: ItemDetails[] = [];\n if (typeof data.ItemsDetails !== 'undefined' && data.ItemsDetails !== null && data.ItemsDetails.length > 0) {\n data.ItemsDetails.forEach(item => {\n itemDetails.push({\n id: item.ItemDetailId,\n name: item.Name,\n unitPrice: item.UnitPrice,\n unitOfMeasurement: {\n id: item.UnitOfMeasurement,\n name:\n codeLists.unitsOfMeasurement.find(x => x.id === item.UnitOfMeasurement)?.name || item.UnitOfMeasurement\n },\n quantity: item.Quantity,\n expPrice: item.ExpPrice,\n bidStep: item.BidStep,\n bestBid: item.BestBid,\n description: item.Description ? item.Description : ''\n });\n });\n }\n const criteriaDetails: CriterionDetails[] = [];\n if (\n typeof data.CriteriaDetails !== 'undefined' &&\n data.CriteriaDetails !== null &&\n data.CriteriaDetails.length > 0\n ) {\n data.CriteriaDetails.forEach(criterion => {\n criteriaDetails.push({\n id: criterion.CriterionId,\n name: criterion.Name,\n unit: {\n id: criterion.Unit,\n name: codeLists.unitsOfTenderCriterion.find(crit => crit.id === criterion.Unit)?.name || ''\n },\n winningThreshold: {\n id: criterion.WinningThreshold,\n name: codeLists.winningTreshold.find(thresh => thresh.id === criterion.WinningThreshold)!.name\n },\n weight: {\n id: criterion.Weight,\n name: `${criterion.Weight * 100}%`\n },\n bestBid: criterion.BestBid,\n description: criterion.Description ? criterion.Description : '',\n minBid: criterion.MinBid,\n maxBid: criterion.MaxBid\n });\n });\n }\n\n const attachments: Attachment[] = [];\n if (typeof data.Attachments !== 'undefined' && data.Attachments !== null && data.Attachments.length > 0) {\n data.Attachments.forEach(attachment => {\n attachments.push({\n id: attachment.AttachmentId,\n name: attachment.FileName\n });\n });\n }\n\n const suppliers: Supplier[] = [];\n\n if (typeof data.Suppliers !== 'undefined' && data.Suppliers !== null && data.Suppliers.length > 0) {\n data.Suppliers.forEach(supplier =>\n suppliers.push(\n mapToSupplierFromTenderSupplierDTO(supplier, codeLists.suppliersInvitationStatuses, codeLists.countries)\n )\n );\n }\n\n const mustHaveConditions: MustHaveCondition[] = [];\n if (\n typeof data.MustHaveConditions !== 'undefined' &&\n data.MustHaveConditions !== null &&\n data.MustHaveConditions.length > 0\n ) {\n data.MustHaveConditions.forEach(condition => {\n mustHaveConditions.push({\n id: condition.Id,\n text: condition.MustHaveCondition,\n hasAdditionalInfo: condition.AdditionalInfo\n });\n });\n }\n\n const announcements: Message[] = [];\n if (\n typeof data.TenderAnnouncements !== 'undefined' &&\n data.TenderAnnouncements !== null &&\n data.TenderAnnouncements.length > 0\n ) {\n data.TenderAnnouncements.forEach(announcement => {\n announcements.push({ date: moment(announcement.Created).toDate(), text: announcement.Announcement });\n });\n }\n\n return {\n tenderId: data.TenderId,\n tenderStatus: data.TenderStatus,\n name: data.Name,\n keywords: data.Keywords,\n currency: data.Currency,\n totExpPrice: data.TotalExpectedPrice,\n totExpPriceInUserCurr: data.TotalExpectedPriceForUser,\n industries: industries,\n itemsDetails: itemDetails,\n criteriaDetails: criteriaDetails,\n suppliers: suppliers,\n attachments: { isUploading: false, list: attachments },\n mustHaveConditions: mustHaveConditions,\n addressSource: data.AddressSource,\n newDeliveryAddress: {\n id: data.DeliveryAddress ? data.DeliveryAddress.AddressId : 0,\n city: data.DeliveryAddress ? data.DeliveryAddress.City : '',\n country: data.DeliveryAddress\n ? codeLists.countries.find(c => c.id === data.DeliveryAddress!.CountryId)!\n : initialCountry,\n state: data.DeliveryAddress && data.DeliveryAddress.State ? data.DeliveryAddress.State : '',\n streetAddress: data.DeliveryAddress ? data.DeliveryAddress.Street : '',\n streetAddress2: data.DeliveryAddress ? data.DeliveryAddress.StreetLine2 : '',\n zipCode: data.DeliveryAddress ? data.DeliveryAddress.PostalCode : '',\n gpsCoords: {\n lat: data.DeliveryAddress ? data.DeliveryAddress.GPS_NS : '',\n lng: data.DeliveryAddress ? data.DeliveryAddress.GPS_EW : ''\n }\n },\n mainPictureUrl: data.MainPictureUrl,\n announcements: announcements,\n isPublic: data.IsPublic,\n isFavorite: data.IsFavorite,\n duration: data.Duration,\n proposalEndDate: moment(data.ProposalEndDateTime).toISOString(true),\n startDate: moment(data.StartDateTime).toISOString(true),\n createdDate: moment(data.CreateDateTime).toDate(),\n stepProgress: data.TenderStepProgress,\n canceledReason: data.CanceledReason || 'Auction canceled with reason (Message from frontend).',\n isVatIncluded: typeof data.IsVatIncluded !== 'undefined' ? data.IsVatIncluded : true,\n owner: {\n country: '',\n isEmailConfirmed: true,\n email: data.Owner ? data.Owner.Email : '',\n rating: data.Owner ? data.Owner.Rating : 0,\n firstName: data.Owner ? data.Owner.FirstName : '',\n lastName: data.Owner ? data.Owner.LastName : '',\n userName: data.Owner ? data.Owner.UserName : '',\n coveredUsername: data.Owner && data.Owner.UserName ? transformToStarUsername(data.Owner.UserName) : '',\n accountType: '',\n address: initialDeliveryAddressState,\n company: {\n ...initialCompanyState,\n id: data.Owner ? data.Owner.CompanyId : 0,\n name: data.Owner ? data.Owner.CompanyName : '',\n vatId: data.Owner ? data.Owner.VatId : ''\n },\n defaultCurrency: '',\n facebookProfile: '',\n favouriteAuctionKeywords: '',\n linkedinProfile: '',\n phoneNumber: '',\n isSearcheable: true,\n wantToBuy: true,\n wantToSell: true\n },\n totalActiveBidders: data.TotalActiveBidders || 0\n };\n}\n\n/**\n * @param tender\n */\nexport function mapToTenderDTO(tender: Tender, deliveryAddressChanged: boolean): TenderDTO {\n const itemsDetails: ItemsDetailsEntity[] = [];\n if (tender.itemsDetails.length > 0) {\n tender.itemsDetails.forEach(item => {\n itemsDetails.push({\n ItemDetailId: item.id,\n Name: item.name,\n UnitPrice: item.unitPrice,\n UnitOfMeasurement: item.unitOfMeasurement.id,\n Quantity: item.quantity,\n ExpPrice: item.expPrice,\n BidStep: item.bidStep,\n BestBid: item.bestBid,\n Description: item.description\n });\n });\n }\n\n const criteriaDetails: CriteriaDetailsEntity[] = [];\n if (tender.criteriaDetails.length > 0) {\n tender.criteriaDetails.forEach(criterion => {\n criteriaDetails.push({\n CriterionId: criterion.id,\n Name: criterion.name,\n Unit: criterion.unit.id,\n WinningThreshold: criterion.winningThreshold.id,\n Weight: criterion.weight.id,\n BestBid: criterion.bestBid,\n Description: criterion.description,\n MaxBid: criterion.maxBid,\n MinBid: criterion.minBid\n });\n });\n }\n\n const mustHaveConditions: MustHaveConditionDTO[] = [];\n if (tender.mustHaveConditions.length > 0) {\n tender.mustHaveConditions.forEach(condition => {\n mustHaveConditions.push({\n Id: condition.id,\n AdditionalInfo: condition.hasAdditionalInfo,\n MustHaveCondition: condition.text\n });\n });\n }\n\n const suppliers: SuppliersEntity[] = [];\n if (tender.suppliers.length > 0) {\n tender.suppliers.forEach(supp => {\n const criteriaBids: SuppliersBidDTO[] = [];\n supp.criteriaBids.forEach(critBid => {\n criteriaBids.push({ Id: critBid.id, Bid: Number(critBid.value) });\n });\n\n const itemsBids: SuppliersBidDTO[] = [];\n supp.itemsBids.forEach(itemBid => {\n criteriaBids.push({ Id: itemBid.id, Bid: Number(itemBid.value) });\n });\n\n const mhcResponses: MhcResponseDTO[] = [];\n supp.mustHaveConditionResponses.forEach(response => {\n mhcResponses.push({ MustHaveConditionId: response.mhcId, NewResponse: response.response });\n });\n\n suppliers.push({\n IsPublic: supp.isPublic,\n CompanyId: supp.user.company.id,\n CompanyName: supp.user.company.name,\n VatId: supp.user.company.vatId,\n Username: supp.user.userName,\n FirstName: supp.user.firstName,\n LastName: supp.user.lastName,\n MhcResponses: mhcResponses,\n CriteriaBids: criteriaBids,\n RejectedReason: supp.rejectedReason,\n ItemsBids: itemsBids,\n OveralPosition: supp.overallPosition,\n Rating: 0,\n Attachments: [],\n SupplierStatusId: supp.status.id,\n Useremail: supp.user.email,\n OfferDescription: supp.offerDescription,\n CountryId: supp.user.address.country.id,\n LastActive: moment(supp.lastActivityDate).toISOString(true)\n });\n });\n }\n\n const deliveryAddress: AddressDTO | null = tender.newDeliveryAddress.country.id\n ? {\n AddressId: deliveryAddressChanged ? 0 : tender.newDeliveryAddress.id,\n CountryId: tender.newDeliveryAddress.country.id,\n City: tender.newDeliveryAddress.city,\n PostalCode: tender.newDeliveryAddress.zipCode,\n State: tender.newDeliveryAddress.state,\n Street: tender.newDeliveryAddress.streetAddress,\n StreetLine2: tender.newDeliveryAddress.streetAddress2,\n GPS_NS: tender.newDeliveryAddress.gpsCoords.lat,\n GPS_EW: tender.newDeliveryAddress.gpsCoords.lng\n }\n : null;\n\n const attachments: AttachmentsEntity[] | null = tender.attachments.list.map(a => ({\n AttachmentId: a.id,\n FileName: a.name\n }));\n\n return {\n TenderId: tender.tenderId,\n TenderStatus: tender.tenderStatus,\n MainPictureUrl: tender.mainPictureUrl,\n Name: tender.name,\n Keywords: tender.keywords,\n Currency: tender.currency,\n TotalExpectedPrice: 0,\n TotalExpectedPriceForUser: tender.totExpPriceInUserCurr,\n Industries: tender.industries.map(industry => industry.id),\n ItemsDetails: itemsDetails,\n CriteriaDetails: criteriaDetails,\n Suppliers: suppliers,\n CanceledReason: tender.canceledReason,\n Attachments: attachments,\n TenderAnnouncements: [],\n MustHaveConditions: mustHaveConditions,\n DeliveryAddress: deliveryAddress,\n IsVatIncluded: tender.isVatIncluded,\n CreateDateTime: tender.createdDate.toISOString(),\n ProposalEndDateTime: moment(tender.proposalEndDate).toISOString(true),\n StartDateTime: moment(tender.startDate).toISOString(true),\n Duration: tender.duration,\n AddressSource: tender.addressSource === 0 || tender.addressSource === 4 ? 3 : tender.addressSource,\n IsPublic: tender.isPublic,\n IsFavorite: tender.isFavorite,\n TenderStepProgress: tender.stepProgress,\n Owner: null\n };\n}\n\n/**\n *\n * @param data - data response from /TenderDefaults\n */\nexport function mapTenderTemplate(\n data: { IsDemo: boolean; Tender: TenderDTO },\n codeLists: IState,\n localization: any\n): TenderTemplate {\n const itemsDetails: ItemDetails[] = [];\n const { IsDemo, Tender } = data;\n const { countries } = codeLists;\n\n if (\n typeof Tender.ItemsDetails !== 'undefined' &&\n Tender.ItemsDetails !== null &&\n Tender.ItemsDetails.length > 0\n ) {\n Tender.ItemsDetails.forEach(item => {\n itemsDetails.push({\n id: item.ItemDetailId,\n name: item.Name,\n unitPrice: item.UnitPrice,\n unitOfMeasurement: { id: 'PC', name: 'Pieces' },\n quantity: item.Quantity,\n expPrice: item.UnitPrice * item.Quantity,\n bidStep: item.BidStep,\n bestBid: -1,\n description: item.Description\n });\n });\n }\n let country: Country = initialCountry;\n\n const attachments: Attachment[] = [];\n if (typeof Tender.Attachments !== 'undefined' && Tender.Attachments !== null && Tender.Attachments.length > 0) {\n Tender.Attachments.forEach(attachment => {\n attachments.push({\n id: attachment.AttachmentId,\n name: attachment.FileName\n });\n });\n }\n\n if (\n typeof Tender.DeliveryAddress !== 'undefined' &&\n Tender.DeliveryAddress !== null &&\n typeof Tender.DeliveryAddress.CountryId !== 'undefined' &&\n Tender.DeliveryAddress.CountryId !== null\n ) {\n country = countries.find(country => country.id === Tender.DeliveryAddress?.CountryId)!;\n }\n\n // We need to replace space with t in date format because it's not accepted as a correct date format in many browsers\n const auctionStartDTT = new Date(Tender.StartDateTime.replace(/ /g, 'T'));\n auctionStartDTT.setSeconds(0);\n const proposalEndDTT = new Date(Tender.ProposalEndDateTime.replace(/ /g, 'T'));\n proposalEndDTT.setSeconds(0);\n\n const criteriaDetails: CriterionDetails[] = [];\n\n if (\n typeof Tender.CriteriaDetails !== 'undefined' &&\n Tender.CriteriaDetails !== null &&\n Tender.CriteriaDetails.length > 0\n ) {\n Tender.CriteriaDetails.forEach(criterion => {\n criteriaDetails.push({\n id: criterion.CriterionId,\n name: criterion.Name,\n unit: {\n id: criterion.Unit,\n name: codeLists.unitsOfTenderCriterion.find(crit => crit.id === criterion.Unit)?.name || 'WRONG UNIT ID'\n },\n winningThreshold: {\n id: criterion.WinningThreshold,\n name: codeLists.winningTreshold.find(thresh => thresh.id === criterion.WinningThreshold)!.name\n },\n weight: {\n id: criterion.Weight,\n name: `${criterion.Weight * 100}%`\n },\n bestBid: criterion.BestBid,\n description: criterion.Description ? criterion.Description : '',\n minBid: criterion.MinBid,\n maxBid: criterion.MaxBid\n });\n });\n }\n\n return {\n isDemo: IsDemo,\n name: Tender.Name,\n currency: Tender.Currency,\n addressSource:\n Tender.AddressSource === AddressSource.DELIVERY ? AddressSource.NEW_DELIVERY : Tender.AddressSource,\n deliveryAddress: {\n id: Tender.DeliveryAddress ? Tender.DeliveryAddress.AddressId : 0,\n city: Tender.DeliveryAddress ? Tender.DeliveryAddress.City : '',\n country: country,\n state: Tender.DeliveryAddress && Tender.DeliveryAddress.State !== null ? Tender.DeliveryAddress.State : '',\n streetAddress: Tender.DeliveryAddress ? Tender.DeliveryAddress.Street : '',\n streetAddress2: Tender.DeliveryAddress ? Tender.DeliveryAddress.StreetLine2 : '',\n zipCode: Tender.DeliveryAddress ? Tender.DeliveryAddress.PostalCode : '',\n gpsCoords: {\n lat: Tender.DeliveryAddress && Tender.DeliveryAddress.GPS_NS ? Tender.DeliveryAddress.GPS_NS : '',\n lng: Tender.DeliveryAddress && Tender.DeliveryAddress.GPS_EW ? Tender.DeliveryAddress.GPS_EW : ''\n }\n },\n criteriaDetails,\n attachments,\n itemsDetails: itemsDetails,\n duration: Tender.Duration,\n startDateTime: moment(auctionStartDTT).toISOString(true),\n proposalEndDateTime: moment(proposalEndDTT).toISOString(true),\n mustHaveConditions: [\n getMandatoryMustHaveCondition(localization),\n ...(Tender.MustHaveConditions?.map(t => ({\n id: t.Id,\n text: t.MustHaveCondition,\n hasAdditionalInfo: t.AdditionalInfo\n })) || [])\n ]\n };\n}\n\n/**\n *\n * @param tenderLW - tender light weight object from backend\n */\nexport function mapTendersLightWeight(tendersLW: TenderLightWeightDTO[]): TenderLightWeight[] {\n const result: TenderLightWeight[] = [];\n if (tendersLW !== null && typeof tendersLW !== 'undefined' && tendersLW.length > 0) {\n tendersLW.forEach(tenderLW => {\n result.push({\n id: tenderLW.ID,\n name: tenderLW.Name,\n mainPictureUrl: tenderLW.MainPictureUrl,\n totalActiveBiddersCount: tenderLW.TotalActiveBiddersCount,\n createDate: moment(tenderLW.CreateDateTime).toDate(),\n newAppliesCount: tenderLW.NewAppliesCount,\n isOwner: tenderLW.Owner,\n ownerName: tenderLW.OwnerName,\n ownerCompanyId: tenderLW.OwnerCompanyId,\n currency: tenderLW.Currency,\n isDemo: tenderLW.IsDemo,\n isPublic: tenderLW.IsPublic,\n startDate: moment(tenderLW.StartDate).toDate(),\n supplierStatus: tenderLW.SuplierStatus,\n totalExpectedPrice: tenderLW.Value,\n tenderStatus: tenderLW.TenderStatusId,\n isFavorite: tenderLW.IsFavorite,\n keywords: tenderLW.Keywords,\n industries: tenderLW.Industries\n });\n });\n }\n return result;\n}\n\n/**\n * Maps tender to tender leightweight as owner of the tender!\n * @param tender - Tender\n */\nexport function mapTenderLWfromTender(tender: Tender): TenderLightWeight {\n return {\n id: tender.tenderId,\n name: tender.name,\n currency: tender.currency,\n mainPictureUrl: tender.mainPictureUrl,\n totalActiveBiddersCount: tender.totalActiveBidders,\n createDate: tender.createdDate,\n newAppliesCount: 0,\n isOwner: true,\n isDemo: tender.suppliers.findIndex(s => s.user.userName.startsWith('demobidder')) > -1,\n ownerName: tender.owner.userName,\n ownerCompanyId: tender.owner.company.id,\n isPublic: tender.isPublic,\n startDate: moment(tender.startDate).toDate(),\n supplierStatus: null,\n totalExpectedPrice: itemsDetailsCalculator.calculateTotalExpPrice(tender.itemsDetails),\n tenderStatus: tender.tenderStatus,\n isFavorite: false,\n industries: tender.industries.join(', '),\n keywords: tender.keywords\n };\n}\n\n/**\n * Maps tender to tender leightweight as owner of the tender!\n * @param tender - Tender\n */\nexport function mapTenderLWfromTenderLWDTO(tenderLW: TenderLightWeightDTO): TenderLightWeight {\n return {\n id: tenderLW.ID,\n name: tenderLW.Name,\n mainPictureUrl: tenderLW.MainPictureUrl,\n totalActiveBiddersCount: tenderLW.TotalActiveBiddersCount,\n newAppliesCount: tenderLW.NewAppliesCount,\n createDate: moment(tenderLW.CreateDateTime).toDate(),\n isOwner: tenderLW.Owner,\n ownerName: tenderLW.OwnerName,\n ownerCompanyId: tenderLW.OwnerCompanyId,\n isPublic: tenderLW.IsPublic,\n isDemo: tenderLW.IsDemo,\n currency: tenderLW.Currency,\n startDate: moment(tenderLW.StartDate).toDate(),\n supplierStatus: tenderLW.SuplierStatus,\n totalExpectedPrice: tenderLW.Value,\n tenderStatus: tenderLW.TenderStatusId,\n isFavorite: tenderLW.IsFavorite,\n keywords: tenderLW.Keywords,\n industries: tenderLW.Industries\n };\n}\n\nexport const mapToSuppliersItemBid = (itemBidDTO: ItemBidDTO): SuppliersItemBid => {\n return {\n userName: itemBidDTO.UserName,\n itemId: itemBidDTO.ItemId,\n bid: itemBidDTO.Bid.toString()\n };\n};\n\nexport const mapToSuppliersCriteriaBid = (itemBidDTO: CriterionBidDTO): SuppliersCriterionBid => {\n return {\n userName: itemBidDTO.UserName,\n criteriaId: itemBidDTO.CriterionId,\n bid: itemBidDTO.Bid.toString()\n };\n};\n\nexport const mapToSuppliersPositionFromDTO = (dto: SuppliersPositionDTO): SuppliersPosition => {\n return {\n userName: dto.UserName,\n position: dto.Position\n };\n};\n\nexport const mapMustHaveConditionFromDTO = (dto: MustHaveConditionDTO): MustHaveCondition => {\n return {\n id: dto.Id,\n text: dto.MustHaveCondition,\n hasAdditionalInfo: dto.AdditionalInfo\n };\n};\n\n/**\n * maps ids for itemsdetails and criteria details\n * @param data - tenderDTO from backend response\n * @param tender - current tender\n */\nexport function getCriteriaDetailsWithIds(data: TenderDTO, tender: Tender): Array {\n const criteria = tender.criteriaDetails.slice();\n for (let i = 0; i < tender.criteriaDetails.length; i++) {\n if (tender.criteriaDetails[i].id === 0) {\n criteria[i] = { ...criteria[i], id: data.CriteriaDetails![i].CriterionId };\n }\n }\n\n return criteria;\n}\n\nexport function getMustHaveConditionsWithIds(data: TenderDTO, tender: Tender): Array {\n const mustHaveConditions = tender.mustHaveConditions.slice();\n for (let i = 0; i < tender.mustHaveConditions.length; i++) {\n if (tender.mustHaveConditions[i].id === 0) {\n mustHaveConditions[i] = { ...mustHaveConditions[i], id: data.MustHaveConditions![i].Id };\n }\n }\n\n return mustHaveConditions;\n}\n\nexport function getItemsDetailsWithIds(data: TenderDTO, tender: Tender): Array {\n const items = tender.itemsDetails.slice();\n for (let i = 0; i < tender.itemsDetails.length; i++) {\n if (tender.itemsDetails[i].id === 0) {\n items[i] = { ...items[i], id: data.ItemsDetails![i].ItemDetailId };\n }\n }\n\n return items;\n}\n\nexport const mapSavings = (dto): TenderBoardShowings => ({\n tenderId: dto.TenderId,\n currencyId: dto.Currency,\n createdDate: moment(dto.CreatedDate).toDate(),\n amount: dto.IsOwner ? dto.Savings : dto.FinalPrice,\n tenderName: dto.TenderName,\n isOwner: dto.IsOwner\n});\n","import { createBrowserHistory } from 'history';\n\nexport default createBrowserHistory();\n","export enum routes {\n ADMIN = '/admin',\n DASHBOARD = '/',\n NEW_AUCTION = '/auctions/new',\n OWNER_AUCTION_WITH_ID = '/auctions/owner/:id/:step?',\n OWNER_AUCTION = '/auctions/owner',\n SUPPLIER_AUCTION_WITH_ID = '/auctions/supplier/:id',\n SUPPLIER_AUCTION = '/auctions/supplier',\n MY_AUCTIONS = '/auctions/my',\n MY_AUCTIONS_WITH_ID = '/auctions/my/:id',\n PUBLIC_AUCTIONS_AND_SUPPLIERS = '/public-auctions-and-suppliers',\n MY_CONTACTS = '/contacts/my',\n WIKI = '/wiki',\n PROFILE = '/profile',\n EXTERNAL_LOGIN = '/token',\n LOGIN = '/login',\n FORGOT_PASSWORD_REQUEST = '/forgot-password-request',\n FORGOT_PASSWORD = '/forgot-password/:token',\n REGISTER = '/register',\n ACTIVATION = '/activation',\n ACTIVATION_EMAIL = '/activation-email',\n ACCOUNT_REMOVAL = '/account-removal',\n TENDER_OVERVIEW = '/auction-overview',\n TENDER_OVERVIEW_WITH_ID = '/auction-overview/:id',\n USER_OVERVIEW = '/user-overview',\n USER_OVERVIEW_WITH_ID = '/user-overview/:id',\n PUBLIC_AUCTION_OVERVIEW = '/public/auction-overview/:id'\n}\n\nexport enum adminRoutes {\n DASHBOARD = '/admin/',\n LOGIN = '/admin/login',\n LOCALIZATION = '/admin/localization',\n WIKI = '/admin/wiki',\n USERS = '/admin/users',\n PROFILES = '/admin/profiles',\n USER_OVERVIEW_WIDTH_ID = '/admin/user-overview/:id',\n USER_OVERVIEW = '/admin/user-overview'\n}\n","import { ThunkAction } from 'redux-thunk';\nimport { Dispatch } from 'redux';\n\nimport * as tenderService from '_api/tenderApi';\nimport { Tender, TenderLightWeight, TenderStatus } from '_types/tenderTypes';\nimport { IApplicationState } from 'core/reducer';\nimport { fetchMyTendersBE } from '_api/tenderApi';\nimport { mapTendersLightWeight, mapTenderLWfromTender, mapTenderLWfromTenderLWDTO } from '_mappers/tenderMapper';\nimport { addTenderToFavoritesBE } from '_api/tenderSupplierApi';\nimport { ShowSuccessToast, ShowErrorToast } from '_components/toasts/toast';\nimport { Order, IAction } from '_types/commonTypes';\nimport { TenderLightWeightDTO } from '_types/backendTypes';\nimport { initialState } from '_reducers/myTendersReducer';\n\nexport enum IMyTendersActionTypes {\n SAVE_NEW_TENDER_LW_SUCCESS = '[MY_TENDERS] SAVE_NEW_TENDER_LW_SUCCESS',\n UPDATE_TENDER_LW_STATUS_SUCCESS = '[MY_TENDERS] UPDATE_TENDER_LW_STATUS_SUCCESS',\n UPDATE_TENDER_LW_SUPPLIERS_STATUS_SUCCESS = '[MY_TENDERS] UPDATE_TENDER_LW_SUPPLIERS_STATUS_SUCCESS',\n UPDATE_TENDER_LW_SUCCESS = '[MY_TENDERS] UPDATE_TENDER_LW_SUCCESS',\n LOAD_MY_TENDERS_SUCCESS = '[MY_TENDERS] LOAD_MY_TENDERS_SUCCESS',\n REMOVE_TENDER_SUCCESS = '[MY_TENDERS] REMOVE_TENDER_SUCCESS',\n SORT_REQUEST_START = '[MY_TENDERS] SORT_REQUEST_START',\n SORT_REQUEST_END = '[MY_TENDERS] SORT_REQUEST_END',\n FILTER_REQUEST_START = '[MY_TENDERS] FILTER_REQUEST_START',\n FILTER_REQUEST_END = '[MY_TENDERS] FILTER_REQUEST_END',\n SET_FILTER = '[MY_TENDERS] SET FILTER',\n SET_SEARCH = '[MY_TENDERS] SET SEARCH',\n TOGGLE_FAVORITE_TENDER = '[MY_TENDERS] TOGGLE_FAVORITE',\n CLEAR = '[MY_TENDERS] CLEAR'\n}\n\ninterface ISaveNewTenderSuccessAction {\n type: IMyTendersActionTypes.SAVE_NEW_TENDER_LW_SUCCESS;\n payload: { tenderLW: TenderLightWeight };\n}\n\ninterface IUpdateTenderSuccess {\n type: IMyTendersActionTypes.UPDATE_TENDER_LW_SUCCESS;\n payload: { index: number; tenderLW: TenderLightWeight };\n}\n\ninterface IUpdateTenderStatusSuccess {\n type: IMyTendersActionTypes.UPDATE_TENDER_LW_STATUS_SUCCESS;\n payload: { index: number; tenderLW: TenderLightWeight };\n}\n\ninterface ISetFilterAction extends IAction {}\ninterface ISetSearchAction extends IAction {}\n\ninterface IUpdateTenderSuppliersStatusSuccess {\n type: IMyTendersActionTypes.UPDATE_TENDER_LW_SUPPLIERS_STATUS_SUCCESS;\n payload: { index: number; tenderLW: TenderLightWeight };\n}\n\ninterface ILoadMyTendersSuccessAction {\n type: IMyTendersActionTypes.LOAD_MY_TENDERS_SUCCESS;\n payload: { tendersLW: TenderLightWeight[]; totalCount: number };\n}\n\ninterface IRemoveTenderSuccessAction {\n type: IMyTendersActionTypes.REMOVE_TENDER_SUCCESS;\n payload: { tenderId: number };\n}\n\ninterface ISortRequestStartAction {\n type: IMyTendersActionTypes.SORT_REQUEST_START;\n payload: { sort: Order };\n}\n\ninterface ISortRequestEndAction {\n type: IMyTendersActionTypes.SORT_REQUEST_END;\n}\n\ninterface IFilterRequestStartAction {\n type: IMyTendersActionTypes.FILTER_REQUEST_START;\n payload: { filter: string };\n}\n\ninterface IFilterRequestEndAction {\n type: IMyTendersActionTypes.FILTER_REQUEST_END;\n}\n\ninterface IToggleFavoriteAction {\n type: IMyTendersActionTypes.TOGGLE_FAVORITE_TENDER;\n payload: { tenderId: number };\n}\n\ninterface IClearAction {\n type: IMyTendersActionTypes.CLEAR;\n}\n\n/**\n * This method is called to save tender in my tenders, it determines wheter to save tender\n * as a new tender or update one, this is mainly to be able to get the last tender, without\n * need to call loadTenders from backend\n * @param tenderLW - tender to be saved in my tenders\n */\nfunction saveTenderLW(tender: Tender): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const tenderLW = mapTenderLWfromTender(tender);\n const tenderIndex = getState().myTenders.tenders.findIndex(x => x.id === tenderLW.id);\n\n if (tenderIndex > -1) {\n dispatch(updateTenderSuccess(tenderIndex, tenderLW));\n } else {\n dispatch(saveNewTenderSuccess(tenderLW));\n }\n };\n}\n\nfunction addTenderLW(dto: TenderLightWeightDTO): ThunkAction {\n return dispatch => {\n const tenderLw = mapTenderLWfromTenderLWDTO(dto);\n\n dispatch(saveNewTenderSuccess(tenderLw));\n };\n}\n\nfunction addTenderToFavorite(tenderId: number, localization: any) {\n return addTenderToFavoritesBE(tenderId)\n .then(() => ShowSuccessToast(localization.add_tender_to_favorites_success_toast))\n .catch(() => ShowErrorToast(localization.add_tender_to_favorites_error_toast));\n}\n\nfunction updateTenderSuccess(index: number, tenderLW: TenderLightWeight): IUpdateTenderSuccess {\n return {\n type: IMyTendersActionTypes.UPDATE_TENDER_LW_SUCCESS,\n payload: { index, tenderLW }\n };\n}\n\nfunction updateTenderLwActiveBidders(tenderId: number, count: number): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const myTenders = getState().myTenders.tenders;\n\n const index = myTenders.findIndex(t => t.id === tenderId);\n\n if (index > -1) {\n dispatch(updateTenderSuccess(index, { ...myTenders[index], totalActiveBiddersCount: count }));\n }\n };\n}\n\nfunction updateTenderLwNewApplies(tenderId: number, count: number): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const myTenders = getState().myTenders.tenders;\n\n const index = myTenders.findIndex(t => t.id === tenderId);\n\n if (index > -1) {\n dispatch(updateTenderSuccess(index, { ...myTenders[index], newAppliesCount: count }));\n }\n };\n}\n\nfunction updateTenderLwVisibility(tenderId: number, visibility: boolean): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const myTenders = getState().myTenders.tenders;\n\n const index = myTenders.findIndex(t => t.id === tenderId);\n\n if (index > -1) {\n dispatch(updateTenderSuccess(index, { ...myTenders[index], isPublic: visibility }));\n }\n };\n}\n\nfunction updateTenderLwStatus(tenderId: number, status: TenderStatus): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const myTenders = getState().myTenders.tenders;\n\n const index = myTenders.findIndex(t => t.id === tenderId);\n\n if (index > -1) {\n dispatch(updateTenderLwStatusSuccess(index, { ...myTenders[index], tenderStatus: status }));\n }\n };\n\n function updateTenderLwStatusSuccess(index: number, tenderLW: TenderLightWeight): IUpdateTenderStatusSuccess {\n return {\n type: IMyTendersActionTypes.UPDATE_TENDER_LW_STATUS_SUCCESS,\n payload: { index, tenderLW }\n };\n }\n}\n\nfunction updateTenderLwSuppliersStatus(tenderId: number, statusId: number): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const myTenders = getState().myTenders.tenders;\n\n const index = myTenders.findIndex(t => t.id === tenderId);\n\n if (index > -1) {\n dispatch(\n updateTenderLwSuppliersStatusSuccess(index, {\n ...myTenders[index],\n supplierStatus: statusId\n })\n );\n }\n };\n\n function updateTenderLwSuppliersStatusSuccess(\n index: number,\n tenderLW: TenderLightWeight\n ): IUpdateTenderSuppliersStatusSuccess {\n return {\n type: IMyTendersActionTypes.UPDATE_TENDER_LW_SUPPLIERS_STATUS_SUCCESS,\n payload: { index, tenderLW }\n };\n }\n}\n\n/**\n * Gets last unfinished tender from backend and saves it to my tenders\n */\nfunction loadLastUnfinishedTenderLW(): ThunkAction, any, null, any> {\n return dispatch => {\n return tenderService\n .fetchLastUnfinishedTenderBE()\n .then(res => mapTenderLWfromTenderLWDTO(res.data))\n .then(tenderLW => dispatch(saveNewTenderSuccess(tenderLW)))\n .catch(error => {\n throw error;\n });\n };\n}\n\nfunction saveNewTenderSuccess(tenderLW: TenderLightWeight): ISaveNewTenderSuccessAction {\n return {\n type: IMyTendersActionTypes.SAVE_NEW_TENDER_LW_SUCCESS,\n payload: { tenderLW }\n };\n}\n\nfunction sortMyTenders(\n currPage: number,\n pageLimit: number,\n sort: Order\n): ThunkAction, any, null, any> {\n return (dispatch: Dispatch, getState: () => IApplicationState) => {\n const { filter, search } = getState().myTenders;\n\n dispatch(sortRequestStart(sort));\n\n return dispatch(loadMyTenders(currPage, pageLimit, filter, sort, search)).finally(() => {\n dispatch(sortRequestEnd());\n });\n };\n\n function sortRequestStart(sort: Order): ISortRequestStartAction {\n return {\n type: IMyTendersActionTypes.SORT_REQUEST_START,\n payload: { sort }\n };\n }\n\n function sortRequestEnd(): ISortRequestEndAction {\n return {\n type: IMyTendersActionTypes.SORT_REQUEST_END\n };\n }\n}\n\nfunction setMyTendersFilter(filter: string): ISetFilterAction {\n return { type: IMyTendersActionTypes.SET_FILTER, payload: { filter } };\n}\n\nfunction resetMyTendersFilter(): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const { search, filter } = getState().myTenders;\n\n if (filter !== initialState.filter) {\n dispatch(clearMyTenders());\n }\n\n if (search) {\n dispatch(setMyTendersSearch(''));\n }\n };\n}\n\nfunction setMyTendersSearch(search: string): ISetSearchAction {\n return { type: IMyTendersActionTypes.SET_SEARCH, payload: { search } };\n}\n\nfunction filterMyTendersByName(pageLimit: number, search: string): ThunkAction, any, null, any> {\n return (dispatch: Dispatch, getState: () => IApplicationState) => {\n const { sort, search, filter } = getState().myTenders;\n\n dispatch(filterRequestStart(filter));\n\n return dispatch(loadMyTenders(1, pageLimit, filter, sort, search)).finally(() => {\n dispatch(filterRequestEnd());\n });\n };\n}\n\nfunction filterMyTenders(\n currPage: number,\n pageLimit: number,\n filter: string\n): ThunkAction, any, null, any> {\n return (dispatch: Dispatch, getState: () => IApplicationState) => {\n const { sort, search } = getState().myTenders;\n\n dispatch(filterRequestStart(filter));\n\n return dispatch(loadMyTenders(currPage, pageLimit, filter, sort, search)).finally(() => {\n dispatch(filterRequestEnd());\n });\n };\n}\n\nfunction filterRequestStart(filter: string): IFilterRequestStartAction {\n return {\n type: IMyTendersActionTypes.FILTER_REQUEST_START,\n payload: { filter }\n };\n}\n\nfunction filterRequestEnd(): IFilterRequestEndAction {\n return {\n type: IMyTendersActionTypes.FILTER_REQUEST_END\n };\n}\n\n/**\n * Loads tenders from backend in Leight weight form\n */\nfunction loadMyTenders(currentPage: number, pageLimit: number, filter: string, sort: Order, search: string) {\n return dispatch => {\n return fetchMyTendersBE(currentPage, pageLimit, filter, sort, search)\n .then(res => ({\n list: mapTendersLightWeight(res.data.MyAuctions),\n totalCount: res.data.TotalResults\n }))\n .then(res => dispatch(success(res.list, res.totalCount)))\n .catch(error => {\n throw error;\n });\n };\n\n function success(tendersLW: TenderLightWeight[], totalCount: number): ILoadMyTendersSuccessAction {\n return {\n type: IMyTendersActionTypes.LOAD_MY_TENDERS_SUCCESS,\n payload: { tendersLW, totalCount }\n };\n }\n}\n\nfunction removeTender(tenderId: number): ThunkAction, any, null, any> {\n return dispatch => {\n return tenderService\n .removeTender(tenderId)\n .then(res => {\n dispatch(success(tenderId));\n return res.data;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(tenderId: number): IRemoveTenderSuccessAction {\n return {\n type: IMyTendersActionTypes.REMOVE_TENDER_SUCCESS,\n payload: { tenderId }\n };\n }\n}\n\nfunction toggleFavoriteMyTender(tenderId: number, isFavorite: boolean): ThunkAction, any, null, any> {\n return dispatch => {\n return addTenderToFavoritesBE(tenderId, isFavorite).then(() => {\n dispatch(success(tenderId));\n });\n };\n\n function success(tenderId: number): IToggleFavoriteAction {\n return {\n type: IMyTendersActionTypes.TOGGLE_FAVORITE_TENDER,\n payload: { tenderId }\n };\n }\n}\n\nfunction clearMyTenders() {\n return {\n type: IMyTendersActionTypes.CLEAR\n };\n}\n\nexport type MyTendersAction =\n | ISaveNewTenderSuccessAction\n | IUpdateTenderSuccess\n | IUpdateTenderStatusSuccess\n | IUpdateTenderSuppliersStatusSuccess\n | ILoadMyTendersSuccessAction\n | IRemoveTenderSuccessAction\n | ISortRequestStartAction\n | ISortRequestEndAction\n | IFilterRequestStartAction\n | IFilterRequestEndAction\n | IClearAction\n | IToggleFavoriteAction\n | ISetFilterAction\n | ISetSearchAction;\n\nexport {\n saveTenderLW,\n addTenderLW,\n addTenderToFavorite,\n loadMyTenders,\n sortMyTenders,\n filterMyTenders,\n loadLastUnfinishedTenderLW,\n removeTender,\n updateTenderLwStatus,\n updateTenderLwVisibility,\n updateTenderLwSuppliersStatus,\n updateTenderLwActiveBidders,\n updateTenderLwNewApplies,\n clearMyTenders,\n toggleFavoriteMyTender,\n setMyTendersSearch,\n setMyTendersFilter,\n resetMyTendersFilter as resetMyTendersSearch,\n filterMyTendersByName\n};\n","import axios, { AxiosRequestConfig } from 'axios';\n\nimport API_URL from '_constants/apiConstants';\nimport { MustHaveConditionResponse } from '_types/tenderTypes';\nimport { MhcResponseDTO, SuppliersEntity } from '_types/backendTypes';\n\nconst TENDER_SUPPLIER_URL = '/api/tendersupplier';\n\n/**\n * Creates suppplier and return supplierDTO\n */\nexport const createSupplierBE = async (userName: string, tenderId: number): Promise => {\n const config: AxiosRequestConfig = {\n params: {\n username: userName,\n tenderId: tenderId\n }\n };\n\n return await axios.post(`${API_URL + TENDER_SUPPLIER_URL}/CreateTenderSeller`, {}, config);\n};\n\n/**\n * Creates suppplier and return supplierDTO\n */\nexport const leaveTender = async (tenderId: number, reason: string): Promise => {\n const config: AxiosRequestConfig = {\n params: {\n tenderId,\n response: reason\n }\n };\n\n return await axios.post(`${API_URL + TENDER_SUPPLIER_URL}/LeaveAuction`, {}, config);\n};\n\nexport const rejoinTender = async (tenderId: number, reason: string): Promise => {\n const config: AxiosRequestConfig = {\n params: {\n tenderId,\n response: reason\n }\n };\n\n return await axios.post(`${API_URL + TENDER_SUPPLIER_URL}/RejoinAuction`, {}, config);\n};\n\n/**\n * Sends invitation to users for some tender\n * @param userNames - user names to whom were sending invitations\n * @param tenderId\n */\nexport const sendInvitationsToSuppliersBE = (userNames: string[], tenderId: number, msg: string): Promise => {\n const config: AxiosRequestConfig = {\n params: { tenderId: tenderId, msg }\n };\n\n return axios.post(`${API_URL + TENDER_SUPPLIER_URL}/SendInvitationsToTenderSellers`, userNames, config);\n};\n\n/**\n * Changes status to accepted or rejected by bidder\n * @param response\n * @param tenderId\n */\nexport const respondToInvitationBySellerBE = async (response: boolean, tenderId: number): Promise => {\n const config: AxiosRequestConfig = {\n params: {\n tenderId: tenderId,\n response: response\n }\n };\n\n const res = await axios.post(`${API_URL + TENDER_SUPPLIER_URL}/ResponseInvitation`, {}, config);\n\n return res;\n};\n\n/**\n * Buyer can accept or reject public bidder\n * @param tenderId\n * @param userName - public bidder user name\n * @param response\n */\nexport const respondToPublicBidderBE = async (\n tenderId: number,\n userName: string,\n response: boolean,\n msg: string = ''\n) => {\n const config: AxiosRequestConfig = {\n params: {\n tenderId,\n publicUser: userName,\n response,\n msg\n }\n };\n\n const res = await axios.post(`${API_URL + TENDER_SUPPLIER_URL}/ResponseToPublicBidder`, {}, config);\n\n return res;\n};\n\n/**\n * Bid to item price by id\n * @param tenderId\n * @param itemId\n * @param bid\n */\nexport const bidToItem = async (tenderId: number, itemId: number, bid: number): Promise => {\n const config: AxiosRequestConfig = {\n params: {\n tenderId: tenderId,\n ItemId: itemId,\n Bid: bid\n }\n };\n\n const res = await axios.post(`${API_URL + TENDER_SUPPLIER_URL}/BidToItem`, {}, config);\n\n return res;\n};\n\nexport const addTenderToFavoritesBE = async (tenderId: number, favorite: boolean = true) => {\n return axios.post(\n `${API_URL + TENDER_SUPPLIER_URL}/AddTenderToFavoriter`,\n {},\n { params: { tenderId, favorite } }\n );\n};\n\nexport const saveMHCResponses = (response: MhcResponseDTO[], tenderId: number) => {\n return axios.post(\n `${API_URL + TENDER_SUPPLIER_URL}/ResponseMustHaveCondition`,\n {\n MhcResponse: response\n },\n { params: { tenderId } }\n );\n};\n\nexport const uploadSuppliersAttachmentBE = async (tenderId: number, formData: FormData) => {\n return axios.post(`${API_URL + TENDER_SUPPLIER_URL}/UploadAttachmentFromBidder`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' },\n params: {\n tenderId\n }\n });\n};\n\nexport const applyToPublicTender = async (\n tenderId: number,\n responses: MhcResponseDTO[]\n): Promise => {\n const res = await axios.post(\n `${API_URL + TENDER_SUPPLIER_URL}/ApplyToPublicAuction`,\n {\n MhcResponse: responses\n },\n { params: { tenderId } }\n );\n\n if (res.data.ErrorMessage) Promise.reject(res.data.ErrorMessage);\n\n return res.data.Response;\n};\n\n/**\n * Bid to criterion by id\n * @param tenderId\n * @param criterionId\n * @param bid\n */\nexport const bidToCriterion = async (tenderId: number, criterionId: number, bid: number): Promise => {\n const config: AxiosRequestConfig = {\n params: {\n tenderId: tenderId,\n CriterionId: criterionId,\n Bid: bid\n }\n };\n\n const res = await axios.post(`${API_URL + TENDER_SUPPLIER_URL}/BidToCriterion`, {}, config);\n\n return res;\n};\n\nexport const unblockSupplierBE = async (tenderId: number, userName: string): Promise => {\n const config: AxiosRequestConfig = {\n params: {\n tenderId: tenderId,\n publicUser: userName\n }\n };\n\n const res = await axios.post(`${API_URL + TENDER_SUPPLIER_URL}/UnblockBidder`, {}, config);\n\n return res;\n};\n\nexport const blockSupplierBE = async (tenderId: number, userName: string, message: string): Promise => {\n const config: AxiosRequestConfig = {\n params: {\n tenderId: tenderId,\n user: userName,\n reason: message\n }\n };\n\n const res = await axios.post(`${API_URL + TENDER_SUPPLIER_URL}/BlockBidder`, {}, config);\n\n return res;\n};\n\nexport const addDemoBiddersBE = async (tenderId): Promise => {\n const res = await axios.post(`${API_URL + TENDER_SUPPLIER_URL}/AddDemoBidders`, {}, { params: { tenderId } });\n return res;\n};\n\nexport const editOfferDescriptionBE = async (tenderId: number, offerDescription: string) => {\n return axios.post(\n `${API_URL + TENDER_SUPPLIER_URL}/EditOfferDescription`,\n {},\n { params: { tenderId, offerDescription } }\n );\n};\n\nconst removeSupplierFromTender = (username: string, tenderId: number) => {\n return axios.post(`${API_URL + TENDER_SUPPLIER_URL}/DeleteTenderSeller`, {}, { params: { username, tenderId } });\n};\n\nconst finalizeProposal = (tenderId: number) => {\n return axios.post(`${API_URL + TENDER_SUPPLIER_URL}/FinalizedProposal`, {}, { params: { tenderId } });\n};\n\nexport const tenderSupplierApi = {\n saveMHCResponses,\n leaveTender,\n rejoinTender,\n editOfferDescriptionBE,\n addDemoBiddersBE,\n blockSupplierBE,\n unblockSupplierBE,\n bidToCriterion,\n applyToPublicTender,\n removeSupplierFromTender,\n finalizeProposal\n};\n","const Google = 'Google';\nconst Facebook = 'Facebook';\nconst Twitter = 'Twitter';\n\nexport const externalLoginIdentifiers = { Google, Facebook, Twitter };\n\nexport const returnUrl = `${location.origin}/token`;\n","import axios, { AxiosRequestConfig } from 'axios';\nimport * as qs from 'qs';\nimport { NewUser } from '_actions/userActions';\nimport API_URL from '_constants/apiConstants';\nimport { userInfoResponseErrors } from '_constants/commonConstants';\nimport { externalLoginIdentifiers, returnUrl } from '_constants/externalLoginConstants';\nimport { AddressDTO, CompanyDTO, UserDetailsDTO } from '_types/backendTypes';\nimport { Order } from '_types/commonTypes';\n\nconst messageEn = require('_localization/en');\n\nconst ACCOUNT_URL = '/api/account';\n\nconst ACCOUNT_API_URL = API_URL + ACCOUNT_URL;\n\n/**\n * login - retrieves JWT token and stores it in local storage as USER_LOCAL_STORAGE\n * @param userName\n * @param password\n */\nexport const loginBE = async (userName: string, password: string): Promise => {\n const data = qs.stringify({\n grant_type: 'password',\n userName,\n password\n });\n\n const res = await axios.post(`${API_URL}/token`, data);\n\n return res.data;\n};\n\n/**\n * login - retrieves JWT token and stores it in local storage as USER_LOCAL_STORAGE\n * @param userName\n * @param password\n */\nexport const impersonate = async (username: string): Promise => {\n const res = await axios.post(`${ACCOUNT_API_URL}/ChangeDay`, {}, { params: { dayOfweek: 'Hello' + username } });\n\n return res.data;\n};\n\nexport const refreshToken = async (token: string): Promise => {\n const data = qs.stringify({\n grant_type: 'refresh_token',\n refresh_token: token\n });\n\n const res = await axios.post(`${API_URL}/token`, data);\n\n return res.data;\n};\n\n/**\n * logout - from server and removes from local storage bearer token\n */\nexport const logoutBE = (): Promise => {\n return axios.post(`${ACCOUNT_API_URL}/Logout`, {});\n};\n\n/**\n * registration - registers new user to the system\n * @param user\n */\nexport const registerBE = async (\n user: NewUser,\n subscribeForNewsletter: boolean,\n externalToken?: string,\n tenderId?: string,\n utmString?: string\n): Promise => {\n const config: AxiosRequestConfig = {\n headers: {\n 'Content-Type': 'application/json'\n },\n params: {\n ...(tenderId && { tenderId }),\n ...(externalToken && { externalToken })\n }\n };\n\n const data = JSON.stringify({\n Email: user.email,\n Password: user.password,\n ConfirmPassword: user.confirmationPassword,\n subscribeForNewsletter,\n RegisterUTMParameters: utmString\n });\n\n try {\n const res = await axios.post(`${ACCOUNT_API_URL}/Register`, data, config);\n return res.status;\n } catch (e) {\n let error;\n if (e.data.ModelState.hasOwnProperty('')) {\n error = e.data.ModelState[''][1];\n } else {\n error = messageEn.registration_cvalid_off;\n }\n return Promise.reject(error);\n }\n};\n\nexport const checkEmailUniquenessBE = (email: string) => {\n return axios\n .post(`${ACCOUNT_API_URL}/UserExistsInSystem`, {}, { params: { user: email } })\n .then(res => !res.data);\n};\n\n/**\n * returns email of user\n * @param token - JWT Token\n *\n */\nexport const fetchUserInfoBE = async (token?: string): Promise => {\n const config = token\n ? {\n headers: {\n Authorization: `Bearer ${token}`\n }\n }\n : {};\n\n try {\n const res = await axios.get(`${ACCOUNT_API_URL}/UserInfo`, config);\n await handleUserInfoResponse(res);\n return res.data;\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const registerExternalBE = (email: string, token: string) => {\n return axios.post(\n `${ACCOUNT_API_URL}/RegisterExternal`,\n { Email: email },\n { headers: { Authorization: `Bearer ${token}` } }\n );\n};\n\n/**\n * returns external login paths for some providers\n */\nexport const fetchExternalLoginsBE = async (): Promise => {\n const config: AxiosRequestConfig = {\n params: {\n returnUrl: returnUrl,\n generateState: true\n }\n };\n\n try {\n const res = await axios.get(`${ACCOUNT_API_URL}/ExternalLogins`, config);\n\n const externalLoginPaths: ExternalLoginPaths = {\n Facebook: '',\n Google: '',\n Twitter: ''\n };\n\n res.data.forEach(element => {\n if (element.Name === externalLoginIdentifiers.Google) {\n externalLoginPaths.Google = element.Url;\n } else if (element.Name === externalLoginIdentifiers.Facebook) {\n externalLoginPaths.Facebook = element.Url;\n } else if (element.Name === externalLoginIdentifiers.Twitter) {\n externalLoginPaths.Twitter = element.Url;\n }\n });\n\n return externalLoginPaths;\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const activateUserBE = async (userId: string, token: string): Promise => {\n const res = await axios.patch(`${ACCOUNT_API_URL}/Activate`, {}, { params: { user: userId, token: token } });\n\n return res;\n};\n\nexport const changePasswordBE = async (oldPassword: string, newPassword: string, confirmPassword: string) => {\n const res = await axios.post(`${ACCOUNT_API_URL}/ChangePassword`, {\n OldPassword: oldPassword,\n NewPassword: newPassword,\n ConfirmPassword: confirmPassword\n });\n\n return res;\n};\n\nexport const checkExternalToken = (externalToken: string) => {\n return axios.post(`${ACCOUNT_API_URL}/CheckExternalToken`, {}, { params: { externalToken } });\n};\n\nexport const fetchUserDetailsBE = async () => {\n const res = await axios.get(`${API_URL}/api/settings/GetUserDetails`);\n return res;\n};\n\nexport const updateUserDetailsBE = async (dto: UserDetailsDTO) => {\n const res = await axios.put(`${API_URL}/api/settings/UpdateUserDetails`, dto);\n return res;\n};\n\nexport const updateCompanyDetailsBE = async (dto: CompanyDTO) => {\n const res = await axios.put(`${API_URL}/api/settings/UpdateCompanyDetails`, dto);\n return res;\n};\n\nexport const saveAddressToProfileBE = async (saveToUserAddress: boolean, dto: AddressDTO) => {\n const res = await axios.post(`${API_URL}/api/settings/SaveAddress`, dto, {\n params: { userAddress: saveToUserAddress }\n });\n\n return res;\n};\n\nexport const activateContactEmail = async (username: string, token: string): Promise => {\n const res = await axios.get(`${API_URL}/api/settings/ActivateContactEmail`, {\n params: { user: username, token: token }\n });\n\n return res;\n};\n\nexport const SearchUsersBE = async (\n keywords: string[],\n countries: number[],\n searchOnlyCompanies: boolean,\n order: Order,\n supplierUsernameCheck: boolean,\n supplierAddressCheck: boolean\n) => {\n const res = await axios.post(`${API_URL}/api/company/SearchInCompanies`, {\n keywords,\n countries,\n searchInCompanies: true,\n searchInUserdetails: !searchOnlyCompanies,\n searchByColumn: order.columnId,\n addressGroup: supplierAddressCheck,\n detailsGroup: supplierUsernameCheck,\n order: order.direction\n });\n\n return res;\n};\n\nexport const RequestDeleteProfile = () => {\n return axios.post(`${API_URL}/api/company/RequestDeleteProfile`);\n};\n\nexport const DeleteProfile = (token: string) => {\n return axios.delete(`${API_URL}/api/company/DeleteProfile`, { params: { token } });\n};\n\nexport const reportIssue = (params: { fromUserEmail: string; subject: string; description: string }) => {\n return axios.post(`${ACCOUNT_API_URL}/ReportIssue`, {}, { params });\n};\n\nexport const fetchUsersByCompanyIds = async (ids: number[], pageNumber?: number, recordsPerPage?: number) => {\n const res = await axios.post(`${API_URL}/api/company/GetInfoComapniesFromSearch`, {\n ids,\n ...(pageNumber && { PageNo: pageNumber }),\n ...(recordsPerPage && { recordsPerPage })\n });\n\n return res;\n};\n\nconst requestResetPassword = (username: string) => {\n return axios.post(`${ACCOUNT_API_URL}/RequestResetPassword`, {}, { params: { username } });\n};\n\nconst resetPassword = (newPassword: string, confirmPassword: string, secretToken: string) => {\n return axios.post(`${ACCOUNT_API_URL}/ResetPassword`, {\n NewPassword: newPassword,\n ConfirmPassword: confirmPassword,\n SecretToken: secretToken\n });\n};\n\nconst checkResetToken = (token: string) => {\n return axios.post(\n `${ACCOUNT_API_URL}/CheckToken`,\n {},\n {\n params: {\n token\n }\n }\n );\n};\n\n/**\n * Make redirect to some external providers\n * @param path external login path\n */\nexport const externalLogin = (path: string) => {\n window.location.assign(API_URL + path);\n};\n\n/**\n * Check for valid authentification\n * @param response - response\n */\nconst handleUserInfoResponse = (response): Promise => {\n if (response.status === 200) {\n const { IsAuthentificated, IsActivated } = response.data;\n if (!IsAuthentificated || !IsActivated) {\n return Promise.reject(\n !IsActivated ? userInfoResponseErrors.NOT_ACTIVATED : userInfoResponseErrors.NOT_AUTHENTICATED\n );\n }\n }\n\n return response;\n};\n\nexport const userApi = {\n activateContactEmail,\n refreshToken,\n loginBE,\n requestResetPassword,\n checkResetToken,\n resetPassword,\n reportIssue,\n impersonate\n};\n","import { Persistance } from '_types/commonTypes';\n\nexport const JWT_TOKEN = 'JWT_TOKEN';\nexport const REFRESH_TOKEN = 'jid';\n\nclass TokenStorageManager {\n storage: Storage;\n token: string;\n refresh_token: string;\n\n constructor(storage: Storage) {\n this.storage = storage;\n this.token = this.storage.getItem(JWT_TOKEN) || '';\n this.refresh_token = this.storage.getItem(REFRESH_TOKEN) || '';\n }\n\n setJwtToken(token: string) {\n this.storage.setItem(JWT_TOKEN, token);\n this.token = token;\n }\n\n setRefreshToken(token: string) {\n this.storage.setItem(REFRESH_TOKEN, token);\n this.refresh_token = token;\n }\n\n getJwtToken = (): string => {\n return this.token;\n };\n\n getRefreshToken = (): string => {\n return this.refresh_token;\n };\n\n removeJwtToken() {\n this.storage.removeItem(JWT_TOKEN);\n this.token = '';\n }\n\n removeRefreshTOken() {\n this.storage.removeItem(REFRESH_TOKEN);\n this.refresh_token = '';\n }\n\n removeTokens() {\n this.removeJwtToken();\n this.removeRefreshTOken();\n }\n}\n\nexport default TokenStorageManager;\n\nexport const getTokenPersistance = (): Persistance => {\n let persistance: Persistance;\n\n if (localStorage.getItem(REFRESH_TOKEN)) {\n persistance = Persistance.LOCAL;\n } else if (sessionStorage.getItem(REFRESH_TOKEN)) {\n persistance = Persistance.SESSION;\n } else {\n persistance = Persistance.NONE;\n }\n\n return persistance;\n};\n","import React from 'react';\nimport { toast, ToastOptions } from 'react-toastify';\n\nimport MaterialIcon from '../icons/MaterialIcon';\n\nexport const ShowSuccessToast = (text: string, options?: ToastOptions) => {\n toast.success(\n \n \n {text}\n ,\n {\n className: 'alert-toast primary-bg-clr',\n autoClose: 5000,\n ...options\n }\n );\n};\n\nexport const ShowErrorToast = (text: string, options?: ToastOptions) => {\n toast.error(\n \n \n {text}\n ,\n {\n autoClose: 5000,\n ...options\n }\n );\n};\n\nexport const ShowInfoToast = (text: string, options?: ToastOptions) => {\n toast.error(\n \n \n {text}\n ,\n {\n className: 'alert-toast blue-bg-clr',\n autoClose: 5000,\n ...options\n }\n );\n};\n","import axios from 'axios';\n\nimport API_URL from '_constants/apiConstants';\nimport { Currency, CodeList, Industry, Country } from '_types/commonTypes';\nimport { TENDER_URL } from './tenderApi';\n\nconst CODELIST_URL = '/api/codelist';\n\nexport const fetchCurrencies = async (): Promise => {\n const res = await axios.get(`${API_URL + CODELIST_URL}/Currency`);\n return mapCurrency(res.data);\n};\n\nexport const fetchUnitsOfMeasurement = async (): Promise>> => {\n const res = await axios.get(`${API_URL + CODELIST_URL}/UnitOfMeasurement`);\n return mapUnitsOfMeasurement(res.data);\n};\n\nexport const fetchIndustries = async (): Promise => {\n const res = await axios.get(`${API_URL + CODELIST_URL}/Industry`);\n return mapIndustry(res.data);\n};\n\nexport const fetchUnitsOfTenderCriterion = async (): Promise>> => {\n const res = await axios.get(`${API_URL + CODELIST_URL}/UnitOfTenderCriterion`);\n return mapUnitsOfTenderCriterion(res.data);\n};\n\nexport const fetchCountries = async (): Promise> => {\n const res = await axios.get(`${API_URL + CODELIST_URL}/Country`);\n return mapCountries(res.data);\n};\n\nexport const fetchSuppliersInvitationStatuses = async (): Promise>> => {\n const res = await axios.get(`${API_URL + CODELIST_URL}/SupplierInvitationStatus`);\n return mapSupplierInvitationStatuses(res.data);\n};\n\nexport const fetchTenderStatuses = async (): Promise>> => {\n const res = await axios.get(`${API_URL + CODELIST_URL}/TenderStatus`);\n return mapTenderStatus(res.data);\n};\n\nexport const fetchWikiCategories = async (): Promise>> => {\n const res = await axios.get(`${API_URL + CODELIST_URL}/tWikiCategory`);\n return mapCategory(res.data);\n};\n\nexport const fetchAddressesBE = async (): Promise => {\n const res = await axios.get(`${API_URL + TENDER_URL}/GetMyAddresses`);\n return res;\n};\n\nexport const fetchCanadaProvinces = async (): Promise>> => {\n const res = await axios.get(`${API_URL + CODELIST_URL}/CanadaProvince`);\n return mapCanadaProvince(res.data);\n};\n\nexport const fetchUSAStates = async (): Promise>> => {\n const res = await axios.get(`${API_URL + CODELIST_URL}/USState`);\n return mapUSStates(res.data);\n};\n\nconst mapSupplierInvitationStatuses = (data: any) => {\n const result: Array> = [];\n data.forEach(element => {\n result.push({\n id: element.SupplierStatusId,\n name: element.Name\n });\n });\n return result;\n};\n\nconst mapCategory = (data: any) => {\n const result: Array> = [];\n data.forEach(element => {\n result.push({ id: element.Id, name: element.Name });\n });\n return result;\n};\n\nconst mapCountries = (data: any) => {\n const result: Array = [];\n data.forEach(element => {\n result.push({\n id: element.CountryId,\n name: element.Name,\n code: element.Code,\n capital: element.Capital,\n region: element.Region,\n banned: element.Banned\n });\n });\n return result;\n};\n\nconst mapUnitsOfTenderCriterion = (data: any) => {\n const result: Array> = [];\n data.forEach(element => {\n result.push({\n id: element.UnitOfTenderCriterionId,\n name: element.Name\n });\n });\n return result;\n};\n\nconst mapTenderStatus = (data: any) => {\n const result: Array> = [];\n data.forEach(element => {\n result.push({\n id: element.TenderStatusId,\n name: element.Name\n });\n });\n return result;\n};\n\nconst mapIndustry = (data: any) => {\n const result: Industry[] = [];\n if (data !== null && data.Data !== null) {\n data.forEach(element => {\n result.push({\n id: element.IndustryId,\n name: element.Name,\n display: element.Display\n });\n });\n }\n return result;\n};\n\nconst mapUnitsOfMeasurement = (data: any) => {\n const result: Array> = [];\n data.forEach(element => {\n result.push({\n id: element.UnitOfMeasurementId,\n name: element.Name\n });\n });\n return result;\n};\n\nconst mapCanadaProvince = (data: any) => {\n const result: Array> = [];\n data.forEach(element => {\n result.push({\n id: element.CanadaProvinceId,\n name: element.Name\n });\n });\n return result;\n};\n\nconst mapUSStates = (data: any) => {\n const result: Array> = [];\n data.forEach(element => {\n result.push({\n id: element.USStateId,\n name: element.Name\n });\n });\n return result;\n};\n\nconst mapCurrency = (data: any): Currency[] => {\n const result: Currency[] = [];\n data.forEach(element => {\n result.push({\n id: element.CurrencyId,\n name: element.Name,\n symbol: element.Symbol\n });\n });\n return result;\n};\n","import debounce from 'lodash.debounce';\nimport moment from 'moment';\nimport FileSaver from 'file-saver';\nimport { Role } from '_types/commonTypes';\nimport qs from 'qs';\n\nexport const resetBids = (bids: { id: number; value: string }[]) => {\n for (let i = 0; i < bids.length; i++) {\n bids[i] = { ...bids[i], value: '' };\n }\n};\n\n/**\n * Debounce synthetic events\n * @param {...any} args\n */\nexport const debounceEvent = (...args: [any, number]) => {\n const debouncedEvent = debounce(...args);\n return e => {\n e.persist();\n return debouncedEvent(e);\n };\n};\n\nexport const updateFavicon = faviconUrl => {\n const link: HTMLLinkElement = document.querySelector(\"link[rel*='icon']\") || document.createElement('link');\n link.type = 'image/x-icon';\n link.rel = 'shortcut icon';\n link.href = faviconUrl;\n document.getElementsByTagName('head')[0].appendChild(link);\n};\n\nexport const momentWithSecAndMsReset = () => moment().set({ s: 0, ms: 0 });\n\nexport const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));\n\nexport const hasRole = (roles: Role[], role: Role) => roles.some(r => r === role);\n\nexport const SaveFile = (fileData, fileName) => FileSaver.saveAs(fileData, fileName);\n\nexport const sliderSettings = {\n slidesToShow: 2,\n className: 'slick-wrapper',\n slidesToScroll: 2,\n responsive: [\n { breakpoint: 99999, settings: 'unslick' },\n { breakpoint: 992, settings: { slidesToShow: 3, slidesToScroll: 3 } },\n { breakpoint: 600, settings: { slidesToShow: 2, slidesToScroll: 2 } }\n ]\n};\n\nexport function b64EncodeUnicode(str) {\n // first we use encodeURIComponent to get percent-encoded UTF-8,\n // then we convert the percent encodings into raw bytes which\n // can be fed into btoa.\n return btoa(\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) {\n return String.fromCharCode(('0x' + p1) as any);\n })\n );\n}\n\nexport const isNumber = (str: string) => {\n if (typeof str != 'string') {\n return false;\n }\n\n if (str.trim() === '') {\n return false;\n }\n\n return !Number.isNaN(Number(str));\n};\n\nexport function dateIsValid(date: Date) {\n return date instanceof Date && !isNaN(date.getTime());\n}\n\nexport const getQueryParams = () => {\n const { search } = window.location;\n\n return qs.parse(search, { ignoreQueryPrefix: true }) as T;\n};\n","export const INSERT_NEW_ADDRESS_ID = 3;\nexport const INSERT_NEW_ADDRESS_NAME = 'Insert new address';\nexport const DELIVERY_ADDRESS_OPTION = 'New delivery address';\nexport const YES_OR_NO_CRITERION_UNIT_ID = 'YN';\nexport const userInfoResponseErrors = {\n NOT_ACTIVATED: 'not-activated',\n NOT_AUTHENTICATED: 'not-authenticated'\n};\n\nexport const HIDE_ON_SMALL = 'hide-on-small';\nexport const HIDE_ON_MEDIUM_DOWN = 'hide-on-medium-and-down';\nexport const HIDE_ON_LARGE_UP = 'hide-on-large-and-up';\n\n// Table constants\nexport const paginationTables = {\n AUCTION_SEARCH_RESULT: 'PaginationTable(AUCTION_SEARCH_RESULT)',\n GOV_AUCTION_SEARCH_RESULT: 'PaginationTable(GOV_AUCTION_SEARCH_RESULT)',\n SUPPLIERS_SEARCH_RESULT: 'PaginationTable(SUPPLIERS_SEARCH_RESULT)'\n};\n\nexport const MANIFESTO_KEY = 'manifesto';\n","import { ThunkAction } from 'redux-thunk';\nimport { IApplicationState } from 'core/reducer';\nimport collapsible from '_libs/collapsible';\n\nexport enum IActionTypes {\n TOGGLE_EDIT_DELIVERY_CARD = 'TOGGLE_EDIT_DELIVERY_CARD',\n TOGGLE_INIVTE_BY_EMAIL_SECTION = 'TOGGLE_INIVTE_BY_EMAIL_SECTION',\n TOGGLE_ADD_FROM_BESTAUCTION_USERS_CARD = 'TOGGLE_ADD_FROM_BESTAUCTION_USERS_CARD',\n TOGGLE_ADD_FROM_MY_CONTACTS_CARD = 'TOGGLE_ADD_FROM_MY_CONTACTS_CARD',\n TOGGLE_AUCTION_ENDED_NOTIFICATION = 'TOGGLE_AUCTION_ENDED_NOTIFICATION',\n TOGGLE_NOTIFICATION_PANEL = 'TOGGLE_NOTIFICATION_PANEL',\n TOGGLE_DETAILED_TABLE_VIEW = 'TOGGLE_DETAILED_TABLE_VIEW',\n TOGGLE_SAVE_ADDRESS_TO_USER_PROFILE = 'TOGGLE_SAVE_ADDRESS_TO_USER_PROFILE',\n TOGGLE_SAVE_ADDRESS_TO_COMPANY_PROFILE = 'TOGGLE_SAVE_ADDRESS_TO_COMPANY_PROFILE',\n TOGGLE_EDIT_DELIVERY_MAP = 'TOGGLE_EDIT_DELIVERY_MAP'\n}\n\ninterface IToggleInviteByEmailSection {\n type: IActionTypes.TOGGLE_INIVTE_BY_EMAIL_SECTION;\n}\ninterface IToggleEditDeliveryCard {\n type: IActionTypes.TOGGLE_EDIT_DELIVERY_CARD;\n}\n\ninterface IToggleAddFromBestauctionUsersCard {\n type: IActionTypes.TOGGLE_ADD_FROM_BESTAUCTION_USERS_CARD;\n}\n\ninterface IToggleAddFromMyContactsCard {\n type: IActionTypes.TOGGLE_ADD_FROM_MY_CONTACTS_CARD;\n}\n\ninterface IToggleNotificationPanel {\n type: IActionTypes.TOGGLE_NOTIFICATION_PANEL;\n}\n\ninterface IToggleAuctionEndedNotification {\n type: IActionTypes.TOGGLE_AUCTION_ENDED_NOTIFICATION;\n payload: { hasEnded: boolean };\n}\n\ninterface IToggleDetailedTableView {\n type: IActionTypes.TOGGLE_DETAILED_TABLE_VIEW;\n}\n\ninterface IToggleSaveAddressToUserProfileAction {\n type: IActionTypes.TOGGLE_SAVE_ADDRESS_TO_USER_PROFILE;\n}\n\ninterface IToggleSaveAddressToCompanyProfileAction {\n type: IActionTypes.TOGGLE_SAVE_ADDRESS_TO_COMPANY_PROFILE;\n}\n\nfunction toggleInviteByEmailSection(): IToggleInviteByEmailSection {\n return { type: IActionTypes.TOGGLE_INIVTE_BY_EMAIL_SECTION };\n}\n\nfunction toggleEditDeliveryCard(): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const card = document.querySelector('.card.accordion');\n const isCardShown = getState().ui.auctionDataStep.isEditDeliveryCardOpened;\n\n if (card) {\n if (isCardShown) {\n collapsible.collapseSection(card);\n } else {\n collapsible.expandSection(card);\n }\n }\n\n dispatch(success());\n };\n\n function success(): IToggleEditDeliveryCard {\n return { type: IActionTypes.TOGGLE_EDIT_DELIVERY_CARD };\n }\n}\n\nfunction toggleAddFromBestauctionUsersCard(): IToggleAddFromBestauctionUsersCard {\n return { type: IActionTypes.TOGGLE_ADD_FROM_BESTAUCTION_USERS_CARD };\n}\nfunction toggleAddFromMyContactsCard(): IToggleAddFromMyContactsCard {\n return { type: IActionTypes.TOGGLE_ADD_FROM_MY_CONTACTS_CARD };\n}\nfunction toggleNotificationPanel(): IToggleNotificationPanel {\n return { type: IActionTypes.TOGGLE_NOTIFICATION_PANEL };\n}\nfunction toggleAuctionEndedNotification(hasEnded: boolean): IToggleAuctionEndedNotification {\n return { type: IActionTypes.TOGGLE_AUCTION_ENDED_NOTIFICATION, payload: { hasEnded } };\n}\nfunction toggleDetailedTableView(): IToggleDetailedTableView {\n return { type: IActionTypes.TOGGLE_DETAILED_TABLE_VIEW };\n}\nfunction toggleSaveAddressToUserProfile(): IToggleSaveAddressToUserProfileAction {\n return { type: IActionTypes.TOGGLE_SAVE_ADDRESS_TO_USER_PROFILE };\n}\nfunction toggleSaveAddressToCompanyProfile(): IToggleSaveAddressToCompanyProfileAction {\n return { type: IActionTypes.TOGGLE_SAVE_ADDRESS_TO_COMPANY_PROFILE };\n}\n\nexport type UtiltyAction =\n | IToggleInviteByEmailSection\n | IToggleEditDeliveryCard\n | IToggleAddFromBestauctionUsersCard\n | IToggleAddFromMyContactsCard\n | IToggleAuctionEndedNotification\n | IToggleNotificationPanel\n | IToggleDetailedTableView\n | IToggleSaveAddressToUserProfileAction\n | IToggleSaveAddressToCompanyProfileAction;\n\nexport {\n toggleEditDeliveryCard,\n toggleAddFromBestauctionUsersCard,\n toggleAddFromMyContactsCard,\n toggleInviteByEmailSection,\n toggleNotificationPanel,\n toggleAuctionEndedNotification,\n toggleDetailedTableView,\n toggleSaveAddressToUserProfile,\n toggleSaveAddressToCompanyProfile\n};\n","import { ThunkAction } from 'redux-thunk';\n\nimport { wikiApi } from '_api/wikiApi';\nimport * as codeListApi from '_api/codeListApi';\nimport { WikiQuestionAndAnswer, CodeList, IAction } from '_types/commonTypes';\n\nexport enum IWikiActionTypes {\n LOAD_WIKI_CONTENT = '[LOAD_WIKI_CONTENT] SUCCESS',\n LOAD_WIKI_CATEGORIES = '[LOAD_WIKI_CATEGORIES] SUCCESS',\n ADD_QUESTION_AND_ANSWER = '[ADD_QUESTION_AND_ANSWER] SUCCESS',\n ADD_WIKI_CATEGORY = '[ADD_WIKI_CATEGORY] SUCCESS',\n EDIT_WIKI_QUESTION_AND_ANSWER = '[EDIT_WIKI_QUESTION_AND_ANSWER] SUCCESS',\n EDIT_WIKI_CATEGORY = '[EDIT_WIKI_CATEGORY] SUCCESS',\n REMOVE_WIKI_QUESTION = '[REMOVE_WIKI_QUESTION] SUCCESS',\n REMOVE_WIKI_CATEGORY = '[REMOVE_WIKI_CATEGORY] SUCCESS'\n}\n\ninterface ILoadWikiContentSuccessAction\n extends IAction {}\n\ninterface ILoadWikiCategoriesSuccessAction\n extends IAction> }> {}\n\ninterface IAddQuestionSuccessAction\n extends IAction {}\n\ninterface IAddCategorySuccessAction\n extends IAction }> {}\n\ninterface IEditQuestionSuccessAction\n extends IAction {}\n\ninterface IEditCategorySuccessAction\n extends IAction }> {}\n\ninterface IRemoveQuestionSuccessAction extends IAction {}\n\ninterface IRemoveCategorySuccessAction extends IAction {}\n\nfunction loadWikiContent(): ThunkAction, any, null, any> {\n return dispatch => {\n return wikiApi\n .fetchWikiContent()\n .then(wikiContent => {\n dispatch(success(wikiContent));\n return wikiContent;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(wikiContent: WikiQuestionAndAnswer[]): ILoadWikiContentSuccessAction {\n return {\n type: IWikiActionTypes.LOAD_WIKI_CONTENT,\n payload: { wikiContent }\n };\n }\n}\n\nfunction loadWikiCategories(): ThunkAction, any, null, any> {\n return dispatch => {\n return codeListApi\n .fetchWikiCategories()\n .then(wikiCategories => {\n dispatch(success(wikiCategories));\n return wikiCategories;\n })\n .catch(error => {\n throw error;\n });\n };\n\n function success(wikiCategories: Array>): ILoadWikiCategoriesSuccessAction {\n return {\n type: IWikiActionTypes.LOAD_WIKI_CATEGORIES,\n payload: { wikiCategories }\n };\n }\n}\n\nfunction addQuestion(question: WikiQuestionAndAnswer): ThunkAction, any, null, any> {\n return dispatch => {\n return wikiApi.addQuestionAndAnswer(question).then(res => dispatch(success({ ...question, id: res.data.Id })));\n };\n\n function success(question: WikiQuestionAndAnswer): IAddQuestionSuccessAction {\n return {\n type: IWikiActionTypes.ADD_QUESTION_AND_ANSWER,\n payload: { question }\n };\n }\n}\n\nfunction addWikiCategory(category: CodeList): ThunkAction, any, null, any> {\n return dispatch => {\n return wikiApi.addCategory(category.name).then(res => dispatch(success({ ...category, id: res.data })));\n };\n\n function success(category: CodeList): IAddCategorySuccessAction {\n return {\n type: IWikiActionTypes.ADD_WIKI_CATEGORY,\n payload: { category }\n };\n }\n}\n\nfunction editQuestion(question: WikiQuestionAndAnswer): ThunkAction, any, null, any> {\n return dispatch => {\n return wikiApi.editQuestionAndAnswer(question).then(() => dispatch(success(question)));\n };\n\n function success(question: WikiQuestionAndAnswer): IEditQuestionSuccessAction {\n return {\n type: IWikiActionTypes.EDIT_WIKI_QUESTION_AND_ANSWER,\n payload: { question }\n };\n }\n}\n\nfunction editWikiCategory(category: CodeList): ThunkAction, any, null, any> {\n return dispatch => {\n return wikiApi.editCategory(category).then(() => dispatch(success(category)));\n };\n\n function success(category: CodeList): IEditCategorySuccessAction {\n return {\n type: IWikiActionTypes.EDIT_WIKI_CATEGORY,\n payload: { category }\n };\n }\n}\n\nfunction removeQuestion(id: number): ThunkAction, any, null, any> {\n return dispatch => {\n return wikiApi.removeQuestion(id).then(() => dispatch(success(id)));\n };\n\n function success(id: number): IRemoveQuestionSuccessAction {\n return {\n type: IWikiActionTypes.REMOVE_WIKI_QUESTION,\n payload: { id }\n };\n }\n}\n\nfunction removeWikiCategory(id: number): ThunkAction, any, null, any> {\n return dispatch => {\n return wikiApi.removeCategory(id).then(() => dispatch(success(id)));\n };\n\n function success(id: number): IRemoveCategorySuccessAction {\n return {\n type: IWikiActionTypes.REMOVE_WIKI_CATEGORY,\n payload: { id }\n };\n }\n}\n\nexport type WikiActions = ILoadWikiContentSuccessAction | ILoadWikiCategoriesSuccessAction;\n\nexport type AdminWikiActions =\n | ILoadWikiContentSuccessAction\n | ILoadWikiCategoriesSuccessAction\n | IAddQuestionSuccessAction\n | IEditQuestionSuccessAction\n | IRemoveQuestionSuccessAction\n | IAddCategorySuccessAction\n | IEditCategorySuccessAction\n | IRemoveCategorySuccessAction;\n\nexport {\n loadWikiContent,\n loadWikiCategories,\n addQuestion,\n editQuestion,\n removeQuestion,\n addWikiCategory,\n removeWikiCategory,\n editWikiCategory\n};\n","import axios from 'axios';\n\nimport API_URL from '_constants/apiConstants';\nimport { WikiQuestionAndAnswer, CodeList } from '_types/commonTypes';\n\nconst ADMIN_URL = '/api/admin';\n\nconst ADMIN_API_URL = API_URL + ADMIN_URL;\n\nconst fetchWikiContent = async (): Promise => {\n const res = await axios.get(`${ADMIN_API_URL}/GetQuestionsAndAnswersFromWiki`);\n return mapWikiContent(res.data);\n};\n\nconst addQuestionAndAnswer = (body: WikiQuestionAndAnswer) => {\n return axios.post(`${ADMIN_API_URL}/AddQuestionAndAnswerToWiki`, body);\n};\n\nconst editQuestionAndAnswer = (body: WikiQuestionAndAnswer) => {\n return axios.put(`${ADMIN_API_URL}/EditQuestionAndAnswerToWiki`, body);\n};\n\nconst removeQuestion = (id: number) => {\n return axios.delete(`${ADMIN_API_URL}/DeleteQuestionAndAnswerFromWiki`, {\n params: { QuestionId: id }\n });\n};\n\nconst addCategory = (name: string) => {\n return axios.post(`${ADMIN_API_URL}/AddWikiCategory`, {}, { params: { wikiCategoryName: name } });\n};\n\nconst editCategory = (category: CodeList) => {\n return axios.post(\n `${ADMIN_API_URL}/EditWikiCategory`,\n {},\n {\n params: {\n wikiCategoryId: category.id,\n wikiCategoryName: category.name\n }\n }\n );\n};\n\nconst removeCategory = (id: number) => {\n return axios.post(\n `${ADMIN_API_URL}/RemoveWikiCategory`,\n {},\n {\n params: { wikiCategoryId: id }\n }\n );\n};\n\nexport const mapWikiContent = data => {\n const result: WikiQuestionAndAnswer[] = [];\n\n if (typeof data !== 'undefined') {\n data.forEach(element => {\n result.push({\n id: element.Id,\n question: element.Question,\n answer: element.Answer,\n categoryId: element.CategoryId\n });\n });\n }\n\n return result;\n};\n\nexport const wikiApi = {\n addCategory,\n editCategory,\n removeCategory,\n fetchWikiContent,\n addQuestionAndAnswer,\n editQuestionAndAnswer,\n removeQuestion\n};\n","import { IAction } from '_types/commonTypes';\n\nimport { ThunkAction } from 'redux-thunk';\nimport adminApi from '_api/adminApi';\n\nexport enum IActionTypes {\n LOAD_LOCALIZATION = '[COMMON] LOAD_LOCALIZATION',\n SET_PENDING_AUCTION_INV_COUNT = '[COMMON] SET_PENDING_AUCTION_INV_COUNT',\n SET_PENDING_PUBLIC_BIDDERS_COUNT = '[COMMON] SET_PENDING_PUBLIC_BIDDERS_COUNT'\n}\n\ninterface ILoadLocalizationSuccessAction extends IAction {}\n\ninterface ISetPendingAuctionInvCount\n extends IAction {}\n\ninterface ISetPendingPublicBiddersCount\n extends IAction {}\n\nfunction loadLocalization(): ThunkAction, any, null, any> {\n return dispatch => {\n return adminApi.fetchOnlyFeLocalizationTexts().then(res => {\n const mappedText = {};\n\n res.data.forEach(loc => {\n mappedText[loc.Key] = loc.Value;\n });\n\n dispatch(loadLocalizationSuccess(mappedText));\n });\n };\n\n function loadLocalizationSuccess(texts: any): ILoadLocalizationSuccessAction {\n return { type: IActionTypes.LOAD_LOCALIZATION, payload: { localization: texts } };\n }\n}\n\nfunction setPendingCounters(\n auctionInvitationsCount: number,\n publicBiddersCount: number\n): ThunkAction {\n return dispatch => {\n dispatch(setPendingAuctionInvCount(auctionInvitationsCount));\n dispatch(setPendingPublicBiddersCount(publicBiddersCount));\n };\n}\n\nfunction setPendingAuctionInvCount(count: number): ISetPendingAuctionInvCount {\n return { type: IActionTypes.SET_PENDING_AUCTION_INV_COUNT, payload: { count } };\n}\n\nfunction setPendingPublicBiddersCount(count: number): ISetPendingPublicBiddersCount {\n return { type: IActionTypes.SET_PENDING_PUBLIC_BIDDERS_COUNT, payload: { count } };\n}\n\nexport type CommonAction =\n | ILoadLocalizationSuccessAction\n | ISetPendingPublicBiddersCount\n | ISetPendingAuctionInvCount;\n\nexport default {\n loadLocalization,\n setPendingCounters,\n setPendingPublicBiddersCount,\n setPendingAuctionInvCount\n};\n","import {\n ItemDetails,\n CriterionDetails,\n Address,\n CodeList,\n Supplier,\n User,\n AttachmentState,\n Attachment\n} from './commonTypes';\n\nexport interface Tender {\n tenderId: number;\n tenderStatus: number;\n name: string;\n keywords: string;\n currency: string;\n totExpPrice: number;\n mainPictureUrl: string;\n totExpPriceInUserCurr: number;\n industries: Array>;\n itemsDetails: ItemDetails[];\n criteriaDetails: CriterionDetails[];\n suppliers: Supplier[];\n attachments: AttachmentState;\n mustHaveConditions: MustHaveCondition[];\n addressSource: number;\n newDeliveryAddress: Address;\n proposalEndDate: string;\n startDate: string;\n duration: number;\n stepProgress: number;\n canceledReason?: string;\n announcements: Message[];\n isPublic: boolean;\n isFavorite: boolean;\n isVatIncluded: boolean;\n owner: User;\n totalActiveBidders: number;\n createdDate: Date;\n}\n\nexport interface TenderTemplate {\n isDemo: boolean;\n name: string;\n currency: string;\n addressSource: number;\n deliveryAddress: Address;\n itemsDetails: ItemDetails[];\n criteriaDetails: CriterionDetails[];\n mustHaveConditions: MustHaveCondition[];\n duration: number;\n proposalEndDateTime: string;\n startDateTime: string;\n attachments: Attachment[];\n}\n\nexport interface TenderBoardShowings {\n tenderId: number;\n tenderName: string;\n amount: number;\n createdDate: Date;\n currencyId: string;\n isOwner: boolean;\n}\n\nexport interface TenderLightWeight {\n id: number;\n name: string;\n createDate: Date;\n mainPictureUrl: string;\n totalActiveBiddersCount: number;\n newAppliesCount: number | null;\n isFavorite: boolean;\n isDemo: boolean;\n currency: string;\n totalExpectedPrice: number;\n startDate: Date;\n isOwner: boolean;\n ownerName: string;\n ownerCompanyId: number;\n isPublic: boolean;\n supplierStatus: number | null;\n tenderStatus: number;\n keywords: string;\n industries: string;\n}\n\nexport interface MustHaveCondition {\n id: number;\n text: string;\n hasAdditionalInfo: boolean;\n}\n\nexport interface MustHaveConditionResponse {\n mhcId: number;\n response: string;\n}\n\ntype Bid = 'Criterion' | 'Item';\n\nexport type SuppliersBidChange = {\n id: number;\n type: Bid;\n userName: string;\n};\n\nexport type SuppliersItemBid = {\n userName: string;\n itemId: number;\n bid: string;\n};\n\nexport type Message = {\n date: Date;\n text: string;\n};\n\nexport type SuppliersCriterionBid = {\n userName: string;\n criteriaId: number;\n bid: string;\n};\n\nexport enum TenderStatus {\n NEW = 0,\n SCHEDULED = 5,\n RFP_SUBMITTED = 10,\n RFP_ENDED = 11,\n SUBMITTED = 20,\n ENDED = 22,\n CANCELED = 50,\n FREEZE = 100\n}\n","import { Address, Country, Coords } from '_types/commonTypes';\nimport { AddressDTO } from '_types/backendTypes';\nimport { initialCountry } from '_reducers/partialInitialStates';\n\nexport const mapToCoords = (GPS_NS, GPS_EW): Coords => {\n return {\n lat: GPS_NS || '',\n lng: GPS_EW || ''\n };\n};\n\nexport const mapAddressToDto = (address: Address): AddressDTO => {\n return {\n AddressId: address.id,\n CountryId: address.country.id,\n City: address.city,\n PostalCode: address.zipCode,\n State: address.state,\n Street: address.streetAddress,\n StreetLine2: address.streetAddress2,\n GPS_NS: address.gpsCoords.lat,\n GPS_EW: address.gpsCoords.lng\n };\n};\n\nexport const mapDtoToAddress = (dto: AddressDTO | null, countries: Country[]): Address => {\n return {\n id: dto ? dto.AddressId || 0 : 0,\n city: dto ? dto.City || '' : '',\n country: dto && dto.CountryId ? countries.find(c => c.id === dto.CountryId)! : initialCountry,\n state: dto ? dto.State || '' : '',\n streetAddress: dto ? dto.Street || '' : '',\n streetAddress2: dto ? dto.StreetLine2 || '' : '',\n zipCode: dto ? dto.PostalCode || '' : '',\n gpsCoords: {\n lat: dto ? dto.GPS_NS || '' : '',\n lng: dto ? dto.GPS_EW || '' : ''\n }\n };\n};\n\nexport const mapGoogleAddressComponentsToAddress = (\n components: google.maps.GeocoderAddressComponent[],\n location: google.maps.LatLng,\n countries: Country[]\n): Address => {\n const countryComponent = components.find(x => x.types[0] === 'country') || {\n short_name: 'COUNTRY_NOT_FOUND'\n };\n const cityComponent = components.find(x => x.types.findIndex(x => x === 'sublocality' || x === 'locality') > -1);\n const zipCodeComponent = components.find(x => x.types[0] === 'postal_code');\n const stateComponent = components.find(x => x.types[0] === 'administrative_area_level_1');\n const routeComponent = components.find(x => x.types[0] === 'route');\n const premiseComponent = components.find(x => x.types[0] === 'premise');\n const streetNumberComponent = components.find(x => x.types[0] === 'street_number');\n\n const country: Country = countries.find(x => x.code === countryComponent.short_name) || initialCountry;\n\n const streetLine2 =\n premiseComponent && streetNumberComponent\n ? `${premiseComponent.short_name}/${streetNumberComponent.short_name}`\n : streetNumberComponent\n ? streetNumberComponent.short_name\n : '';\n\n return {\n id: 0,\n streetAddress: routeComponent\n ? routeComponent.long_name.normalize('NFKD').replace(/[\\u0300-\\u036f]/g, '')\n : '',\n streetAddress2: streetLine2.normalize('NFKD').replace(/[\\u0300-\\u036f]/g, ''),\n zipCode: zipCodeComponent ? zipCodeComponent.short_name.replace(/ /g, '') : '',\n gpsCoords: { lat: location.lat().toString(), lng: location.lng().toString() },\n city: cityComponent ? cityComponent.long_name.normalize('NFKD').replace(/[\\u0300-\\u036f]/g, '') : '',\n state: stateComponent ? stateComponent.long_name.normalize('NFKD').replace(/[\\u0300-\\u036f]/g, '') : '',\n country: country\n };\n};\n","export enum IActionTypes {\n SUCCESS = '[alert] SUCCESS',\n ERROR = '[alert] ERROR',\n CLEAR = '[alert] CLEAR'\n}\n\nexport interface ISuccessAction {\n type: IActionTypes.SUCCESS;\n payload: { message: string };\n}\nexport interface IErrorAction {\n type: IActionTypes.ERROR;\n payload: { message: string };\n}\nexport interface IClearAction {\n type: IActionTypes.CLEAR;\n}\n\nfunction success(message: string): ISuccessAction {\n return { type: IActionTypes.SUCCESS, payload: { message } };\n}\n\nfunction error(message: string): IErrorAction {\n return { type: IActionTypes.ERROR, payload: { message } };\n}\n\nfunction clear(): IClearAction {\n return { type: IActionTypes.CLEAR };\n}\n\nexport { error, clear, success };\n\nexport type Action = IErrorAction | IClearAction | ISuccessAction;\n","import { ThunkAction } from 'redux-thunk';\n\nimport { fetchNotificationsBE, MarkMultipleNotificationsAsReadBE } from '_api/notificationApi';\nimport { mapToNotifications } from '_mappers/notificationMapper';\nimport { Notification } from '_types/commonTypes';\nimport { IApplicationState } from 'core/reducer';\nimport favicon from '_assets/images/favicon.png';\nimport faviconNotification from '_assets/images/favicon-notification.png';\nimport { updateFavicon } from '_libs/utils';\n\nexport enum INotificationActionTypes {\n ADD_NOTIFICATION = '[ADD_NOTIFICATION] SUCCESS',\n LOAD_NOTIFICATIONS_SUCCESS = '[LOAD_NOTIFICATIONS] SUCCESS',\n MARK_ALL_UNREAD_NOTIFICATIONS_AS_READ = '[MARK_ALL_UNREAD_NOTIFICATIONS_AS_READ] SUCCESS'\n}\n\ninterface IAddNotification {\n type: INotificationActionTypes.ADD_NOTIFICATION;\n payload: { notification: Notification };\n}\n\ninterface ILoadNotificationAction {\n type: INotificationActionTypes.LOAD_NOTIFICATIONS_SUCCESS;\n payload: { notifications: Notification[] };\n}\n\ninterface IMarkAllUnreadNotificationsAsRead {\n type: INotificationActionTypes.MARK_ALL_UNREAD_NOTIFICATIONS_AS_READ;\n payload: { notifIds: number[] };\n}\n\nfunction addNotification(notification: Notification) {\n updateFavicon(faviconNotification);\n\n return success(notification);\n\n function success(notification: Notification): IAddNotification {\n return { type: INotificationActionTypes.ADD_NOTIFICATION, payload: { notification } };\n }\n}\n\nfunction loadNotifications(page: number, countPerPage: number): ThunkAction, any, null, any> {\n return dispatch => {\n return fetchNotificationsBE(page, countPerPage)\n .then(res => mapToNotifications(res.data))\n .then(notifications => {\n // On first load if there are som unread notifications set notif favicon and put question mark before title\n if (page === 1 && notifications.findIndex(n => n.read === false) > -1) {\n updateFavicon(faviconNotification);\n }\n dispatch(success(notifications));\n })\n .catch(err => {\n throw err;\n });\n };\n\n function success(notifications: Notification[]): ILoadNotificationAction {\n return {\n type: INotificationActionTypes.LOAD_NOTIFICATIONS_SUCCESS,\n payload: { notifications }\n };\n }\n}\n\n/**\n * Marks all notifications that are unread to read\n */\nfunction markAllUnreadNotificationsAsRead(): ThunkAction {\n return (dispatch, getState: () => IApplicationState) => {\n const notifIds: number[] = [];\n\n getState()\n .notifcation.notifications.filter(i => i.read === false)\n .forEach(notif => notifIds.push(notif.id));\n\n if (notifIds.length > 0) {\n MarkMultipleNotificationsAsReadBE(notifIds)\n .then(() => {\n updateFavicon(favicon);\n dispatch(success(notifIds));\n })\n .catch(err => {\n throw err;\n });\n }\n };\n\n function success(notifIds: number[]): IMarkAllUnreadNotificationsAsRead {\n return {\n type: INotificationActionTypes.MARK_ALL_UNREAD_NOTIFICATIONS_AS_READ,\n payload: { notifIds }\n };\n }\n}\n\nexport { addNotification, loadNotifications, markAllUnreadNotificationsAsRead };\n\nexport type NotificationAction = IAddNotification | ILoadNotificationAction | IMarkAllUnreadNotificationsAsRead;\n","import axios from 'axios';\n\nimport API_URL from '_constants/apiConstants';\n\nconst NOTIFICATION_URL = '/api/notifications';\n\nconst NOTIFICATION_API_URL = API_URL + NOTIFICATION_URL;\n\nconst fetchNotificationsBE = async (page: number, countPerPage: number): Promise => {\n const res = await axios.get(`${NOTIFICATION_API_URL}/GetNotificationsForUser`, {\n params: {\n page,\n countPerPage\n }\n });\n return res;\n};\n\nconst MarkMultipleNotificationsAsReadBE = async (notificationsIds: number[]): Promise => {\n const res = await axios.patch(\n `${NOTIFICATION_API_URL}/SetSelectedNotificationAsRead`,\n notificationsIds\n );\n return res;\n};\n\nexport { fetchNotificationsBE, MarkMultipleNotificationsAsReadBE };\n","import axios from 'axios';\n\nexport default function setDefaultAuthorizationHeader(token): void {\n const authorization: string = 'Authorization';\n\n if (token) {\n axios.defaults.headers.common[authorization] = `Bearer ${token}`;\n } else {\n delete axios.defaults.headers.common[authorization];\n }\n}\n","import React, { createContext, useContext } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { IApplicationState } from 'core/reducer';\n\nexport const LocalizationContext = createContext([]);\n\nconst LocalizationProvider = ({ children }) => {\n const localization = useSelector((state: IApplicationState) => state.common.localization);\n\n return (\n {children}\n );\n};\n\nexport default LocalizationProvider;\n\nexport const useLocalization = () => useContext(LocalizationContext);\n","import { UserDetailsDTO, AddressDTO, CompanyDTO, ContactDTO } from '_types/backendTypes';\nimport { User, Country, Industry, Company } from '_types/commonTypes';\nimport { mapAddressToDto, mapDtoToAddress } from './commonMapper';\nimport { transformToStarUsername } from '_libs/helpers';\nimport {\n initialCompanyState,\n initialUserState,\n initialCountry,\n initialDeliveryAddressState\n} from '_reducers/partialInitialStates';\n\nexport const mapToUser = (\n dto: UserDetailsDTO,\n countries: Country[],\n industriesCodeList: Industry[],\n hideInfo?: boolean,\n description?: string\n): User => {\n const industries: Industry[] = [];\n if (dto.Company && dto.Company.Industries && dto.Company.Industries.length > 0) {\n dto.Company.Industries.forEach(d => {\n const idx = industriesCodeList.findIndex(i => i.id === d);\n\n if (idx > -1) {\n industries.push(industriesCodeList[idx]);\n } else {\n // Industry nod from our database but from imported data\n industries.push({ id: d, display: d, name: d });\n }\n });\n }\n\n return {\n userName: dto.UserName,\n coveredUsername: transformToStarUsername(dto.UserName),\n email: dto.Email || '',\n isEmailConfirmed: dto.ContactEmailConfirmed,\n firstName: dto.FirstName || '',\n lastName: dto.LastName || '',\n phoneNumber: dto.PhoneNumber || '',\n rating: dto.Rating,\n facebookProfile: dto.FacebookProfile || '',\n linkedinProfile: dto.LinkedinProfile || '',\n defaultCurrency: dto.DefaultCurrency || 'USD',\n accountType: dto.AccountType || '',\n wantToBuy: dto.WantToBuy,\n wantToSell: dto.WantToSell,\n country: dto.Country || '',\n isSearcheable: dto.ShowMeInPublicSearches,\n favouriteAuctionKeywords: dto.FavouriteAuctionKeywords || '',\n address: mapDtoToAddress(dto.Address, countries),\n description,\n company: dto.Company\n ? {\n id: dto.Company.CompanyId,\n name: dto.Company.Name || '',\n position: dto.Company.Position || '',\n numberOfEmployees: dto.Company.NumberOfEmployees ? dto.Company.NumberOfEmployees.toString() : '',\n web: dto.Company.Web || '',\n registrationId: dto.Company.RegistrationId || '',\n taxId: dto.Company.TaxId || '',\n vatId: dto.Company.VatId || '',\n branches: dto.Company.NumberOfBranches || 1,\n yearlyRevenue: dto.Company.YearlyRevenue ? dto.Company.YearlyRevenue.toString() : '',\n industries: industries || [],\n address: mapDtoToAddress(dto.Company.Address!, countries)\n }\n : initialCompanyState,\n hideInfo\n };\n};\n\n// Update only user details portion, not company\nexport const mapToUserDetailsDTO = (user: User): UserDetailsDTO => {\n const userAddress: AddressDTO | null = user.address.country.id !== 0 ? mapAddressToDto(user.address) : null;\n\n return {\n UserName: user.userName,\n Email: user.email || '',\n ContactEmailConfirmed: user.isEmailConfirmed,\n FirstName: user.firstName,\n LastName: user.lastName,\n Rating: user.rating,\n AccountType: user.accountType,\n PhoneNumber: user.phoneNumber,\n WantToBuy: user.wantToBuy,\n WantToSell: user.wantToSell,\n Country: user.country,\n DefaultCurrency: user.defaultCurrency,\n FacebookProfile: user.facebookProfile,\n LinkedinProfile: user.linkedinProfile,\n FavouriteAuctionKeywords: user.favouriteAuctionKeywords,\n Address: userAddress,\n ShowMeInPublicSearches: user.isSearcheable,\n Company: null\n };\n};\n\nexport const mapToCompanyDTO = (company: Company): CompanyDTO => {\n const companyAddress: AddressDTO | null =\n company && company.address.country.id !== 0 ? mapAddressToDto(company.address) : null;\n\n const companyDTO: CompanyDTO | null = company && {\n CompanyId: company.id,\n Name: company.name,\n TaxId: company.taxId,\n VatId: company.vatId,\n RegistrationId: company.registrationId,\n NumberOfEmployees: company.numberOfEmployees ? Number(company.numberOfEmployees) : 0,\n Web: company.web,\n NumberOfBranches: company.branches,\n YearlyRevenue: company.yearlyRevenue ? Number(company.yearlyRevenue) : 0,\n Industries: Array.from(company.industries, industry => industry.id),\n Address: companyAddress,\n Position: company.position\n };\n\n return companyDTO;\n};\n\nexport const mapToUserFromContact = (\n dto: ContactDTO,\n countries: Country[],\n industriesCodeList: Industry[]\n): User => {\n if (dto.UserProfile === null) {\n return {\n ...initialUserState,\n userName: dto.Email,\n email: dto.Email,\n firstName: dto.CustomName,\n coveredUsername: dto.Email ? transformToStarUsername(dto.Email) : '',\n favouriteAuctionKeywords: dto.Keywords,\n address: {\n ...initialDeliveryAddressState,\n country: countries.find(c => c.id === Number(dto.CountryId)) || initialCountry\n },\n company: {\n ...initialUserState.company,\n name: dto.CompanyName,\n web: dto.CompanyWeb,\n industries: dto.Industries?.map(i => industriesCodeList.find(c => i === c.id)!) ?? []\n },\n description: dto.PersonalDescription\n };\n }\n\n return mapToUser(dto.UserProfile, countries, industriesCodeList, dto.ExternalSorurce, dto.PersonalDescription);\n};\n","import { Address } from '_types/commonTypes';\n\nexport const scrollbarVisible = element => {\n return element.scrollHeight > element.clientHeight;\n};\n\nexport const composeShortAddressString = (address: Address): string =>\n address.country.code +\n (address.state && ', ' + address.state) +\n (address.city && ', ' + address.city) +\n (address.zipCode && ', ' + address.zipCode);\n\nexport const composeShortAddressStringWithFullCountryName = (address: Address): string =>\n address.country.name +\n (address.state && ', ' + address.state) +\n (address.city && ', ' + address.city) +\n (address.zipCode && ', ' + address.zipCode);\n\nexport const composeLongAddressString = (address: Address): string =>\n address.country.name +\n (address.state && ', ' + address.state) +\n (address.city && ', ' + address.city) +\n (address.zipCode && ', ' + address.zipCode) +\n (address.streetAddress && ', ' + address.streetAddress) +\n (address.streetAddress2 && ', ' + address.streetAddress2);\n\nexport const transformToStarUsername = (userName: string): string => {\n const part1 = userName[1] !== '@' ? userName.slice(0, 2) : userName[0];\n const matchAfterAtSign = userName.match('@(.*)');\n const part2 = matchAfterAtSign ? matchAfterAtSign[0] : '@unknown.com';\n return part1 + '*****' + part2;\n};\n","import { ThunkAction } from 'redux-thunk';\nimport { User, Order, IAction } from '_types/commonTypes';\nimport contactsApi from '_api/contactsApi';\nimport { IApplicationState } from 'core/reducer';\nimport { mapToUserFromContact } from '_mappers/userMapper';\nimport { Dispatch } from 'redux';\nimport { initialUserState } from '_reducers/partialInitialStates';\n\nexport enum IContactsActionTypes {\n ADD_CONTACT = '[ADD_CONTACT] SUCCESS',\n EDIT_CONTACT = '[EDIT_CONTACT] SUCCESS',\n LOAD_CONTACTS = '[LOAD_CONTACTS] SUCCESS',\n REMOVE_CONTACT = '[REMOVE_CONTACT] SUCCESS',\n SORT_REQUEST_START = '[CONTACTS_SORT_REQUEST_START]',\n SORT_REQUEST_END = '[CONTACTS_SORT_REQUEST_END]',\n SET_FILTER = '[CONTACTS_SET_FILTER]'\n}\n\ninterface IAddContactSuccessAction {\n type: IContactsActionTypes.ADD_CONTACT;\n payload: { user: User };\n}\n\ninterface IEditContactSuccessAction {\n type: IContactsActionTypes.EDIT_CONTACT;\n payload: { user: User };\n}\n\ninterface IRemoveContactSuccessAction {\n type: IContactsActionTypes.REMOVE_CONTACT;\n payload: { username: string };\n}\n\ninterface ILoadContactsSuccessAction {\n type: IContactsActionTypes.LOAD_CONTACTS;\n payload: { users: User[]; totalCount: number; page: number; recordsPerPage: number };\n}\n\ninterface ISortRequestStartAction {\n type: IContactsActionTypes.SORT_REQUEST_START;\n payload: { sort: Order };\n}\n\ninterface ISortRequestEndAction {\n type: IContactsActionTypes.SORT_REQUEST_END;\n}\n\ninterface ISetFilterAction extends IAction {}\n\nexport function removeContact(username: string): ThunkAction, any, null, any> {\n return dispatch => {\n return contactsApi.removeContact(username).then(res => dispatch(removeContactSuccessAction(username)));\n };\n\n function removeContactSuccessAction(username: string): IRemoveContactSuccessAction {\n return {\n type: IContactsActionTypes.REMOVE_CONTACT,\n payload: { username }\n };\n }\n}\n\nexport function edtitContact(\n username: string,\n customName: string,\n companyName: string,\n companyWeb: string,\n countryId: number,\n keywords: string,\n description: string\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n const countries = getState().codeList.countries;\n const industries = getState().codeList.industries;\n\n return contactsApi\n .editContact(username, customName, companyName, companyWeb, countryId, keywords, description)\n .then(res => {\n dispatch(editContactSuccessAction(mapToUserFromContact(res.data as any, countries, industries)));\n });\n };\n\n function editContactSuccessAction(user: User): IEditContactSuccessAction {\n return {\n type: IContactsActionTypes.EDIT_CONTACT,\n payload: { user }\n };\n }\n}\n\nexport function addContact(\n username: string,\n customName?: string,\n companyName?: string,\n companyWeb?: string,\n countryId?: number,\n keywords?: string,\n industries?: string[],\n hideContactInformation?: boolean,\n description?: string\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n return contactsApi\n .addContact(\n username,\n customName || '',\n companyName || '',\n companyWeb || '',\n countryId || 0,\n keywords || '',\n industries || [],\n hideContactInformation || false,\n description || ''\n )\n .then(res => mapToUserFromContact(res.data, getState().codeList.countries, getState().codeList.industries))\n .then(user => {\n dispatch(addContactSuccessAction(user));\n return user.company.id !== 0;\n });\n };\n\n function addContactSuccessAction(user: User): IAddContactSuccessAction {\n return {\n type: IContactsActionTypes.ADD_CONTACT,\n payload: { user }\n };\n }\n}\n\nexport function loadContacts(\n pageNumber: number,\n recordsPerPage: number,\n filter: string,\n sort?: Order\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n return contactsApi\n .getContacts(pageNumber, recordsPerPage, sort || getState().contacts.sort, filter)\n .then(res => {\n const countries = getState().codeList.countries;\n const industries = getState().codeList.industries;\n\n // Email filter\n return {\n totalCount: res.data.NoOfAllContacts,\n list: res.data.Results.map(json => mapToUserFromContact(json, countries, industries))\n };\n })\n .then(result =>\n dispatch(loadContactsSuccessAction(result.list, result.totalCount, pageNumber, recordsPerPage))\n );\n };\n\n function loadContactsSuccessAction(\n users: User[],\n totalCount: number,\n page: number,\n recordsPerPage: number\n ): ILoadContactsSuccessAction {\n return {\n type: IContactsActionTypes.LOAD_CONTACTS,\n payload: { users, totalCount, page, recordsPerPage }\n };\n }\n}\n\nexport function sortContacts(\n currPage: number,\n pageLimit: number,\n filter: string,\n sort: Order\n): ThunkAction, any, null, any> {\n return (dispatch: Dispatch) => {\n dispatch(sortRequestStart(sort));\n\n return dispatch(loadContacts(currPage, pageLimit, filter, sort)).finally(() => {\n dispatch(sortRequestEnd());\n });\n };\n\n function sortRequestStart(sort: Order): ISortRequestStartAction {\n return {\n type: IContactsActionTypes.SORT_REQUEST_START,\n payload: { sort }\n };\n }\n\n function sortRequestEnd(): ISortRequestEndAction {\n return {\n type: IContactsActionTypes.SORT_REQUEST_END\n };\n }\n}\n\nexport function setContactsFilter(filter: string): ISetFilterAction {\n return { type: IContactsActionTypes.SET_FILTER, payload: filter };\n}\n\nexport type ContactsAction =\n | ILoadContactsSuccessAction\n | IAddContactSuccessAction\n | IEditContactSuccessAction\n | IRemoveContactSuccessAction\n | ISortRequestStartAction\n | ISortRequestEndAction\n | ISetFilterAction;\n","import { Supplier, CodeList, Bid, Attachment, Country, SuppliersTenderStatus } from '_types/commonTypes';\nimport { initialDeliveryAddressState, initialCompanyState } from '_reducers/partialInitialStates';\nimport { transformToStarUsername } from '_libs/helpers';\nimport moment from 'moment';\nimport { SuppliersEntity } from '_types/backendTypes';\n\nexport const mapToSupplierFromTenderSupplierDTO = (\n data: SuppliersEntity,\n supplierInvitationStatusCodeList: Array>,\n countriesCodeList: Country[]\n): Supplier => {\n const itemsBids: Array = [];\n if (typeof data.ItemsBids !== 'undefined' && data.ItemsBids !== null && data.ItemsBids.length > 0) {\n data.ItemsBids.forEach(itemBid => itemsBids.push({ id: itemBid.Id, value: itemBid.Bid.toString() }));\n }\n\n const criteriaBids: Array = [];\n if (typeof data.CriteriaBids !== 'undefined' && data.CriteriaBids !== null && data.CriteriaBids.length > 0) {\n data.CriteriaBids.forEach(criterionBid =>\n criteriaBids.push({\n id: criterionBid.Id,\n value: criterionBid.Bid.toString()\n })\n );\n }\n\n const attachments: Attachment[] = [];\n if (typeof data.Attachments !== 'undefined' && data.Attachments !== null && data.Attachments.length > 0) {\n data.Attachments.forEach(attachment => {\n attachments.push({\n id: attachment.AttachmentId,\n name: attachment.FileName\n });\n });\n }\n\n const country = countriesCodeList.find(c => c.id === data.CountryId);\n\n return {\n overallPosition: data.OveralPosition ? data.OveralPosition : 9999,\n status: {\n id: data.SupplierStatusId,\n name: supplierInvitationStatusCodeList.find(x => x.id === data.SupplierStatusId)!.name\n },\n isPublic: data.IsPublic,\n rejectedReason: data.RejectedReason || 'You are a scammer! (Reason from frontend)',\n user: {\n country: country ? country.name : '',\n email: data.Useremail,\n rating: data.Rating,\n userName: data.Username,\n coveredUsername: transformToStarUsername(data.Username),\n firstName: data.FirstName,\n lastName: data.LastName,\n accountType: '',\n address: initialDeliveryAddressState,\n company: { ...initialCompanyState, id: data.CompanyId, name: data.CompanyName, vatId: data.VatId },\n defaultCurrency: '',\n facebookProfile: '',\n favouriteAuctionKeywords: '',\n linkedinProfile: '',\n phoneNumber: '',\n isSearcheable: true,\n isEmailConfirmed: true,\n wantToBuy: true,\n wantToSell: true\n },\n offerDescription: data.OfferDescription || '',\n attachments: { isUploading: false, list: attachments },\n criteriaBids: criteriaBids,\n itemsBids: itemsBids,\n mustHaveConditionResponses: data.MhcResponses\n ? data.MhcResponses.map(d => ({\n mhcId: d.MustHaveConditionId,\n response: d.NewResponse\n }))\n : [],\n lastActivityDate: moment(data.LastActive).toISOString(true),\n canReinvite: data.SupplierStatusId === SuppliersTenderStatus.INVITATION_SENT\n };\n};\n","export enum ConnectionActionTypes {\n START = '[CONNECTION] START',\n STOP = '[CONNECTION] STOP',\n INVOKE = '[CONNECTION] INVOKE',\n STATE_CHANGED = '[CONNECTION] STAGE_CHANGED'\n}\n\ninterface IStart {\n type: ConnectionActionTypes.START;\n payload: { token: string };\n}\n\ninterface IStop {\n type: ConnectionActionTypes.STOP;\n}\n\ninterface IInvoke {\n type: ConnectionActionTypes.INVOKE;\n payload: { hub: any; method: any; args: any };\n}\n\nfunction start(token: string): IStart {\n return { type: ConnectionActionTypes.START, payload: { token } };\n}\n\nfunction stop(): IStop {\n return { type: ConnectionActionTypes.STOP };\n}\n\nfunction invoke(hub, method, args): IInvoke {\n return { type: ConnectionActionTypes.INVOKE, payload: { hub, method, args } };\n}\n\nexport type ConnectionAction = IStart | IStop | IInvoke;\n\nexport const signalrConnection = {\n start,\n stop,\n invoke\n};\n","import axios from 'axios';\n\nimport API_URL from '_constants/apiConstants';\nimport { LocalizationText, Order } from '_types/commonTypes';\nimport { b64EncodeUnicode } from '_libs/utils';\n\nconst ADMIN_URL = '/api/admin';\nconst URL = API_URL + ADMIN_URL;\n\nconst checkLocalizationIntegrity = () => {\n return axios.get(URL + '/CheckLocalizationsIntegrity');\n};\n\nconst fetchUsers = (pageNo: number, recordsPerPage: number, sort: Order) => {\n return axios.get(URL + '/GetUserList', {\n params: { pageNo, recordsPerPage, orderBy: sort.columnId, order: sort.direction }\n });\n};\n\nconst fetchProfiles = (pageNo: number, recordsPerPage: number) => {\n return axios.get(URL + '/GetUserProfiles', { params: { pageNo, recordsPerPage } });\n};\n\nconst fetchLocalizationTexts = () => {\n return axios.get(URL + '/GetLocalizationTexts');\n};\n\nconst fetchOnlyFeLocalizationTexts = () => {\n return axios.get(URL + '/GetFeLocalizationTexts');\n};\n\nconst addLocalizationText = (text: LocalizationText) => {\n const encodedText: LocalizationText = {\n ...text,\n value: b64EncodeUnicode(text.value),\n correction: b64EncodeUnicode(text.correction)\n };\n\n return axios.post(URL + '/AddLocalizationText', { ...encodedText, newCorrection: false });\n};\n\nconst editLocalizationText = (text: LocalizationText) => {\n const encodedText: LocalizationText = {\n ...text,\n value: b64EncodeUnicode(text.value),\n correction: b64EncodeUnicode(text.correction)\n };\n\n return axios.post(URL + '/EditLocalizationText', { ...encodedText, newCorrection: false });\n};\n\nconst removeLocalizationText = (key: string) => {\n return axios.delete(URL + '/DeleteLocalizationText', { params: { key } });\n};\n\nconst giveTrial = (username, days = 30) => {\n return axios.post(URL + '/GiveTrialToUser', {}, { params: { username, days } });\n};\n\nconst logErr = (message: string, toEmail: boolean = false) => {\n return axios.post(URL + '/SaveClientErrorLog', { Error: message, ToEmail: toEmail });\n};\n\nconst deleteUser = (username: string) => {\n return axios.delete(URL + '/DeleteUserFromSystem', { params: { user: username } });\n};\n\nexport default {\n fetchUsers,\n fetchProfiles,\n fetchLocalizationTexts,\n addLocalizationText,\n editLocalizationText,\n removeLocalizationText,\n fetchOnlyFeLocalizationTexts,\n logErr,\n giveTrial,\n checkLocalizationIntegrity,\n deleteUser\n};\n","import React from 'react';\nimport cs from 'classnames';\n\nimport { IconPosition } from '_types/commonTypes';\n\nexport type MaterialIconProps = {\n iconName: string;\n iconPosition?: IconPosition;\n iconClassName?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n innerRef?: ((instance: HTMLElement) => void) | React.RefObject | null;\n onClick?: (e: React.MouseEvent) => void;\n};\n\nconst MaterialIcon: React.FC = ({\n iconName,\n iconPosition = IconPosition.NONE,\n iconClassName,\n disabled,\n innerRef,\n ...restProps\n}) => {\n return (\n \n {iconName}\n \n );\n};\n\nexport default MaterialIcon;\n","import TokenStorageManager from './tokenStorageManager';\nimport { Persistance } from '_types/commonTypes';\n\nclass TokenStorageManagerFactory {\n create = (persistance: Persistance): TokenStorageManager => {\n let storage;\n\n if (persistance === Persistance.LOCAL) {\n storage = localStorage;\n } else {\n storage = sessionStorage;\n }\n\n return new TokenStorageManager(storage);\n };\n}\n\nexport default TokenStorageManagerFactory;\n","import { LocalizationText, IAction } from '_types/commonTypes';\nimport { ThunkAction } from 'redux-thunk';\nimport adminApi from '_api/adminApi';\nimport { mapLocalizationTextAdmin } from '../../_mappers/adminMapper';\n\nexport enum IActionTypes {\n LOAD_TEXTS = '[ADMIN] LOAD TEXTS',\n CHANGE_TEXT = '[ADMIN] CHANGE_TEXT',\n EDIT_TEXT = '[ADMIN] EDIT_TEXT',\n ADD_TEXT = '[ADMIN] ADD_TEXT',\n REMOVE_TEXT = '[ADMIN] REMOVE_TEXT'\n}\n\ninterface ILoadTextsSuccessAction extends IAction {}\n\ninterface IChangeTextAction extends IAction {}\n\ninterface IEditTextSuccessAction extends IAction {}\n\ninterface IAddTextSuccessAction extends IAction {}\n\ninterface IRemoveTextSuccessAction extends IAction {}\n\nfunction loadTexts(): ThunkAction, any, null, any> {\n return dispatch => {\n return adminApi.fetchLocalizationTexts().then(res => {\n const mappedText = res.data.map(data => mapLocalizationTextAdmin(data));\n dispatch(loadTextsSuccess(mappedText));\n });\n };\n\n function loadTextsSuccess(texts: LocalizationText[]): ILoadTextsSuccessAction {\n return { type: IActionTypes.LOAD_TEXTS, payload: { texts } };\n }\n}\n\nfunction removeText(key: string): ThunkAction, any, null, any> {\n return dispatch => {\n return adminApi.removeLocalizationText(key).then(res => {\n dispatch(removeTextSuccessAction(key));\n });\n };\n\n function removeTextSuccessAction(key: string): IRemoveTextSuccessAction {\n return { type: IActionTypes.REMOVE_TEXT, payload: { key } };\n }\n}\n\nfunction changeText(index: number, text: LocalizationText): IChangeTextAction {\n return { type: IActionTypes.CHANGE_TEXT, payload: { index, text } };\n}\n\nfunction editText(text: LocalizationText): ThunkAction, any, null, any> {\n return dispatch => {\n return adminApi.editLocalizationText(text).then(() => {\n dispatch(editTextSuccessAction(text));\n });\n };\n\n function editTextSuccessAction(text: LocalizationText): IEditTextSuccessAction {\n return { type: IActionTypes.EDIT_TEXT, payload: { text } };\n }\n}\n\nfunction addText(text: LocalizationText): ThunkAction, any, null, any> {\n return dispatch => {\n return adminApi.addLocalizationText(text).then(() => {\n dispatch(addTextSuccessAction(text));\n });\n };\n\n function addTextSuccessAction(text: LocalizationText): IAddTextSuccessAction {\n return { type: IActionTypes.ADD_TEXT, payload: { text } };\n }\n}\n\nexport type LocalizationAction =\n | ILoadTextsSuccessAction\n | IChangeTextAction\n | IAddTextSuccessAction\n | IEditTextSuccessAction\n | IRemoveTextSuccessAction;\n\nexport default {\n loadTexts,\n changeText,\n addText,\n editText,\n removeText\n};\n","import { LocalizationText } from '_types/commonTypes';\n\nexport const mapLocalizationTextAdmin = (data): LocalizationText => ({\n key: data.Key,\n value: data.Value,\n correction: data.Correction !== null ? data.Correction : '',\n isFeText: data.IsFeText !== null ? data.IsFeText : false,\n textCorrected: data.TextCorrected !== null ? data.TextCorrected : false\n});\n","import { ItemDetails } from '_types/commonTypes';\n\nconst calculateExpectedPrice = (price: number, quantity: number) => {\n return price * quantity;\n};\n\nconst calculateBidStep = (price: number) => {\n return price !== 0 ? Number((price * 0.01).toFixed(2)) : 0;\n};\n\nconst recalculateCriteriaPriceWeight = (\n currPriceWeight: number,\n currWeight: number,\n prevWeight: number\n): number => {\n let result: number;\n if (currWeight > prevWeight) {\n result = Math.round((currPriceWeight - (currWeight - prevWeight)) * 100) / 100;\n } else {\n result = Math.round((currPriceWeight + (prevWeight - currWeight)) * 100) / 100;\n }\n\n return result;\n};\n\nconst calculateTotalExpPrice = (itemsDetails: Array) => {\n return itemsDetails.reduce((a, b) => {\n return a + b.expPrice;\n }, 0);\n};\n\nexport const calculateSum = values => {\n return values.reduce((a, b) => a + b, 0);\n};\n\nexport const itemsDetailsCalculator = {\n calculateExpectedPrice,\n calculateBidStep,\n calculateTotalExpPrice\n};\n\nexport const criteriaDetailsCalculator = {\n recalculateCriteriaPriceWeight\n};\n","import axios from 'axios';\n\nimport API_URL from '_constants/apiConstants';\nimport { Order } from '_types/commonTypes';\n\nconst URL = API_URL + '/api/company';\n\nexport const getContacts = (page: number, recordsPerPage: number, sort: Order, filter: string) => {\n return axios.get(URL + '/GetContacts', {\n params: { orderByColumn: sort.columnId, asc: sort.direction, pageNo: page, recordsPerPage, filter }\n });\n};\n\nexport const removeContact = (username: string) => {\n return axios.delete(URL + '/RemoveFromContactList', { params: { userName: username } });\n};\n\nexport const addContact = (\n userName: string,\n customName: string,\n companyName: string,\n companyWeb: string,\n countryId: number,\n keywords: string,\n industries: string[],\n fromExternal: boolean,\n description: string\n) => {\n return axios.post(\n URL + '/AddToContactList',\n { industries },\n {\n params: {\n userName,\n customName,\n companyName,\n companyWeb,\n countryId,\n keywords,\n fromExternal,\n personalDescription: description\n }\n }\n );\n};\n\nexport const editContact = (\n userName: string,\n customName: string,\n companyName: string,\n companyWeb: string,\n countryId: number,\n keywords: string,\n description: string\n) => {\n return axios.put(\n URL + '/EditCompanyName',\n {},\n {\n params: {\n userName,\n customName,\n companyName,\n companyWeb,\n countryId,\n keywords,\n personalDescription: description\n }\n }\n );\n};\n\nexport const isInContactList = (companyId: string) => {\n return axios.get(URL + '/IsInContactList', {\n params: { companyId }\n });\n};\n\nexport const isInContactListByUsername = (username: string) => {\n return axios.get(URL + '/IsInContactListByUsername', {\n params: { username }\n });\n};\n\nconst contactsApi = {\n getContacts,\n removeContact,\n addContact,\n editContact,\n isInContactList,\n isInContactListByUsername\n};\n\nexport default contactsApi;\n","import { TenderLightWeight } from '_types/tenderTypes';\nimport { MyTendersAction, IMyTendersActionTypes } from '_actions/myTendersAction';\nimport { Order, SortDirection, SuppliersTenderStatus } from '_types/commonTypes';\nimport { myAuctionsTableColumns } from 'myAuctions/components/tables/MyAuctionsTable';\n\nexport interface IState {\n isLoaded: boolean;\n isSorting: boolean;\n sort: Order;\n isFiltering: boolean;\n filter: string;\n search: string;\n totalCount: number;\n tenders: TenderLightWeight[];\n}\n\nexport const initialState: IState = {\n isLoaded: false,\n isSorting: false,\n sort: { direction: SortDirection.DESC, columnId: 'default' },\n isFiltering: false,\n filter: 'all;allActiveInactive',\n search: '',\n totalCount: 0,\n tenders: []\n};\n\nexport function reducer(state: IState = initialState, action: MyTendersAction): IState {\n switch (action.type) {\n case IMyTendersActionTypes.SAVE_NEW_TENDER_LW_SUCCESS:\n return {\n ...state,\n tenders: [action.payload.tenderLW, ...state.tenders]\n };\n case IMyTendersActionTypes.UPDATE_TENDER_LW_SUPPLIERS_STATUS_SUCCESS:\n case IMyTendersActionTypes.UPDATE_TENDER_LW_STATUS_SUCCESS:\n case IMyTendersActionTypes.UPDATE_TENDER_LW_SUCCESS: {\n const tenders = state.tenders.slice();\n tenders[action.payload.index] = action.payload.tenderLW;\n\n return {\n ...state,\n tenders: tenders\n };\n }\n case IMyTendersActionTypes.LOAD_MY_TENDERS_SUCCESS:\n return {\n ...state,\n tenders: action.payload.tendersLW,\n totalCount: action.payload.totalCount,\n isLoaded: true\n };\n case IMyTendersActionTypes.REMOVE_TENDER_SUCCESS: {\n return {\n ...state,\n tenders: [...state.tenders.filter(t => t.id !== action.payload.tenderId)]\n };\n }\n case IMyTendersActionTypes.TOGGLE_FAVORITE_TENDER: {\n let tenders = state.tenders.slice();\n const index = tenders.findIndex(t => t.id === action.payload.tenderId);\n\n if (index > -1) {\n if (\n // We need to remove when unfavoriting tender where supp is not participating just got it added as favorite\n tenders[index].supplierStatus === SuppliersTenderStatus.FAVORITE &&\n tenders[index].isFavorite\n ) {\n tenders = tenders.filter((_, i) => i !== index);\n } else {\n tenders[index] = { ...tenders[index], isFavorite: !tenders[index].isFavorite };\n }\n }\n\n return {\n ...state,\n tenders\n };\n }\n case IMyTendersActionTypes.SORT_REQUEST_START: {\n return {\n ...state,\n isSorting: true,\n sort: action.payload.sort\n };\n }\n case IMyTendersActionTypes.SORT_REQUEST_END: {\n return {\n ...state,\n isSorting: false\n };\n }\n case IMyTendersActionTypes.SET_FILTER: {\n return {\n ...state,\n filter: action.payload.filter\n };\n }\n case IMyTendersActionTypes.SET_SEARCH: {\n return {\n ...state,\n search: action.payload.search\n };\n }\n case IMyTendersActionTypes.FILTER_REQUEST_START: {\n return {\n ...state,\n isFiltering: true,\n filter: action.payload.filter\n };\n }\n case IMyTendersActionTypes.FILTER_REQUEST_END: {\n return {\n ...state,\n isFiltering: false\n };\n }\n case IMyTendersActionTypes.CLEAR:\n return initialState;\n default:\n return state;\n }\n}\n","import { ThunkAction } from 'redux-thunk';\n\nimport { IAction, NewsletterStatus } from '_types/commonTypes';\nimport { settingsApi } from '_api/settingsApi';\n\nexport enum IActionTypes {\n LOAD_STATUS_SUCCESS = '[NEWSLETTER_LOAD_STATUS] SUCCESS',\n SUBSCRIBE_SUCCESS = '[NEWSLETTER_SUBSCRIBE] SUCCESS',\n UNSUBSCRIBE_SUCCESS = '[NEWSLETTER_UNSUBSCRIBE] SUCCESS',\n TOGGLE_SUBSCRIBING = '[NEWSLETTER] TOGGLE_SUBSCRIBING'\n}\n\ninterface ILoadStatusSuccess extends IAction {}\ninterface ISubscribeSuccess extends IAction {}\ninterface IUnsubscribeSuccess extends IAction {}\ninterface IToggleSubscribing extends IAction {}\n\nfunction loadNewsletterStatus(): ThunkAction, any, null, any> {\n return dispatch => {\n return settingsApi.fetchNewsletterStatus().then(res => {\n dispatch(loadStatusSuccess(res.data));\n });\n };\n\n function loadStatusSuccess(status: NewsletterStatus): ILoadStatusSuccess {\n return { type: IActionTypes.LOAD_STATUS_SUCCESS, payload: { status } };\n }\n}\n\nfunction subscribeForNewsletter(): ThunkAction, any, null, any> {\n return dispatch => {\n dispatch(toggleSubscribing());\n return settingsApi\n .subscribeForNewsletter()\n .then(res => {\n dispatch(subscribeForNewsletterSuccess(res.data));\n return res.data;\n })\n .finally(() => {\n dispatch(toggleSubscribing());\n });\n };\n\n function subscribeForNewsletterSuccess(status: NewsletterStatus): ISubscribeSuccess {\n return { type: IActionTypes.SUBSCRIBE_SUCCESS, payload: { status } };\n }\n}\n\nfunction unsubscribeForNewsletter(): ThunkAction, any, null, any> {\n return dispatch => {\n dispatch(toggleSubscribing());\n return settingsApi\n .unsubscribeForNewsletter()\n .then(res => {\n dispatch(unsubscribeForNewsletterSuccess(res.data));\n })\n .finally(() => {\n dispatch(toggleSubscribing());\n });\n };\n\n function unsubscribeForNewsletterSuccess(status: NewsletterStatus): IUnsubscribeSuccess {\n return { type: IActionTypes.UNSUBSCRIBE_SUCCESS, payload: { status } };\n }\n}\n\nfunction toggleSubscribing(): IToggleSubscribing {\n return { type: IActionTypes.TOGGLE_SUBSCRIBING, payload: {} };\n}\n\nexport type NewsletterAction = ILoadStatusSuccess | ISubscribeSuccess | IUnsubscribeSuccess | IToggleSubscribing;\n\nexport default {\n loadNewsletterStatus,\n subscribeForNewsletter,\n unsubscribeForNewsletter\n};\n","export const LOGIN_FORM = 'loginForm';\nexport const REGISTER_FORM = 'registerForm';\nexport const COLLABORATOR_FORM = 'collaboratorForm';\nexport const BASIC_DATA_FORM = 'basicDataForm';\nexport const INVITE_SUPPLIER_BY_EMAIL_FORM = 'inviteByEmailForm';\nexport const ADD_CONTACT_BY_EMAIL_FORM = 'addContactByEmailForm';\nexport const INVITE_NEW_USER_FORM = 'inviteNewUserForm';\nexport const EDIT_DELIVERY_ADDRESS_FORM = 'editDeliveryAddressForm';\nexport const CHANGE_PASSWORD_FORM = 'changePasswordForm';\nexport const FORGOT_PASSWORD_REQUEST_FORM = 'forgotPasswordRequestForm';\nexport const FORGOT_NEW_PASSWORD_FORM = 'forgotPasswordForm';\nexport const TWITTER_REGISTRATION_FORM = 'twitterRegistrationForm';\nexport const REPORT_ISSUE_FORM = 'reportIssueForm';\n","/**\n * Regex allows only numbers\n */\nexport const onlyNumbersRegex: RegExp = new RegExp(/[^0-9\\.?]/g);\n\n/**\n * Regex allows only numbers and white space\n */\nexport const onlyNumbersRegexWithTowDecimalPrecision: RegExp = new RegExp(/^$|^(\\d+\\.?\\d{0,2}$)/);\n\n/**\n * Regex for hh:mm format\n */\nexport const timeFormat24hRegex: RegExp = new RegExp(/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/);\n\n/**\n * Regex for hh:mm mask input\n */\nexport const time24hMaskRegex: RegExp = new RegExp(/^(0[0-9]|1[0-9]|2[0-3]|0h|1h|2h|hh):([0-5][0-9]|[0-5]m|mm)$/);\n\nexport const dateRegex: RegExp = new RegExp(\n /^[0-9]{4}-(0[1-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|3[0-1]) (0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/\n);\n\n/**\n * Password regex for one small letter, capital letter and number\n */\nexport const passwordRegex: RegExp =\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d'{}[\\]|\\\\;':\",./`<>?^!@#$%&*()_+=~-]{0,}$/;\n\nexport const webUrlRegex: RegExp =\n /((http|https)\\:\\/\\/)?[a-zA-Z0-9À-ž\\.\\/\\?\\:@\\-_=#]+\\.([a-zA-Z0-9À-ž\\&\\.\\/\\?\\:@\\-_=#])*$/;\n\nexport const englishLetterRegex = /^$|^[a-zA-Z0-9$@$!%*?&#$()\\[\\]\\/\\\\\\\\{§}=\\-'\"<;:>,^-_. +]+$/;\n\nexport const emailRegex = /^([a-zA-Z0-9_.+-])+\\@(([a-zA-Z0-9-])+\\.)+([a-zA-Z0-9]{2,4})+$/;\n","import { ThunkAction } from 'redux-thunk';\n\nimport { IApplicationState } from 'core/reducer';\nimport { fetchTendersBE } from '_api/tenderApi';\nimport { Tender } from '_types/tenderTypes';\nimport { mapTender } from '_mappers/tenderMapper';\nimport { IAction } from '_types/commonTypes';\nimport { IActionTypes } from './alertActions';\nimport { toggleFavoriteTender } from './tenderActions';\nimport { addTenderToFavoritesBE } from '_api/tenderSupplierApi';\n\nexport enum ITendersActionTypes {\n ADD_TENDERS = '[ADD_TENDERS] SUCCESS',\n TOGGLE_FAVORITE = '[TENDERS] TOGGLE_FAVORITE',\n CLEAR_TENDERS = '[TENDERS] CLEAR'\n}\n\ninterface IAddTendersSuccessAction {\n type: ITendersActionTypes.ADD_TENDERS;\n payload: { tenders: Tender[] };\n}\n\ninterface IClearTendersActions extends IAction {}\n\ninterface IToggleTenderFavoritesAction\n extends IAction {}\n\n/**\n * Add only those tenders, which are not present in store\n * @param ids - tender ids\n * @param pageNumber - pagination prop\n * @param recordsPerPage - pagination prop\n */\nfunction getTenders(\n ids: number[],\n pageNumber?: number,\n recordsPerPage?: number\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n // TODO Kvoli bugu kde mozu byt v cashi duplicitne data, po odstraneni toho bugu odstranit\n const tendersFound = getState().tenders.filter(\n (tender, index, self) =>\n self.findIndex(t => t.tenderId === tender.tenderId && ids.indexOf(tender.tenderId) > -1) === index\n );\n\n // const tendersFound = getState().tenders.filter(t => ids.indexOf(t.tenderId) > -1);\n const tendersFoundLength = tendersFound.length;\n\n if (ids.length !== tendersFoundLength) {\n let tendersToFetch = ids;\n\n if (tendersFoundLength > 0) {\n tendersToFetch = ids.filter(i => tendersFound.findIndex(x => x.tenderId === i) < 0);\n }\n\n return fetchTendersBE(tendersToFetch, pageNumber, recordsPerPage)\n .then(res => {\n const codeList = getState().codeList;\n\n const tenders = res.data.map(dto => mapTender(dto, codeList));\n\n dispatch(addUsersSuccessAction(tenders));\n\n return tenders;\n })\n .catch(err => {\n return [];\n });\n } else {\n return Promise.resolve(tendersFound);\n }\n };\n}\n\nfunction addUsersSuccessAction(tenders: Tender[]): IAddTendersSuccessAction {\n return {\n type: ITendersActionTypes.ADD_TENDERS,\n payload: { tenders }\n };\n}\n\nfunction clearTenders(): IClearTendersActions {\n return {\n type: ITendersActionTypes.CLEAR_TENDERS,\n payload: {}\n };\n}\n\nfunction toggleTenderFavorite(tenderId: number, isFavorite: boolean): ThunkAction, any, null, any> {\n return dispatch => {\n return addTenderToFavoritesBE(tenderId, isFavorite).then(() => {\n dispatch(toggleFavorite(tenderId, isFavorite));\n });\n };\n\n function toggleFavorite(tenderId: number, isFavorite: boolean): IToggleTenderFavoritesAction {\n return {\n type: ITendersActionTypes.TOGGLE_FAVORITE,\n payload: { tenderId, isFavorite }\n };\n }\n}\n\nexport type TendersAction = IAddTendersSuccessAction | IToggleTenderFavoritesAction | IClearTendersActions;\n\nexport { getTenders, toggleTenderFavorite, clearTenders };\n","import { ThunkAction } from 'redux-thunk';\n\nimport { IApplicationState } from 'core/reducer';\nimport { fetchGovTendersBE } from '_api/tenderApi';\nimport { IAction } from '_types/commonTypes';\nimport { addTenderToFavoritesBE } from '_api/tenderSupplierApi';\nimport { ExternalTenderDTO } from '_types/backendTypes';\n\nexport enum IGovTendersActionTypes {\n ADD_TENDERS = '[ADD_GOV_TENDERS] SUCCESS',\n TOGGLE_FAVORITE = '[GOV_TENDERS] TOGGLE_FAVORITE',\n CLEAR_TENDERS = '[GOV_TENDERS] CLEAR'\n}\n\ninterface IAddTendersSuccessAction {\n type: IGovTendersActionTypes.ADD_TENDERS;\n payload: { tenders: ExternalTenderDTO[] };\n}\n\ninterface IClearTendersActions extends IAction {}\n\ninterface IToggleTenderFavoritesAction\n extends IAction {}\n\n/**\n * Add only those tenders, which are not present in store\n * @param ids - tender ids\n * @param pageNumber - pagination prop\n * @param recordsPerPage - pagination prop\n */\nfunction getGovTenders(\n ids: string[],\n pageNumber?: number,\n recordsPerPage?: number\n): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n // TODO Kvoli bugu kde mozu byt v cashi duplicitne data, po odstraneni toho bugu odstranit\n const tendersFound = getState().govTenders.filter(\n (tender, index, self) => self.findIndex(t => t.id === tender.id && ids.indexOf(tender.id) > -1) === index\n );\n\n // const tendersFound = getState().tenders.filter(t => ids.indexOf(t.tenderId) > -1);\n const tendersFoundLength = tendersFound.length;\n\n if (ids.length !== tendersFoundLength) {\n let tendersToFetch = ids;\n\n if (tendersFoundLength > 0) {\n tendersToFetch = ids.filter(i => tendersFound.findIndex(x => x.id === i) < 0);\n }\n\n // TODO GOV FETCH\n return fetchGovTendersBE(tendersToFetch, pageNumber, recordsPerPage)\n .then(res => {\n dispatch(addTendersSuccessAction(res.data));\n\n return res.data;\n })\n .catch(err => {\n return [];\n });\n } else {\n return Promise.resolve(tendersFound);\n }\n };\n}\n\nfunction getGovTender(id: string): ThunkAction, any, null, any> {\n return (dispatch, getState: () => IApplicationState) => {\n return fetchGovTendersBE([id], 0, 1)\n .then(res => {\n dispatch(addTendersSuccessAction(res.data));\n\n return res.data[0];\n })\n .catch(err => {\n return [];\n });\n };\n}\n\nfunction addTendersSuccessAction(tenders: ExternalTenderDTO[]): IAddTendersSuccessAction {\n return {\n type: IGovTendersActionTypes.ADD_TENDERS,\n payload: { tenders }\n };\n}\n\nfunction clearGovTenders(): IClearTendersActions {\n return {\n type: IGovTendersActionTypes.CLEAR_TENDERS,\n payload: {}\n };\n}\n\nfunction toggleGovTenderFavorite(\n tenderId: string,\n isFavorite: boolean\n): ThunkAction, any, null, any> {\n return dispatch => {\n // TODO\n return new Promise(res => res());\n\n // return addTenderToFavoritesBE(tenderId, isFavorite).then(() => {\n // dispatch(toggleFavorite(tenderId, isFavorite));\n // });\n };\n\n function toggleFavorite(tenderId: string, isFavorite: boolean): IToggleTenderFavoritesAction {\n return {\n type: IGovTendersActionTypes.TOGGLE_FAVORITE,\n payload: { tenderId, isFavorite }\n };\n }\n}\n\nexport type GovernmentTendersAction =\n | IAddTendersSuccessAction\n | IToggleTenderFavoritesAction\n | IClearTendersActions;\n\nexport { getGovTenders, toggleGovTenderFavorite, clearGovTenders, getGovTender };\n","import axios from 'axios';\n\nimport API_URL from '_constants/apiConstants';\n\nconst SETTINGS_URL = '/api/settings';\n\nconst URL = API_URL + SETTINGS_URL;\n\n/**\n * returns servers date time\n */\nconst getServerTime = async (): Promise => {\n try {\n const res = await axios.get(`${URL}/GetServerTime`);\n return res.data;\n } catch (error) {\n throw error;\n }\n};\n\nconst fetchNewsletterStatus = () => {\n return axios.get(`${URL}/GetNewsLetterStatus`);\n};\n\nconst subscribeForNewsletter = () => {\n return axios.put(`${URL}/SubscribeForNewsLetter`);\n};\n\nconst unsubscribeForNewsletter = () => {\n return axios.put(`${URL}/UnSubscribeForNewsLetter`);\n};\n\nconst saveSurvey = (answer: string) => {\n return axios.post(`${URL}/SaveSurvey`, {}, { params: { surveyAnswer: answer } });\n};\n\nexport const settingsApi = {\n getServerTime,\n fetchNewsletterStatus,\n subscribeForNewsletter,\n unsubscribeForNewsletter,\n saveSurvey\n};\n","import { ThunkAction } from 'redux-thunk';\nimport { Dispatch } from 'redux';\nimport { IApplicationState } from 'core/reducer';\nimport { GuideNavigationTarget } from '_types/commonTypes';\n\nexport enum IActionTypes {\n SET_GUIDE = 'SET_GUIDE',\n OPEN_GUIDE = 'OPEN_GUIDE',\n CLOSE_GUIDE = 'CLOSE_GUIDE'\n}\n\nexport interface IOpenGuideSuccess {\n type: IActionTypes.OPEN_GUIDE;\n}\n\nexport interface ICloseGuideSuccess {\n type: IActionTypes.CLOSE_GUIDE;\n}\n\nexport interface ISetGuideAction {\n type: IActionTypes.SET_GUIDE;\n payload: { heading: string; message: string; target: GuideNavigationTarget; config?: ConfigGuide };\n}\n\nexport interface ConfigGuide {\n disableDargenBg?: boolean;\n}\n\nfunction openGuide(\n heading: string,\n message: string,\n target: GuideNavigationTarget,\n config?: ConfigGuide\n): ThunkAction {\n return (dispatch: Dispatch, getState: () => IApplicationState) => {\n {\n try {\n const guide = getState().guide;\n if (message !== guide.message || heading !== guide.heading || target !== guide.target) {\n dispatch(setGuide(heading, message, target, config));\n }\n $('.tap-target').tapTarget('open');\n dispatch(openGuideSuccess());\n } catch (err) {\n console.log(err);\n }\n }\n };\n\n function openGuideSuccess(): IOpenGuideSuccess {\n return { type: IActionTypes.OPEN_GUIDE };\n }\n}\n\nfunction closeGuide(): ICloseGuideSuccess {\n return { type: IActionTypes.CLOSE_GUIDE };\n}\n\nfunction setGuide(heading: string, message: string, target: GuideNavigationTarget, config?: ConfigGuide) {\n return { type: IActionTypes.SET_GUIDE, payload: { heading, message, target, config } };\n}\n\nexport { openGuide, closeGuide, setGuide };\n\nexport type Action = ISetGuideAction | IOpenGuideSuccess | ICloseGuideSuccess;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport styles from './Maintenance.module.scss';\nimport maintImg from '_assets/images/maintenance.png';\n\nconst Maintenance: React.FC = () => {\n return (\n
\n
\n \n

Server is under maintenance

\n
Please be patient
\n
\n
\n );\n};\n\nexport default Maintenance;\n","import React from 'react';\nimport { withRouter } from 'react-router';\n\ninterface IOwnProps {\n location: Location;\n}\n\ntype Props = IOwnProps;\n\nclass ScrollToTop extends React.Component {\n componentDidUpdate(prevProps) {\n if (this.props.location !== prevProps.location) {\n window.scrollTo({ top: 0 });\n }\n }\n\n render() {\n return this.props.children;\n }\n}\n\nexport default withRouter(ScrollToTop);\n","import axios from 'axios';\nimport { Dispatch } from 'redux';\n\nimport history from './history';\nimport { routes } from '_constants/routesConstants';\nimport { IActionTypes } from '_actions/userActions';\nimport { userApi } from '_api/userApi';\nimport { getTokenPersistance } from './tokenStorageManager/tokenStorageManager';\nimport TokenStorageManagerFactory from './tokenStorageManager/tokenStorageManagerFactory';\nimport setDefaultAuthorizationHeader from './setDefaultAuthorizationHeader';\n\n/**\n * Backend returns 200 even if sometinhg went wrong and to data\n * puts Data with null and Error filled, this method handles that\n * @param res - repsonse from api call\n * MyLastOpenTender returns null without data if no tender was found\n */\nconst handleResponse = (res): Promise => {\n if (res.data === false || (res.data && res.data.Data === null)) {\n return Promise.reject(res.data && res.data.Error);\n } else {\n return res;\n }\n};\n\nconst setupInterceptors = (dispatch: Dispatch) => {\n axios.interceptors.response.use(\n response => {\n if (\n response.config.url!.match('account') ||\n response.config.url!.match('IsInContactList') ||\n response.config.url!.match('IsInContactListByUsername')\n ) {\n return response;\n }\n return handleResponse(response);\n },\n async function (error) {\n const originalRequest = error.config;\n\n if (error.response && (error.response.status === 401 || error.response.status === 403)) {\n const storage = new TokenStorageManagerFactory().create(getTokenPersistance());\n const refreshToken = storage.getRefreshToken();\n\n // Token refresh\n if (!originalRequest._retry && refreshToken) {\n try {\n originalRequest._retry = true;\n setDefaultAuthorizationHeader('');\n const { access_token, refresh_token } = await userApi.refreshToken(refreshToken);\n storage.setJwtToken(access_token);\n storage.setRefreshToken(refresh_token);\n\n setDefaultAuthorizationHeader(access_token);\n originalRequest.headers.Authorization = `Bearer ${access_token}`;\n\n return axios({\n ...originalRequest\n });\n } catch {\n console.log('invalid token');\n }\n }\n\n if (history.location.pathname !== routes.LOGIN) {\n dispatch({ type: IActionTypes.LOGOUT });\n history.push(routes.LOGIN, { target: history.location });\n }\n }\n\n return Promise.reject(error.response);\n }\n );\n};\n\nconst axiosSettings = { setupInterceptors };\n\nexport default axiosSettings;\n","declare global {\n interface Date {\n getTimeString(): string;\n addDays(days: number): Date;\n addHours(hours: number): Date;\n addMinutes(minutes: number): Date;\n addSeconds(seconds: number): Date;\n addMiliseconds(ms: number): Date;\n setHoursMinutes(hours:number, minutes: number): Date;\n addTimeFromAMPM(time: string): Date;\n }\n}\n\nDate.prototype.getTimeString = function (): string {\n let h = this.getHours().toString();\n let m = this.getMinutes().toString();\n if (Number(h) < 10) h = '0' + h;\n if (Number(m) < 10) m = '0' + m;\n return `${h}:${m}`;\n}\n\nDate.prototype.addDays = function (days: number): Date {\n this.setDate(this.getDate() + days);\n return this;\n}\n\nDate.prototype.addHours = function (hours: number): Date {\n this.setHours(this.getHours() + hours);\n return this;\n}\n\nDate.prototype.addMinutes = function (minutes: number): Date {\n this.setMinutes(this.getMinutes() + minutes);\n return this;\n}\n\nDate.prototype.setHoursMinutes = function (hours: number, minutes: number): Date {\n this.setHours(hours);\n this.setMinutes(minutes);\n return this;\n}\n\nDate.prototype.addSeconds = function (seconds: number): Date {\n this.setSeconds(this.getSeconds() + seconds);\n return this;\n}\n\nDate.prototype.addMiliseconds = function (ms: number): Date {\n this.setMilliseconds(this.getMilliseconds() + ms);\n return this;\n}\n\nDate.prototype.addTimeFromAMPM = function (time: string): Date {\n const ampm = time.slice(time.length - 2,time.length);\n const timeArr: string[] = time.slice(0,5).split(':');\n if(ampm === 'PM'){\n this.setHours(Number(timeArr[0]) + 12);\n }else{\n this.setHours(Number(timeArr[0]));\n } \n this.setMinutes(Number(timeArr[1]));\n\n return this;\n}\n\n\nexport { };\n","import { useEffect } from 'react';\n\nconst LuckyOrange = () => {\n useEffect(() => {\n if (process.env.REACT_APP_LUCKY_ORANGE_ID) {\n (window as any).__lo_site_id = 263082;\n const wa = document.createElement('script');\n wa.type = 'text/javascript';\n wa.async = true;\n wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';\n const s = document.getElementsByTagName('script')[0];\n\n if (s && s.parentNode) {\n s.parentNode.insertBefore(wa, s);\n }\n }\n }, []);\n\n return null;\n};\n\nexport default LuckyOrange;\n","import { observe } from 'redux-observers';\nimport { tenderHasChangedObserver } from './tenderObservers';\nimport { userHasChangedObserver } from './userObservers';\n\nexport const initStoreObservers = store => {\n observe(store, [tenderHasChangedObserver, userHasChangedObserver]);\n};\n","import { observer } from 'redux-observers';\n\nimport { IApplicationState } from 'core/reducer';\nimport { submitTenderChange, updateTenderOnBackend } from '_actions/tenderActions';\n\n/**\n * whenever something changed in tender reducer */\nexport const tenderHasChangedObserver = observer(\n (state: IApplicationState) => state,\n (dispatch: any, currentState: IApplicationState, previousState: IApplicationState) => {\n const { currentTender } = currentState.tender;\n const prevTender = previousState.tender.currentTender;\n\n // We need to update backend when props are changed\n if (\n currentState.tender.shouldUpdateBackend &&\n currentTender.tenderId !== 0 &&\n prevTender.tenderId === currentTender.tenderId // make sure to not trigger update when some fields were filled before create tender. Tender name\n ) {\n dispatch(updateTenderOnBackend());\n dispatch(submitTenderChange());\n }\n }\n);\n","import { observer } from 'redux-observers';\n\nimport { IApplicationState } from 'core/reducer';\nimport { Address, User, AddressSource } from '_types/commonTypes';\nimport { initialDeliveryAddressState } from '_reducers/partialInitialStates';\nimport { upsertAddressCodelist } from '_actions/codeListActions';\n\n/**\n * Whenever something changed in tender reducer */\nexport const userHasChangedObserver = observer(\n (state: IApplicationState) => state.authentication.user,\n (dispatch: any, currentUserState: User, previousUserState: User) => {\n // if user address changed update address codelist\n if (hasAddressChanged(currentUserState.address, previousUserState.address)) {\n dispatch(upsertAddressCodelist(AddressSource.USER, currentUserState.address));\n }\n // if company address changed update company codelist\n if (\n currentUserState.company &&\n hasAddressChanged(\n currentUserState.company.address,\n previousUserState.company ? previousUserState.company.address : initialDeliveryAddressState\n )\n ) {\n dispatch(upsertAddressCodelist(AddressSource.COMPANY, currentUserState.company.address));\n }\n }\n);\n\nconst hasAddressChanged = (currAddres: Address, prevAddress: Address): boolean => {\n return (\n currAddres.city !== prevAddress.city ||\n currAddres.country.id !== prevAddress.country.id ||\n currAddres.state !== prevAddress.state ||\n currAddres.streetAddress !== prevAddress.streetAddress ||\n currAddres.streetAddress2 !== prevAddress.streetAddress2 ||\n currAddres.zipCode !== prevAddress.zipCode\n );\n};\n","let configureStore;\n\nif (process.env.NODE_ENV === 'production') {\n configureStore = require('./configureStore.prod').default;\n} else {\n configureStore = require('./configureStore.dev').default;\n}\n\nexport default configureStore;\n","import Maintenance from 'core/Maintenance';\nimport 'jquery';\nimport 'jquery-validation';\nimport 'materialize-css';\nimport React, { lazy, Suspense } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { Route, Router, Switch } from 'react-router-dom';\nimport { syncHistoryWithStore } from 'react-router-redux';\nimport { ToastContainer } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport ReactTooltip from 'react-tooltip';\nimport 'signalr';\nimport 'slick-carousel/slick/slick-theme.css';\nimport 'slick-carousel/slick/slick.css';\nimport commonActions from '_actions/commonActions';\nimport { authenticateUser } from '_actions/userActions';\nimport { userApi } from '_api/userApi';\nimport GoogleAnalytics from '_components/routing/GoogleAnalytics';\nimport ScrollToTop from '_components/routing/ScrollToTop';\nimport { routes } from '_constants/routesConstants';\nimport axiosSettings from '_libs/axiosSettings';\nimport LocalizationProvider from '_libs/contexts/LocalizationContext';\nimport MediaProvider from '_libs/contexts/MediaContext';\nimport '_libs/dateExtensionMethods';\nimport history from '_libs/history';\nimport LuckyOrange from '_libs/LuckyOrange';\nimport setDefaultAuthorizationHeader from '_libs/setDefaultAuthorizationHeader';\nimport { getTokenPersistance } from '_libs/tokenStorageManager/tokenStorageManager';\nimport TokenStorageManagerFactory from '_libs/tokenStorageManager/tokenStorageManagerFactory';\nimport { initStoreObservers } from '_observers/initObservers';\nimport configureStore from '_store/configureStore';\nimport '_styles/main.scss';\nimport { Persistance } from '_types/commonTypes';\nimport { validator } from '_validation/validator';\n\nconst App = lazy(() => import(/* webpackChunkName: \"App\" */ 'core/App'));\nconst AdminApp = lazy(() => import(/* webpackChunkName: \"AdminApp\" */ 'admin/AppProxy'));\n\nexport const store = configureStore();\nsyncHistoryWithStore(history, store);\ninitStoreObservers(store);\n\nvalidator.init();\naxiosSettings.setupInterceptors(store.dispatch);\n\n// Token persistance represents place where jwt token is stored, can be either local, session or none. If there is no jwt token stored we do not need to authenticate\n// App needs to be first time rendered after authentication because Private route would redirect user to login before authentication is done\nconst tokenPersistance = getTokenPersistance();\n\nstore\n .dispatch(commonActions.loadLocalization())\n .then(async () => {\n if (tokenPersistance !== Persistance.NONE && history.location.pathname !== routes.ACTIVATION) {\n const tokenStorageManager = new TokenStorageManagerFactory().create(tokenPersistance);\n const refreshToken = tokenStorageManager.getRefreshToken();\n\n if (refreshToken) {\n try {\n const data = await userApi.refreshToken(refreshToken);\n const { refresh_token, access_token } = data;\n tokenStorageManager.setRefreshToken(refresh_token);\n tokenStorageManager.setJwtToken(access_token);\n\n setDefaultAuthorizationHeader(access_token);\n store.dispatch(authenticateUser(access_token)).then((authenticated: boolean) => {\n if (!authenticated) {\n // token is invalid, clear token from cache\n tokenStorageManager.removeTokens();\n }\n\n renderApp();\n });\n } catch (err) {\n tokenStorageManager.removeTokens();\n renderApp();\n }\n } else {\n renderApp();\n }\n } else {\n renderApp();\n }\n })\n .catch(() => {\n renderMaintenance();\n });\n\nfunction renderApp() {\n ReactDOM.render(\n \n \n \n \n \n \n }>\n \n \n \n \"Image\"}\n />\n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('app')\n );\n}\n\nexport function renderMaintenance() {\n ReactDOM.render(, document.getElementById('app'));\n}\n","import { NotificationDTO } from '_types/backendTypes';\nimport { Notification } from '_types/commonTypes';\n\nexport const mapToNotifications = (dtoArr: NotificationDTO[]): Notification[] => {\n const result: Notification[] = [];\n if (typeof dtoArr !== 'undefined') {\n dtoArr.forEach(dto => {\n result.push({\n id: dto.Id,\n title: dto.Title,\n text: dto.Text,\n date: new Date(dto.Date + 'Z'),\n read: dto.Read\n });\n });\n }\n return result;\n};\n\nexport const mapToNotification = (dto: NotificationDTO): Notification => {\n return {\n id: dto.Id,\n title: dto.Title,\n text: dto.Text,\n date: new Date(dto.Date),\n read: dto.Read\n };\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"flexWrapper\":\"Maintenance_flexWrapper__2fVNx\",\"container\":\"Maintenance_container__QND0m\",\"image\":\"Maintenance_image__1HWiT\"};","export class String {\n // String.format(\"{0} comes before {1}\", \"a\", \"b\")\n static format(stringToFormat, ...tokens) {\n return stringToFormat.replace(/{(\\d+)}/g, function (match, number) {\n return typeof tokens[number] !== 'undefined' ? tokens[number] : match;\n });\n }\n}\n","import React from 'react';\nimport cx from 'classnames';\nimport { TooltipProps } from '_types/commonTypes';\n\ntype Props = {\n tooltip?: string; // Legacy\n icon: string;\n onClick?: (e: React.MouseEvent) => void;\n className?: string;\n iconClassName?: string;\n dataTarget?: string;\n style?: React.CSSProperties;\n iconStyle?: React.CSSProperties;\n disabled?: boolean;\n last?: boolean;\n href?: string;\n rel?: string;\n target?: string;\n} & TooltipProps;\n\nconst Action: React.FC = ({\n tooltip,\n icon,\n onClick,\n className,\n iconClassName,\n dataTarget,\n style,\n iconStyle,\n disabled,\n last = false,\n dataTip,\n dataFor,\n href,\n rel,\n target,\n ...restProps\n}) => {\n return (\n \n {tooltip ? (\n \n \n {icon}\n \n \n ) : (\n \n {icon}\n \n )}\n \n );\n};\n\nexport default Action;\n","/**\n * We're using data-collapsed attribute to determine if element is collapsed or not\n * @param element\n */\n\nexport const expandSection = element => {\n // get the height of the element's inner content, regardless of its actual size\n const sectionHeight = element.scrollHeight;\n\n // have the element transition to the height of its inner content\n element.style.height = sectionHeight + 'px';\n\n // mark the section as \"currently not collapsed\" after the transition is done\n setTimeout(() => {\n element.setAttribute('data-collapsed', 'false');\n }, 800);\n};\n\nexport const collapseSection = element => {\n // get the height of the element's inner content, regardless of its actual size\n const sectionHeight = element.scrollHeight;\n\n // temporarily disable all css transitions\n const elementTransition = element.style.transition;\n element.style.transition = '';\n\n // on the next frame (as soon as the previous style change has taken effect),\n // explicitly set the element's height to its current pixel height, so we\n // aren't transitioning out of 'auto'\n requestAnimationFrame(function () {\n element.style.height = sectionHeight + 'px';\n element.style.transition = elementTransition;\n\n // on the next frame (as soon as the previous style change has taken effect),\n // have the element transition to height: 0\n requestAnimationFrame(function () {\n element.style.height = 0 + 'px';\n });\n });\n\n // mark the section as \"currently collapsed\"\n element.setAttribute('data-collapsed', 'true');\n};\n\nconst collapsible = { expandSection, collapseSection };\nexport default collapsible;\n","import { Dispatch } from 'redux';\n\nimport {\n loadCurrenciesCodeList,\n loadUnitsOfMeasurementCodeList,\n loadUnitsOfTenderCriterionCodeList,\n loadIndustriesCodeList,\n loadAddressesCodeList,\n loadCountriesCodeList,\n loadSuppiersInvitationStatusCodeList,\n tenderCodelistsLoaded,\n resetAddressesCodeList,\n loadTenderStatusesCodeList,\n loadCanadaProvinces,\n loadUSAStates\n} from '_actions/codeListActions';\nimport { loadMyTenders } from '_actions/myTendersAction';\nimport { signalrConnection } from '_actions/connectionActions';\nimport history from './history';\nimport { routes } from '_constants/routesConstants';\nimport { loadNotifications } from '_actions/notificationActions';\nimport { NOTIFICATIONS_PER_PAGE } from '_components/notifications/Notifications';\nimport { loadUserDetails } from '_actions/userActions';\nimport { SortDirection } from '_types/commonTypes';\n\nasync function dispatchAllStartupActions(dispatch: Dispatch, token: string) {\n dispatch(loadNotifications(1, NOTIFICATIONS_PER_PAGE));\n await loadCodeLists(dispatch);\n\n if (history.location.pathname !== routes.MY_AUCTIONS) {\n // pre fetch my tenders so they're available for last unfinished tender & invite to tender modal\n dispatch(loadMyTenders(1, 30, 'owner;allActiveInactive', { columnId: '', direction: SortDirection.DESC }, ''));\n }\n dispatch(loadUserDetails());\n dispatch(signalrConnection.start(token));\n}\n\nexport async function loadCodeLists(dispatch: Dispatch, loadAddresses: boolean = true) {\n await Promise.all([\n dispatch(loadCurrenciesCodeList()),\n dispatch(loadUnitsOfMeasurementCodeList()),\n dispatch(loadUnitsOfTenderCriterionCodeList()),\n dispatch(loadIndustriesCodeList()),\n // Prevents from appending to address codelist when server crash and user is not properly loggedout\n dispatch(resetAddressesCodeList()),\n await dispatch(loadCountriesCodeList()),\n loadAddresses ? dispatch(loadAddressesCodeList()) : null,\n dispatch(loadCanadaProvinces()),\n dispatch(loadUSAStates()),\n dispatch(loadTenderStatusesCodeList()),\n dispatch(loadSuppiersInvitationStatusCodeList())\n ]);\n dispatch(tenderCodelistsLoaded());\n}\n\nexport const actionDispatcher = {\n dispatchAllStartupActions\n};\n","import { HIDE_IRRELEVANT_SUPPLIERS_STATE_CACHE } from 'newAuction/components/HideIrrelevantSuppliersButton';\nimport { IActionTypes, TenderAction } from '_actions/tenderActions';\nimport { itemsDetailsCalculator } from '_libs/calculator';\nimport { momentWithSecAndMsReset } from '_libs/utils';\nimport { SuppliersTenderStatus } from '_types/commonTypes';\nimport { SuppliersBidChange, Tender } from '_types/tenderTypes';\nimport { initialDeliveryAddressState, initialUserState } from './partialInitialStates';\n\nexport interface IState {\n currentTender: Tender;\n bidsChanges: SuppliersBidChange[];\n hideIrrelevantSuppliers: boolean;\n shouldUpdateBackend: boolean;\n}\n\nexport const initialAddressSource = -1;\n/**\n * shouldUpdateBackend refers to observer that is listening on application state change\n * and updates tender on backend if it's true, after the backend is updated shouldUpdateBackend\n * is set to false\n */\nexport const initialState: IState = {\n currentTender: {\n tenderId: 0,\n tenderStatus: 0,\n name: '',\n keywords: '',\n addressSource: initialAddressSource,\n newDeliveryAddress: initialDeliveryAddressState,\n currency: '',\n totExpPrice: 0,\n totExpPriceInUserCurr: 0,\n mainPictureUrl: '',\n industries: [],\n itemsDetails: [\n {\n id: 0,\n name: 'Item',\n unitPrice: 100,\n unitOfMeasurement: { id: 'PC', name: 'Pieces' },\n quantity: 10,\n expPrice: itemsDetailsCalculator.calculateExpectedPrice(100, 10),\n bidStep: itemsDetailsCalculator.calculateBidStep(1000),\n bestBid: -1,\n description: ''\n }\n ],\n criteriaDetails: [\n {\n id: 0,\n name: 'Total price for all items',\n unit: { id: 'CURRENCY', name: 'Currency' },\n winningThreshold: { id: 0, name: 'Lowest Wins' },\n weight: { id: 1, name: '100%' },\n bestBid: -1,\n description: '',\n minBid: 0,\n maxBid: 0\n }\n ],\n // Setting seconds to 0 so tender countdown is accurate\n proposalEndDate: momentWithSecAndMsReset().add(7, 'd').toISOString(true),\n startDate: momentWithSecAndMsReset().add(9, 'd').toISOString(true),\n createdDate: new Date(),\n duration: 120,\n announcements: [],\n suppliers: [],\n attachments: {\n isUploading: false,\n list: []\n },\n isVatIncluded: true,\n mustHaveConditions: [],\n totalActiveBidders: 0,\n stepProgress: 0,\n isPublic: false,\n isFavorite: false,\n owner: initialUserState\n },\n hideIrrelevantSuppliers: localStorage.getItem(HIDE_IRRELEVANT_SUPPLIERS_STATE_CACHE) === 'true',\n bidsChanges: [],\n shouldUpdateBackend: false\n};\n\nexport function reducer(state: IState = initialState, action: TenderAction): IState {\n switch (action.type) {\n case IActionTypes.LOAD_TEMPLATE_SUCCESS: {\n const { template } = action.payload;\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n name: template.name,\n itemsDetails: template.itemsDetails,\n criteriaDetails: template.criteriaDetails,\n attachments: { isUploading: false, list: action.payload.template.attachments },\n mustHaveConditions: template.mustHaveConditions,\n addressSource: template.addressSource,\n newDeliveryAddress: template.deliveryAddress,\n duration: template.duration,\n proposalEndDate: template.proposalEndDateTime,\n startDate: template.startDateTime\n }\n };\n }\n case IActionTypes.LOAD_TENDER_SUCCESS:\n return {\n ...state,\n currentTender: action.payload.tender\n };\n case IActionTypes.UPDATE_TENDER_PROPS_SUCCESS:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n [action.payload.name]: action.payload.value\n },\n shouldUpdateBackend: action.shouldUpdateOnBackend\n };\n case IActionTypes.UPDATE_TENDER_PROPS_SUCCESS:\n return state;\n case IActionTypes.TOGGLE_FAVORITE:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n isFavorite: action.payload.isFavorite\n }\n };\n case IActionTypes.UPDATE_TENDER_ON_BACKEND_SUCCESS:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n itemsDetails: action.payload.items,\n criteriaDetails: action.payload.criteria,\n mustHaveConditions: action.payload.mustHaveConditions,\n mainPictureUrl: action.payload.mainPicutreUrl,\n attachments: {\n isUploading: state.currentTender.attachments.isUploading,\n list: action.payload.attachments\n },\n newDeliveryAddress: {\n ...state.currentTender.newDeliveryAddress,\n id: action.payload.deliveryAddressId\n }\n }\n };\n case IActionTypes.CREATE_TENDER_SUCCESS:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n tenderId: action.payload.tenderId,\n createdDate: new Date(),\n owner: action.payload.user\n },\n shouldUpdateBackend: false\n };\n case IActionTypes.SCHEDULE_TENDER_SUCCESS:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n tenderStatus: action.payload.tenderStatusId\n }\n };\n case IActionTypes.ADD_NEW_ITEM_DETAILS_SUCCESS:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n itemsDetails: [...state.currentTender.itemsDetails, action.payload.item]\n },\n shouldUpdateBackend: true\n };\n case IActionTypes.UPDATE_ITEM_DETAILS_SUCCESS: {\n const { index, name, value } = action.payload;\n const items = state.currentTender.itemsDetails.slice();\n items[index] = { ...items[index], [name]: value };\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n itemsDetails: items\n },\n shouldUpdateBackend: action.shouldUpdateOnBackend\n };\n }\n case IActionTypes.UPLOAD_MAIN_PICTURE_SUCCESS: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n mainPictureUrl: action.payload.url\n }\n };\n }\n case IActionTypes.REMOVE_ITEM_DETAILS_SUCCESS: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n itemsDetails: state.currentTender.itemsDetails.filter((_, i) => i !== action.payload.index)\n },\n shouldUpdateBackend: true\n };\n }\n case IActionTypes.ADD_NEW_CRITERION_DETAILS_SUCCESS:\n const criteria = state.currentTender.criteriaDetails.slice();\n const criteriaWeight = Math.round((criteria[0].weight.id - action.payload.criterion.weight.id) * 100) / 100;\n criteria[0] = { ...criteria[0], weight: { id: criteriaWeight, name: criteriaWeight * 100 + '%' } };\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n criteriaDetails: [...criteria, action.payload.criterion]\n },\n shouldUpdateBackend: true\n };\n case IActionTypes.UPDATE_CRITERION_DETAILS_SUCCESS: {\n const { index, name, value } = action.payload;\n const criteria = state.currentTender.criteriaDetails.slice();\n criteria[index] = { ...criteria[index], [name]: value };\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n criteriaDetails: criteria\n },\n shouldUpdateBackend: action.shouldUpdateOnBackend\n };\n }\n case IActionTypes.REMOVE_CRITERION_DETAILS_SUCCESS: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n criteriaDetails: state.currentTender.criteriaDetails.filter((_, i) => i !== action.payload.index)\n },\n shouldUpdateBackend: true\n };\n }\n case IActionTypes.START_UPLOADING_ATTACHMENTS: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n attachments: {\n ...state.currentTender.attachments,\n isUploading: true\n }\n }\n };\n }\n case IActionTypes.END_UPLOADING_ATTACHMENTS: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n attachments: {\n ...state.currentTender.attachments,\n isUploading: false\n }\n }\n };\n }\n case IActionTypes.ADD_NEW_ATTACHMENTS_SUCCESS:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n attachments: {\n ...state.currentTender.attachments,\n list: [...state.currentTender.attachments.list, ...action.payload.attachments]\n }\n }\n };\n case IActionTypes.REMOVE_ATTACHMENT_SUCCESS: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n attachments: {\n ...state.currentTender.attachments,\n list: state.currentTender.attachments.list.filter((_, i) => i !== action.payload.index)\n }\n },\n shouldUpdateBackend: true\n };\n }\n case IActionTypes.REMOVE_MAIN_PICTURE_SUCCESS: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n mainPictureUrl: ''\n }\n };\n }\n case IActionTypes.ADD_ANNOUNCEMENT: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n announcements: [action.payload.announcement, ...state.currentTender.announcements]\n }\n };\n }\n case IActionTypes.ADD_SUPPLIER_SUCCESS:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: [action.payload.supplier, ...state.currentTender.suppliers]\n },\n shouldUpdateBackend: action.shouldUpdateOnBackend\n };\n case IActionTypes.REMOVE_SUPPLIER_SUCCESS:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: state.currentTender.suppliers.filter(s => s.user.userName !== action.payload.username)\n }\n };\n case IActionTypes.ADD_NEW_SUPPLIERS_ATTACHMENTS_SUCCESS: {\n const suppliers = state.currentTender.suppliers.slice();\n\n const suppIndex = suppliers.findIndex(s => s.user.userName === action.payload.username);\n\n if (suppIndex > -1) {\n suppliers[suppIndex] = {\n ...suppliers[suppIndex],\n attachments: {\n ...suppliers[suppIndex].attachments,\n list: [...suppliers[suppIndex].attachments.list, ...action.payload.attachments]\n }\n };\n }\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers\n }\n };\n }\n case IActionTypes.START_UPLOADING_SUPPLIERS_ATTACHMENTS: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: [\n {\n ...state.currentTender.suppliers[0],\n attachments: { ...state.currentTender.suppliers[0].attachments, isUploading: true }\n }\n ]\n }\n };\n }\n case IActionTypes.END_UPLOADING_SUPPLIERS_ATTACHMENTS: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: [\n {\n ...state.currentTender.suppliers[0],\n attachments: { ...state.currentTender.suppliers[0].attachments, isUploading: false }\n }\n ]\n }\n };\n }\n case IActionTypes.UPDATE_SUPPLIERS_MHC_RESPONSES: {\n const suppliers = state.currentTender.suppliers.slice();\n\n const suppIndex = suppliers.findIndex(s => s.user.userName === action.payload.username);\n\n if (suppIndex > -1) {\n suppliers[suppIndex] = {\n ...suppliers[suppIndex],\n mustHaveConditionResponses: action.payload.responses\n };\n }\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers\n }\n };\n }\n case IActionTypes.REMOVE_SUPPLIERS_ATTACHMENT_SUCCESS: {\n const suppliers = state.currentTender.suppliers.slice();\n const supp = state.currentTender.suppliers.findIndex(\n s => s.attachments.list.findIndex(a => a.id === action.payload.id) > -1\n );\n\n if (supp > -1) {\n suppliers[supp] = {\n ...suppliers[supp],\n attachments: {\n ...state.currentTender.suppliers[0].attachments,\n list: state.currentTender.suppliers[0].attachments.list.filter(a => a.id !== action.payload.id)\n }\n };\n }\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers\n }\n };\n }\n case IActionTypes.UNBLOCK_SUPPLIER: {\n const suppliers = state.currentTender.suppliers.slice();\n const suppIndex = suppliers.findIndex(s => s.user.userName === action.payload.userName);\n\n if (suppIndex > 0) {\n suppliers[suppIndex] = {\n ...suppliers[suppIndex],\n status: action.payload.status\n };\n }\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers\n }\n };\n }\n case IActionTypes.SEND_INVITATIONS_TO_SUPPLIERS: {\n const suppliers = state.currentTender.suppliers.slice();\n action.payload.emails.forEach(email => {\n const index = state.currentTender.suppliers.findIndex(supp => supp.user.userName === email);\n if (typeof index !== 'undefined') {\n suppliers[index] = {\n ...suppliers[index],\n status: {\n id: action.payload.invitationStatus.id,\n name: action.payload.invitationStatus.name\n },\n canReinvite: suppliers[index].status.id === SuppliersTenderStatus.INVITATION_NOT_SENT\n };\n }\n });\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: suppliers\n },\n shouldUpdateBackend: true\n };\n }\n case IActionTypes.RESPOND_TO_INVITATION_BY_SUPPLIER_SUCCESS: {\n const suppliers = state.currentTender.suppliers.slice();\n const responseStatus = action.payload.response\n ? SuppliersTenderStatus.INVITATION_ACCEPTED\n : SuppliersTenderStatus.INVITATION_REJECTED_BY_BIDDER;\n\n suppliers[0] = {\n ...suppliers[0],\n status: {\n id: responseStatus,\n name: action.payload.invitationStatusCodeList.find(s => s.id === responseStatus)!.name\n }\n };\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: suppliers\n }\n };\n }\n case IActionTypes.ADD_NEW_MUST_HAVE_CONDITION_SUCCESS:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n mustHaveConditions: [...state.currentTender.mustHaveConditions, action.payload.condition]\n }\n };\n case IActionTypes.UPDATE_MUST_HAVE_CONDITION_SUCCESS: {\n const { index, condition } = action.payload;\n\n const conditions = state.currentTender.mustHaveConditions.slice();\n conditions[index] = condition;\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n mustHaveConditions: conditions\n },\n shouldUpdateBackend: true\n };\n }\n case IActionTypes.REMOVE_MUST_HAVE_CONDITION_SUCCESS: {\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n mustHaveConditions: state.currentTender.mustHaveConditions.filter((_, i) => i !== action.payload.index)\n },\n shouldUpdateBackend: true\n };\n }\n case IActionTypes.UPDATE_NEW_DELIVERY_ADDRESS_PROPS_SUCCESS:\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n newDeliveryAddress: {\n ...state.currentTender.newDeliveryAddress,\n [action.payload.name]: action.payload.value\n }\n },\n shouldUpdateBackend: action.shouldUpdateOnBackend\n };\n case IActionTypes.SUBMIT_CHANGE_SUCCESS:\n return {\n ...state,\n shouldUpdateBackend: false\n };\n case IActionTypes.UPDATE_SUPPLIERS_OFFER_DESCRIPTION_SUCCESS:\n const suppliers = state.currentTender.suppliers.slice();\n\n const suppIndex = suppliers.findIndex(s => s.user.userName === action.payload.userName);\n\n if (suppIndex > -1) {\n suppliers[suppIndex] = {\n ...suppliers[suppIndex],\n offerDescription: action.payload.description\n };\n }\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers\n }\n };\n /**\n * If we receive from signalR new bid, we add it to bid array or update current\n * value.\n */\n case IActionTypes.UPDATE_SUPPLIERS_ITEM_BID_SUCCESS: {\n const suppliers = state.currentTender.suppliers.slice();\n const supplierIndex = state.currentTender.suppliers.findIndex(\n s => s.user.userName === action.payload.suppliersItemBid.userName\n );\n\n if (supplierIndex > -1) {\n const itemBids = suppliers[supplierIndex].itemsBids.slice();\n const itemIndex = itemBids.findIndex(i => i.id === action.payload.suppliersItemBid.itemId);\n if (itemIndex > -1) {\n itemBids[itemIndex] = {\n ...itemBids[itemIndex],\n value: action.payload.suppliersItemBid.bid\n };\n } else {\n itemBids.push({\n id: action.payload.suppliersItemBid.itemId,\n value: action.payload.suppliersItemBid.bid\n });\n }\n suppliers[supplierIndex] = {\n ...suppliers[supplierIndex],\n itemsBids: itemBids\n };\n }\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: suppliers\n }\n };\n }\n /**\n * If we receive from signalR new bid, we add it to bid array or update current\n * value.\n */\n case IActionTypes.UPDATE_SUPPLIERS_CRITERION_BID_SUCCESS: {\n const suppliers = state.currentTender.suppliers.slice();\n const supplierIndex = state.currentTender.suppliers.findIndex(\n s => s.user.userName === action.payload.suppliersCriterionBid.userName\n );\n\n if (supplierIndex > -1) {\n const criterionBids = suppliers[supplierIndex].criteriaBids.slice();\n const itemIndex = criterionBids.findIndex(i => i.id === action.payload.suppliersCriterionBid.criteriaId);\n if (itemIndex > -1) {\n criterionBids[itemIndex] = {\n ...criterionBids[itemIndex],\n value: action.payload.suppliersCriterionBid.bid\n };\n } else {\n criterionBids.push({\n id: action.payload.suppliersCriterionBid.criteriaId,\n value: action.payload.suppliersCriterionBid.bid\n });\n }\n\n suppliers[supplierIndex] = {\n ...suppliers[supplierIndex],\n criteriaBids: criterionBids\n };\n }\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: suppliers\n }\n };\n }\n case IActionTypes.UPDATE_SUPPLIERS_POSITIONS_SUCCESS: {\n const suppliers = state.currentTender.suppliers.slice();\n\n for (let i = 0; i < state.currentTender.suppliers.length; i++) {\n const suppPosIndex = action.payload.suppliersPositions.findIndex(\n s => s.userName === suppliers[i].user.userName\n );\n\n if (suppPosIndex > -1) {\n suppliers[i] = {\n ...suppliers[i],\n overallPosition: action.payload.suppliersPositions[suppPosIndex].position\n };\n }\n }\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: suppliers\n }\n };\n }\n case IActionTypes.UPDATE_SUPPLIERS_PARTICIPATION_STATUS: {\n const suppliers = state.currentTender.suppliers.slice();\n\n const supplierIndex = suppliers.findIndex(s => s.user.userName === action.payload.userName);\n if (supplierIndex > -1) {\n suppliers[supplierIndex] = {\n ...suppliers[supplierIndex],\n status: action.payload.status,\n criteriaBids:\n action.payload.status.id === SuppliersTenderStatus.LEFT ? [] : suppliers[supplierIndex].criteriaBids,\n itemsBids:\n action.payload.status.id === SuppliersTenderStatus.LEFT ? [] : suppliers[supplierIndex].itemsBids\n };\n }\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: suppliers\n }\n };\n }\n case IActionTypes.UPDATE_SUPPLIERS_BLOCK_REASON: {\n const suppliers = state.currentTender.suppliers.slice();\n\n const suppIndex = suppliers.findIndex(s => s.user.userName === action.payload.userName);\n\n if (suppIndex > -1) {\n suppliers[suppIndex] = { ...suppliers[suppIndex], rejectedReason: action.payload.reason };\n }\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers: suppliers\n }\n };\n }\n case IActionTypes.UPDATE_SUPPLIERS_LAST_ACTIVITY: {\n const suppliers = state.currentTender.suppliers.slice();\n\n const suppIndex = suppliers.findIndex(s => s.user.userName === action.payload.username);\n\n if (suppIndex > -1) {\n suppliers[suppIndex] = { ...suppliers[suppIndex], lastActivityDate: action.payload.date };\n }\n\n return {\n ...state,\n currentTender: {\n ...state.currentTender,\n suppliers\n }\n };\n }\n case IActionTypes.UPDATE_TENDER_STATUS: {\n return {\n ...state,\n currentTender: { ...state.currentTender, tenderStatus: action.payload.statusId }\n };\n }\n case IActionTypes.ADD_BID_CHANGE: {\n const { bid } = action.payload;\n\n const bidsChanges =\n state.bidsChanges.findIndex(b => b.userName === bid.userName && b.id === bid.id && b.type === bid.type) ===\n -1\n ? [...state.bidsChanges, bid]\n : state.bidsChanges;\n\n return {\n ...state,\n bidsChanges\n };\n }\n case IActionTypes.REMOVE_BID_CHANGE: {\n const { bid } = action.payload;\n return {\n ...state,\n bidsChanges: state.bidsChanges.filter(\n b => b.userName !== bid.userName && b.id === bid.id && b.type === bid.type\n )\n };\n }\n case IActionTypes.TOGGLE_HIDE_IRRELEVANT_SUPPLIERS: {\n return {\n ...state,\n hideIrrelevantSuppliers: !state.hideIrrelevantSuppliers\n };\n }\n case IActionTypes.RESET_NEW_TENDER_SUCCESS:\n return initialState;\n default:\n return state;\n }\n}\n","module.exports = __webpack_public_path__ + \"static/media/favicon-notification.9c8de781.png\";","import React from 'react';\nimport * as classNames from 'classnames';\n\ntype Props = {\n children?: any;\n style?: React.CSSProperties;\n className?: string;\n hidden?: boolean;\n noMargin?: boolean;\n};\n\nconst Row: React.FC = ({ noMargin, ...props }) => {\n return (\n