{"version":3,"sources":["css/quill.scss","css/index.scss","../config/polyfills.js","css/scrollbox.scss","components/connector_registration/signup.scss","components/main_content_header/main-content-header.scss","components/company_select/company-select.scss","lib/strings.js","lib/resources.js","lib/icons.js","lib/utils.js","lib/data.js","store/general-actions.js","store/modal-actions.js","store/error-actions.js","store/company-actions.js","store/company-reducer.js","store/error-reducer.js","store/localization-actions.js","store/localization-reducer.js","lib/auth.js","store/user-actions.js","store/accounts-actions.js","store/accounts-reducer.js","store/user-reducer.js","store/conversations-actions.js","store/conversations-reducer.js","store/ledger-actions.js","store/ledger-reducer.js","store/registration-actions.js","store/registration-reducer.js","store/search-actions.js","store/search-reducer.js","store/manage-actions.js","store/manage-reducer.js","store/invite-actions.js","store/invite-reducer.js","lib/axios.js","store/connector-actions.js","store/connector-reducer.js","store/perspectives-actions.js","store/perspectives-reducer.js","store/reports-actions.js","store/reports-reducer.js","store/general-reducer.js","store/modal-reducer.js","store/contextGroups-actions.js","store/contextGroups-reducer.js","store/statements-actions.js","store/statements-reducer.js","store/sequences-actions.js","store/sequences-reducer.js","store/network-actions.js","store/network-reducer.js","store/disputeCodes-actions.js","store/disputeCodes-reducer.js","store/rootReducer.js","store/store.js","lib/perspectives.js","lib/transform-ubl.js","components/sidebarInvoice.jsx","components/flexibleScrollContainer.jsx","components/companyProfile/profileAttribute.jsx","components/library/syncedWith.jsx","components/companyProfile/companyProfileUI.jsx","components/companyProfile/notConnected.jsx","components/mainLoader.jsx","components/companyProfile/companyProfile.jsx","components/modalDialog.jsx","components/library/dropdownItem.jsx","components/library/dropdown.jsx","components/library/icons/iconAngleDown.jsx","components/library/selectInput.jsx","components/emailTemplatePicker.jsx","components/library/lockstepQuill.jsx","components/htmlEditor.jsx","components/library/icons/iconCode.jsx","components/library/icons/iconAlertCircle.jsx","components/library/textInput.jsx","components/replyTemplateForm.jsx","components/attachment.jsx","components/library/icons/iconUpload.jsx","components/library/icons/iconUser.jsx","components/library/icons/iconCompany.jsx","components/library/avatar.jsx","components/activities/contactEmailSelect.jsx","components/library/toggleSwitch.jsx","components/activities/editors/conversationEditor.jsx","components/activities/threadItems/statusChangeThreadItem.jsx","components/activities/threadItems/assignmentThreadItem.jsx","components/activities/threadItems/approvalThreadItem.jsx","components/activities/threadItems/approvalRequestThreadItem.jsx","components/activities/threadItems/rejectionThreadItem.jsx","components/library/Iframe.jsx","components/activities/threadItems/emailThreadItem.jsx","components/activities/threadItems/draftThreadItem.jsx","components/activities/threadItems/invoiceThreadItem.jsx","components/library/radioInput.jsx","components/library/textAreaInput.jsx","components/activities/threadItems/taskThreadItem.jsx","components/activities/threadItems/reminderThreadItem.jsx","components/activities/threadItems/requestResponseThreadItem.jsx","components/activities/threadItems/simpleForwardThreadItem.jsx","components/activities/threadItems/simpleForwardResponseThreadItem.jsx","components/library/icons/iconRead.jsx","components/library/icons/iconUnread.jsx","components/library/icons/iconArrowUp.jsx","components/library/icons/iconXCircle.jsx","components/library/icons/iconSlash.jsx","components/library/icons/iconUsers.jsx","components/library/icons/iconMove.jsx","components/library/icons/iconBell.jsx","components/userPicker.jsx","components/library/filterInput.jsx","components/library/icons/iconRightArrowCircle.jsx","components/lockstep/conversationActionButtons.jsx","components/library/card.jsx","components/activities/conversation.jsx","components/library/icons/iconSearch.jsx","components/library/autoCompleteInput.jsx","components/lockstep/summaryCountBadge.jsx","components/library/icons/iconAttachment.jsx","components/library/icons/iconMessage.jsx","components/library/checkbox.jsx","components/library/icons/iconArrowRight.jsx","components/library/icons/iconArrowLeft.jsx","components/library/tableData.jsx","components/conversationTable.jsx","components/hooks/useDebounce.js","components/library/crudList.jsx","components/companySettings.jsx","components/spamSettings.jsx","components/documentsTable.jsx","components/statementsView.jsx","components/library/icons/iconCheckCircle.jsx","components/library/icons/iconApps.jsx","components/lockstep/searchBar.jsx","components/library/icons/iconLeftArrow.jsx","components/featureGate.jsx","components/lockstep/views/viewContentHeader.jsx","components/departmentView.jsx","components/connector_registration/signUpBody.jsx","components/connector_registration/progressBar.jsx","components/connector_registration/signUpHeader.jsx","components/connector_registration/signUpFooter.jsx","components/connector_registration/signUp.jsx","components/connector_registration/companyConnectedBody.jsx","components/connector_registration/companySignupCompleteBody.jsx","components/signUpContinued.jsx","components/signUpFailed.jsx","components/library/lockstepLogo.jsx","components/library/icons/iconCheck.jsx","components/library/icons/iconPlusCircle.jsx","components/main_content_header/mainContentHeader.jsx","components/company_select/companySelect.jsx","components/loginForm.jsx","components/login.jsx","components/regCompanyInfo.jsx","components/regUserAccountExists.jsx","components/regUserCompanyExists.jsx","components/regGettingVerified.jsx","components/registration.jsx","components/companySelector.jsx","components/menuItem.jsx","components/searchInput.jsx","components/companyRefresh.jsx","components/companyBrowser.jsx","components/userSettingsNavContent.jsx","components/manageNavContent.jsx","components/reportsNavContent.jsx","components/library/customerIcon.jsx","components/library/vendorIcon.jsx","components/sideNav.jsx","components/setupSelectInbox.jsx","components/setupConnectEmail.jsx","components/setupForwardEmail.jsx","components/setupConnectionVerified.jsx","components/connector_registration/companyLogoButton.jsx","components/connector_registration/companySelectionRow.jsx","components/connector_registration/companySelectionGrid.jsx","components/setupLandingPage.jsx","components/reportsFilter.jsx","components/reportsContentBlock.jsx","components/library/tabularData.jsx","components/reportsExportButton.jsx","components/reportsNoData.jsx","components/reportsApprovers.jsx","components/reportsTeam.jsx","components/reportsTasks.jsx","components/reportsApprovalAging.jsx","components/reportsPage.jsx","components/resetPassword.jsx","components/lockstep/views/lockstepHeader.jsx","components/invitedAcceptProfile.jsx","components/invitedSetPassword.jsx","components/registeredConnectors.jsx","components/manageConnectors.jsx","components/library/legacyNotification.jsx","components/ERPRegistration.jsx","components/SMTPEmailSettings.jsx","components/SPFDKIMEmailSettings.jsx","components/perspectiveTabs.jsx","components/forwardingEmailSettings.jsx","components/library/autoCompleteDropdown.jsx","components/incomingSettings.jsx","components/companyEmailSettings.jsx","components/myCompanyProfile.jsx","components/inviteCompanyUser.jsx","components/manageCompanyUsers.jsx","components/editApproverForm.jsx","components/manageApprovers.jsx","components/manageTemplates.jsx","components/library/icons/iconClose.jsx","components/manage/createCommunicationTemplate.jsx","components/library/icons/iconTableSort.jsx","components/library/tableDataSortableHeader.jsx","components/library/icons/iconAngleLeft.jsx","components/manage/manageCommunicationTemplates.jsx","components/manage/sequencesTabContent.jsx","components/manage/sequencesOverviewTabContent.jsx","components/library/icons/iconSmile.jsx","components/library/icons/iconPen.jsx","components/library/icons/iconPercent.jsx","components/library/icons/iconMissing.jsx","components/library/icons/iconGift.jsx","components/library/icons/iconInvoice.jsx","components/library/icons/iconFile.jsx","components/manage/pickSequenceTemplateContent.jsx","components/library/icons/iconAngleRight.jsx","components/library/icons/iconTrash.jsx","components/library/icons/iconInfo.jsx","components/manage/createOrEditSequenceContent.jsx","components/manage/manageSequences.jsx","lib/validation.js","components/library/icons/iconFilter.jsx","components/library/icons/iconHelp.jsx","components/manage/customer-groups/customerGroupsHelpDropdown.jsx","components/manage/customer-groups/createCustomerGroup.jsx","components/manage/customer-groups/manageCustomerGroups.jsx","components/sharedDocuments.jsx","components/ERPConfiguration.jsx","components/editAccountingPackage.jsx","components/library/toast.jsx","components/modalCompanyRemap.jsx","components/modalCompanyRename.jsx","components/sharedDocumentForm.jsx","components/attachFileModal.jsx","components/attachFromLibraryModal.jsx","components/setReminderModal.jsx","components/unmappedPropertyModal.jsx","components/warnBeforeDeleteModal.jsx","components/confirmModal.jsx","components/importContactsModal.jsx","components/userManagementModal.jsx","components/originalEmailModal.jsx","components/imapConfigModal.jsx","components/changeIncomingEmailModal.jsx","components/errorModal.jsx","components/customDateRangeModal.jsx","components/emailAddress.jsx","components/emailAddressBar.jsx","components/sendStatementModal.jsx","components/disconnectConnectorModal.jsx","components/addEmailIdentifierModal.jsx","components/cancelRequestResponseModal.jsx","components/addSpamAddressModal.jsx","components/cancelApprovalRequestModal.jsx","components/dkimConfigurationModal.jsx","components/customer_portal/portalAddVendorsModal.jsx","components/safariModal.jsx","components/MissingPaymentMethodModal.jsx","components/library/icons/iconAward.jsx","components/library/icons/iconSend.jsx","components/library/icons/iconLock.jsx","components/library/icons/iconUnlock.jsx","components/library/icons/iconArchive.jsx","components/library/tooltip.jsx","components/lockstep/contactsHoverButtons.jsx","components/lockstep/contactsTable.jsx","components/lockstep/dialogs/setNewPrimaryContactDialog.jsx","components/lockstep/dialogs/setNewDocumentTypeDialog.jsx","components/lockstep/dialogs/deleteDocumentConfirmDialog.jsx","components/lockstep/dialogs/sendPrivateContactRequestDialog.jsx","components/testEmailConfigModal.jsx","components/addPerspectiveModal.jsx","components/customer_portal/portalGiveFeedbackModal.jsx","components/affinipayModal.jsx","components/lockstep/views/settings/inviteUserModal.jsx","components/modalManager.jsx","components/library/userAvatar.jsx","components/library/icons/iconAlert.jsx","components/customer_portal/invoiceTable.jsx","components/customer_portal/messageFlyout.jsx","components/library/icons/iconStar.jsx","components/library/icons/iconEdit.jsx","components/customer_portal/paymentConfirmationMessage.jsx","components/customer_portal/paymentErrorCode.jsx","components/customer_portal/makePaymentFlyout.jsx","components/customer_portal/flyouts/disputeFlyout.jsx","components/customer_portal/flyouts/promiseToPayFlyout.jsx","components/customer_portal/flyouts/contactFlyout.jsx","components/customer_portal/flyouts/applyPaymentFlyout.jsx","components/customer_portal/flyouts/manageAutoPayFlyout.jsx","components/customer_portal/flyouts/paymentsFlyout.jsx","components/customer_portal/flyouts/invoicesFlyout.jsx","components/lockstep/flyouts/profileUpdateRequestFlyout.jsx","components/lockstep/flyouts/shareFlyout.jsx","components/lockstep/flyouts/newActivityFlyout.jsx","components/library/icons/iconPhone.jsx","components/library/icons/iconMapPin.jsx","components/library/icons/iconLinkedIn.jsx","components/library/icons/iconClipboard.jsx","components/library/icons/iconMail.jsx","components/library/icons/iconShare.jsx","components/lockstep/views/profileUpdate/contactUpdateForm.jsx","components/library/icons/iconBriefcase.jsx","components/lockstep/views/profileManagement/myProfileView.jsx","components/lockstep/views/profileUpdate/profileUpdateForm.jsx","components/lockstep/views/documentUploadForm.jsx","components/lockstep/views/profileManagement/companyProfileView.jsx","components/lockstep/flyouts/addContactFlyout.jsx","components/library/icons/iconInbox.jsx","components/library/icons/iconList.jsx","components/lockstep/views/settings/settingsNavigator.jsx","components/lockstep/views/settings/workspacePreferences.jsx","components/lockstep/views/settings/summaryEmailPreferences.jsx","components/lockstep/views/settings/emailSettings/outgoingEmailSettings.jsx","components/lockstep/views/settings/emailSettings/perspectiveEmailSettings.jsx","components/lockstep/views/settings/emailSettings/emailSettings.jsx","components/lockstep/views/settings/templates.jsx","components/lockstep/views/settings/signInSecurity.jsx","components/lockstep/views/settings/userPermissionSettings.jsx","components/lockstep/views/settings/settingsControllerFlyout.jsx","components/flyoutManager.jsx","components/library/icons/iconSpinner.jsx","components/notifications/uploadNotification.jsx","components/notifications/exportNotification.jsx","components/notifications/creatingDisputeNotification.jsx","components/notifications/creatingPromiseToPayNotification.jsx","components/notifications/downloadNotification.jsx","components/notifications/contactSubmittingNotification.jsx","components/notifications/actionNotification.jsx","components/notificationManager.jsx","components/library/partnerAdder.jsx","components/searchViewModal.jsx","components/manageWorkflows.jsx","components/manageContacts.jsx","components/library/unauthorizedHeader.jsx","components/approvalRequest.jsx","components/siteDown.jsx","components/myProfile.jsx","components/library/icons/iconAutoPay.jsx","components/customer_portal/autoPayIndicator.jsx","components/customer_portal/statementCurrencySelector.jsx","components/library/icons/iconDollarSign.jsx","components/library/icons/iconDownload.jsx","components/library/icons/iconExport.jsx","components/customer_portal/openInvoices.jsx","components/customer_portal/closedInvoices.jsx","components/customer_portal/payments.jsx","components/customer_portal/documents.jsx","components/customer_portal/profile.jsx","components/customer_portal/contactInfo.jsx","components/customer_portal/messages.jsx","components/customer_portal/portalSessionExpired.jsx","components/customer_portal/portalAccountError.jsx","components/library/icons/iconGlobe.jsx","components/customer_portal/languageSelector.jsx","components/library/dropdownSearchSort.jsx","components/customer_portal/customerPortal.jsx","components/notificationSettings.jsx","components/manageSignature.jsx","components/lockstep/views/signup/loginInformationForm.jsx","components/lockstep/views/signup/contactDisplayCard.jsx","components/library/companyInfoCard.jsx","components/lockstep/views/signup/signupView.jsx","components/library/summaryCard.jsx","components/lockstep/views/openRequestsView.jsx","components/lockstep/views/homeView.jsx","components/lockstep/views/sequences/sequencesTabContent.jsx","components/lockstep/views/sequences/sequenceData.js","components/lockstep/views/sequences/viewSequenceContent.jsx","components/lockstep/views/sequences/sequencesView.jsx","components/lockstep/views/communicationsView.jsx","components/lockstep/views/network/accountView.jsx","components/lockstep/views/network/contactView.jsx","components/library/filterBuilder.jsx","components/lockstep/views/network/networkView.jsx","components/lockstep/views/searchView.jsx","components/lockstep/views/profileManagement/profileManagementView.jsx","components/lockstep/viewController.jsx","components/library/expandableNavLink.jsx","components/library/icons/iconHouse.jsx","components/lockstep/viewSelector.jsx","components/library/icons/iconCircle.jsx","components/lockstep/perspectiveSelector.jsx","components/library/svgComponents/celebrateSVG.jsx","components/library/svgComponents/doneSVG.jsx","components/lockstep/views/successPage.jsx","components/lockstep/views/profileUpdate/addContactsForm.jsx","components/lockstep/views/profileUpdate/profileUpdateViewHeader.jsx","components/lockstep/views/profileUpdate/marketingVideoView.jsx","components/lockstep/views/profileUpdate/contactTableForm.jsx","components/library/svgComponents/paperSVG.jsx","components/library/svgComponents/userIconSVG.jsx","components/lockstep/views/profileUpdate/conversionPage.jsx","components/lockstep/views/profileUpdate/profileUpdateView.jsx","components/lockstep/profileUpdateController.jsx","components/lockstep/views/profileShareView.jsx","components/lockstep/lockstep.jsx","components/layout.jsx","admin/easterEggPage.jsx","components/errorBoundary.jsx","components/tracking.jsx","index.js"],"names":["content","module","i","options","locals","exports","Promise","enable","window","Object","assign","getString","languageConstant","defaultValue","result","strings","localStorage","getItem","formatString","str","args","delimOpen","delimClose","arguments","length","open","close","key","prototype","hasOwnProperty","call","replace","RegExp","resources","days","date","creator","assignee","company","verb","resource","workspaceType","type","perspective","year","num","id","erp","status","responder","score","connector","email","requester","approver","requestee","name","by","to","isTask","activityType","partnerType","address","poster","contact","documentName","templateName","terms","use","privacy","total","username","count","companyName","emailAddress","searchItem","connectorName","ERPName","searchTerm","companyNameFrom","companyNameTo","oldCompanyName","newCompanyName","reminderName","reminderDate","time","action","configProgress","posterName","workspaceName","numItems","transactionId","message","decodeURLQueryString","n","paymentId","companyId","languageCode","numSearchResults","amountProfiles","invoice","payment","form","variable","sequenceType","state","companyname","number","toUpperCase","numOfSelectedKeys","selectedType","pageName","maxRows","this","CompanyInfoSendMailTo","AccountsPayableAbbr","AccountsReceivableAbbr","EmailSettingsForward","AccountsPayable","AccountsReceivable","icons","activeConversation","angleDown","angleLeft","angleRight","angleUp","approvers","arrowLeft","arrowRight","arrowUp","assigned","attachment","bell","calendar","check","checkSquare","chevronDoubleRight","clipboardCheck","clipboardList","clock","closed","completed","compose","contacts","copy","customers","document","download","draft","dropdown","elipsisH","emailSettings","elipsisV","exclamationCircle","eye","fileAlt","fileImage","fileInvoiceDollar","filePdf","fileWord","forward","genericCompany","google","hourglass","list","myCompany","manage","mine","minus","note","notifications","packages","pencil","pendingApproval","plus","profile","questionCircle","reply","reports","save","savedReplies","search","setup","signature","spam","spinner","statusPicker","sync","template","newTemplate","task","times","toggleoff","toggleon","trash","unassigned","user","userFriendsSolid","userFriends","users","usersAndPermissions","vendors","visibility","workflows","warningTriangle","workspaces","onLocalHost","location","hostname","config","require","isLocalHost","isStaging","apiEndpoint","split","toLowerCase","isQA","isProduction","replaceAt","arr","index","value","slice","removeAt","getConfig","updateConfig","item","isEmpty","util","isNullOrUndefined","isArray","trim","prop","JSON","stringify","isCustomerPortal","path","includes","getConversationSubject","subject","isGuid","guidText","version","isString","ver","validator","isUUID","compareDates","a","b","ma","moment","mb","isSame","isBefore","compareStrings","localeCompare","removeLeading","char","from","substring","authEndpoint","origin","emailDomain","validEmailRegExp","isEmailValid","test","clone","parse","deepCompare","findIndex","array","match","found","find","undefined","getQueryParameters","url","u","startsWith","splice","join","qs","ignoreQueryPrefix","singleParameter","x","decodeURIComponent","e","logToConsole","console","log","formatCurrency","amount","currency","isNaN","currencyString","getCurrencySymbol","numeral","format","coalesceUserName","fullName","givenName","familyName","ticksToReadableTime","ticks","returnNumber","milliseconds","duration","fn","hackedHumanize","thres","k","relativeTimeThreshold","res","humanize","s","m","h","d","M","millisecondsToReadableTime","millisecondsToReadableTimeHardCutoff","getInvoiceNum","invoiceId","SchemeID","Value","lastIndexOf","createKey","indexOf","createNewEvent","eventName","event","Event","createEvent","initEvent","getFileType","fileName","fileType","lastIndex","substr","getFileNameIconClasses","Icons","htmlToText","htmlString","DOMParser","parseFromString","cleanHtml","body","textContent","DOMPurify","sanitize","getReportsTicks","data","max","Math","maxMoment","maxUnit","asDays","asHours","asMinutes","ceil","as","push","round","Set","map","tick","asMilliseconds","formatDimensionalDate","toFormat","formatDate","dateToFormat","isUTC","useTime","utc","currentDate","diff","abs","Resources","JustNow","fromNow","capStringAtLength","string","stringToSentenceCase","c","updateSelectedRows","selectedRows","dataLength","newSelectedRows","Array","forEach","newArray","sort","indexInSelectedRows","row","equal","generateGUID","crypto","getRandomValues","Uint8Array","toString","openUrlForDownload","ActiveXObject","execCommand","_window","createElement","href","target","filename","navigator","userAgent","evt","MouseEvent","view","bubbles","cancelable","dispatchEvent","URL","webkitURL","revokeObjectURL","saveBlobAsDownload","blob","saveAs","Blob","onBlurCheckFocusable","cb","setTimeout","activeIsChildOfFocusable","getElementsByClassName","some","el","contains","activeElement","activeisFocusable","getAttribute","hasFocus","debounce","func","wait","timeout","context","clearTimeout","apply","sortObjects","objects","sortBy","sortDirection","sortByType","currencyId","USD","CAD","EUR","CRC","GBP","ILS","INR","JPY","KRW","NGN","PHP","PLN","PYG","THB","UAH","VND","copyToClipboard","dummy","appendChild","setAttribute","getElementById","select","removeChild","getRRule","onDateUTC","RRule","dtstart","freq","YEARLY","bymonth","month","bymonthday","byhour","hours","byminute","minutes","bysecond","seconds","dataAxios","Axios","create","headers","Pragma","Expires","mergeOptions","def","AccessToken","defaultOptions","keys","get","interceptors","request","onLine","reject","Error","method","retry","error","response","err","__retryCount","retryDelay","resolve","then","swrFetcher","put","post","delete","actions","CLEAR_DATA","SELECT_COMPANY","SHOW_TOAST","HIDE_TOAST","NETWORK_ERROR","CLEAR_NETWORK_ERROR","UPDATE_PAGE_ROW_COUNT","UPDATE_API_STATUS","showToast","toastInfo","dispatch","getState","general","toastTimeout","networkError","text","NoNetworkMessage","linkHidden","isAPILive","dispatchToProps","clearData","selectCompany","primaryCompanyId","clearNetworkError","YoureBack","hideToast","updatePageRowCount","newCount","pageRowCount","GeneralActions","SHOW_MODAL","HIDE_MODAL","SHOW_FLYOUT","HIDE_FLYOUT","SHOW_NOTIFICATION","HIDE_NOTIFICATION","UPDATE_NOTIFICATION_PROPS","hideModal","displayModal","modalType","modalProps","displayFlyout","flyoutType","flyoutProps","hideFlyout","displayNotification","notificationType","notificationProps","hideNotification","updateNotificationProps","update","ModalActions","RAISE_ERROR","raiseError","customContent","errorMessage","store","raiseValidationError","TheFollowingValidationErrorsOccurred","validationErrors","handlePromiseError","validationHandler","FullStoryEvent","removeItem","methods","affectedResource","YouDontHavePermissions","title","GETTING_COMPANY_INFO","GOT_COMPANY_INFO","GET_COMPANY_INFO_FAILED","GETTING_COMPANY","GOT_COMPANY","GET_COMPANY_FAILED","POSTING_COMPANY_INFO","POSTED_COMPANY_INFO","POST_COMPANY_INFO_FAILED","GETTING_COMPANY_INDENTIFIERS","GOT_COMPANY_INDENTIFIERS","GET_COMPANY_INDENTIFIERS_FAILED","DELETING_COMPANY_INDENTIFIER","DELETED_COMPANY_INDENTIFIER","DELETE_COMPANY_INDENTIFIER_FAILED","PUTTING_COMPANY_INDENTIFIER","PUT_COMPANY_INDENTIFIER","PUT_COMPANY_INDENTIFIER_FAILED","POSTING_COMPANY_REMAP","POSTED_COMPANY_REMAP","POST_COMPANY_REMAP_FAILED","POSTING_COMPANY_SPAM","POSTED_COMPANY_SPAM","POST_COMPANY_SPAM_FAILED","POSTING_ADDRESS_SPAM","POSTED_ADDRESS_SPAM","POST_ADDRESS_SPAM_FAILED","FETCHING_SPAM_ADDRESS_LIST","FETCHED_SPAM_ADDRESS_LIST","FETCH_SPAM_ADDRESS_FAILED","DELETING_ADDRESS_FROM_SPAM_LIST","DELETED_ADDRESS_FROM_SPAM_LIST","DELETE_ADDRESS_FROM_SPAM_LIST_FAILED","GET_COMPANY_INFO_PROMISE","fetchCompanyInfo","companies","gettingCompanyInfo","all","companyInfo","connectorEmails","CompanyInfoFetchFailure","fetchCompanyIdentifiers","companyIdentifiers","fetchSpamAddressList","fetchingSpamAddressList","spamList","getCompanyInfo","fetchedCompanyInfo","fetchingCompanyInfoFailed","connectorEmail","synthetic","remote","localPart","perspectiveId","companyForwardingAddress","isCompanyUnowned","gettingCompany","fetchedCompany","failedCompany","rejection","postCompanyInfo","companyInfoPayload","apPhone","arPhone","Address","Line1","Locality","Region","Country","PostalCode","TIN","w9File","w8BenFile","apEmail","arEmail","postCompanyName","getCompanyIdentifiers","gettingCompanyIdentifiers","fetchedCompanyIdentifiers","failedCompanyIdentifiers","deleteCompanyIdentifier","emailConnectorId","connectorCompanyPartyIdentifierId","putCompanyIdentifier","sourceCompanyId","identifiedCompanyId","identifier","postCompanyRemap","companyIdFrom","companyIdTo","postCompanyIsSpam","companyIdSpam","postAddressIsSpam","getSpamAddressList","fetchedSpamAddressList","fetchSpamAddressListFailed","spamAddressList","deleteAddressFromSpamList","spamAddressId","deletingAddressFromSpamList","defaultCompaniesState","postingCompanyInfo","postedCompanyInfo","failedPostCompanyInfo","deletingCompanyIdentifier","deletedCompanyIdentifier","failedDeleteCompanyIdentifier","puttingCompanyIdentifier","failedPuCompanyIdentifier","postingCompanyRemap","postedCompanyRemap","failedPostCompanyRemap","postingCompanySpam","postedCompanySpam","failedPostCompanySpam","postingAddressSpam","postedAddressSpam","failedPostAddressSpam","deletedAddressFromSpamList","deleteAddressFromSpamListFailed","companyReducer","FETCH_SPAM_ADDRESS_LIST_FAILED","defaultErrorState","errors","hasError","hasFieldError","errorReducer","newErrorArray","concat","filter","field","CLEAR_ERROR","errorType","CLEAR_ERRORS","SET_LANGUAGE","GETTING_LANGUAGES","GOT_LANGUAGES","FAILED_GET_LANGUAGES","GETTING_LANGUAGE","GOT_LANGUAGE","FAILED_GET_LANGUAGE","fetchLanguage","languageId","stringsMap","stringPair","toLocaleUpperCase","language","GetLanguageFailure","getAllLanguages","languages","GetLanguagesFailure","setLanguage","setBrowserLanguage","fetchBrowserLanguage","defaultLanguageSettings","gettingLanguages","gotLanguages","failedGetLanguages","gettingLanguage","gotLanguage","failedGetLanguage","generateStringsMap","localizationReducer","authAxios","returnUrl","generateUUID","Date","getTime","r","random","floor","defaults","withCredentials","login","userName","password","rememberLogin","logout","samlLogin","provider","saml","samlResponse","hash","identityToken","createNewUser","payload","SHOW_LOGIN_MODAL","HIDE_LOGIN_MODAL","LOGGED_IN","LOGGING_IN","LOGIN_FAILED","LOGIN_FAILED_RESET","TOKEN_EXPIRING","LOGGED_OUT","LOGGING_OUT","LOGOUT_FAILED","GETTING_USERS","GOT_USERS","GET_USERS_FAILED","VALIDATING_PASSWORD","PASSWORD_VALIDATED","PASSWORD_VALIDATION_FAILED","CLEAR_PASSWORD_ERRORS","GETTING_USER_CONFIG","GOT_USER_CONFIG","GET_USER_CONFIG_FAILED","UPDATING_USER_CONFIG","UPDATED_USER_CONFIG","UPDATE_USER_CONFIG_FAILED","UPDATING_USER","UPDATED_USER","UPDATE_USER_FAILED","USER_ACTIVITY","FETCHING_COMPANY_USER_SIGNATURES","FETCHED_COMPANY_USER_SIGNATURES","FETCH_COMPANY_USER_SIGNATURES_FAILED","UPDATING_COMPANY_USER_SIGNATURE","UPDATED_COMPANY_USER_SIGNATURE","UPDATE_COMPANY_USER_SIGNATURE_FAILED","UPDATING_SIGNATURE_ATTACHMENTS","UPDATED_SIGNATURE_ATTACHMENTS","UPDATE_SIGNATURE_ATTACHMENTS_FAILED","NAVIGATING_BACK","refresh","isLoggedIn","isLoggingIn","didLoginFail","auth","loggedIn","token","setItem","isLoggedOut","isLoggingOut","getUsers","userIds","gettingUsers","getUserConfig","gettingUserConfig","fetchCompanyUserSignatures","isFetchingCompanyUserSignatures","userSignatures","tokenExpiring","refreshToken","showLoginModal","hideLoginModal","isCompanyAdmin","accounts","decoded","myUserId","sub","myRole","companyRoles","role","userId","fetchedCompanyRoles","loginFailedReset","getUser","userLookup","getUserDisplayName","isMeDisplayName","Anyone","userData","Me","getUserRole","roleId","User","Administrator","Connector","Unknown","getMyUserIdFromToken","getMyDisplayNameFromToken","given_name","getMyUserNameFromToken","preferred_username","isUserImpersonated","azp","resetPassword","confirmResetPassword","isPasswordValid","missingRequiredChars","tooShort","isPasswordScoreValid","isPasswordLengthValid","isPasswordCharsValid","validatePasswordErrors","MustHaveCorrectPassPatternError","PasswordIsWeakError","clearPasswordErrors","updateUserConfig","isUpdatingUserConfig","configUpdate","userConfig","updateCompanyUserSignature","signatureData","isUpdatingCompanyUserSignature","getCompanyUserSignature","fetchedCompanyUserSignatures","fetchingCompanyUserSignaturesFailed","createdDate","updateSignatureAttachments","companySignatureId","upload","uploads","formData","FormData","append","userActivity","setNavigatingBack","navigatingBack","FETCHING_ACCOUNTS","FETCHED_ACCOUNTS","FETCH_ACCOUNTS_FAILED","ASSUMING_ACCOUNT","ASSUMED_ACCOUNT","ASSUME_ACCOUNT_FAILED","CREATING_ACCOUNT","CREATED_ACCOUNT","CREATE_ACCOUNT_FAILED","GETTING_ACCOUNT","GOT_ACCOUNT","GET_ACCOUNT_FAILED","UPDATING_ACCOUNT","UPDATED_ACCOUNT","UPDATE_ACCOUNT_FAILED","SELECT_ACCOUNT","FETCHING_SUBSCRIPTION","FETCHED_SUBSCRIPTION","FETCH_SUBSCRIPTION_FAILED","CREATING_COMPANY","CREATED_COMPANY","CREATE_COMPANY_FAILED","UPDATING_COMPANY","UPDATED_COMPANY","UPDATE_COMPANY_FAILED","GETTING_COMPANY_ROLES","GOT_COMPANY_ROLES","GET_COMPANY_ROLES_FAILED","SETTING_COMPANY_USER_ROLE","SET_COMPANY_USER_ROLE","SET_COMPANY_USER_ROLE_FAILED","DELETING_COMPANY_USER","DELETED_COMPANY_USER","DELETE_COMPANY_USER_FAILED","UPDATING_COMPANY_CONTACT","UPDATED_COMPANY_CONTACT","UPDATE_COMPANY_CONTACT_FAILED","CREATING_COMPANY_CONTACT","CREATED_COMPANY_CONTACT","CREATE_COMPANY_CONTACT_FAILED","DELETING_COMPANY_CONTACT","DELETED_COMPANY_CONTACT","DELETE_COMPANY_CONTACT_FAILED","FETCH_DROPDOWN_CONTENT","UPDATE_DROPDOWN_SORT","fetchAccounts","fetchingAccounts","AccountFetchFailure","fetchSubscription","accountsStore","accountId","selectedAccount","fetchingSubscription","subscription","SubscriptionFetchError","getCompany","CompanyFetchFailure","fetchCompany","fetchCompanyUserRoles","gettingCompanyRoles","getCompanyUserRoles","selectedCompanyId","getDefaultCompany","defaultCompanyId","defaultCompany","account","createDropdownData","summaries","combinedDropdownData","longestCustomerName","comp","temp","tempId","openInvoiceCount","constructedRow","setDropdownRowValues","allAccountObj","openInvoices","displayName","TruncateLimit","fetchDropdownContent","dropdownContent","keyToAggregatedStatements","primaryCompany","updateDropdownSort","updatedArray","assumeAccount","assumingAccount","AccountAssumeFailure","createAccount","accountName","AccountCreateFailure","getAccount","gettingAccount","updateAccount","updatingAccount","AccountUpdateFailure","selectAccount","getSubscription","hasFetchedAccounts","hasFetchedSubscription","createAccountCompany","companyData","creatingCompany","CompanyCreateFailure","updateCompany","updatingCompany","CompanyUpdateFailure","getCompanyContact","companyContactId","companyContacts","getCompanyApprovers","isApprover","perspectives","getPerspectiveUserRoles","perspectiveIds","putCompanyUserRole","deleteCompanyUser","createCompanyContact","updateCompanyContact","deleteCompanyContact","defaultCompanyRolesState","settingCompanyUserRole","deletingCompanyUser","defaultSubscriptionState","defaultAccountsState","hasAssumedAccount","creatingAccount","creatingCompanyContact","updatingCompanyContact","deletingCompanyContact","loggingAccountActivity","loggedAccountActivity","failedLogAccountActivity","hasDropdownContent","setAsAll","features","selectedCompany","updateDropDownSort","updatedAccounts","updatedState","updateSelected","foundAccount","updatedCompanies","selectedAccountId","foundCompany","accountsReducer","fetchedAccounts","fetchedState","newAccounts","newAccountState","selectAccountState","newCompaniesState","newCompanyAccount","newCompanies","selectCompanyState","defaultCompanyUsersState","usersCompanyId","fetchedUsers","defaultUserState","isLoginModalVisible","isSamlLogin","isTokenExpiring","shouldRefreshToken","lastTokenRefresh","isValidatingPassword","fetchedUserConfig","updatingUserConfig","updatedUserConfig","updatedUserConfigFailed","updatingUserStatus","updatedCompanyUserSignature","updatingCompanyUserSignatureFailed","isUpdatingSignatureAttachments","updatedSignatureAttachments","updatingSignatureAttachmentsFailed","userReducer","jwt_decode","GETTING_CONVERSATION_STATUSES","GOT_CONVERSATION_STATUSES","GET_CONVERSATION_STATUSES_FAILED","GETTING_CONVERSATIONS","GOT_CONVERSATIONS","GET_CONVERSATIONS_FAILED","GETTING_CONVERSATIONS_SEARCH_RESULTS","GOT_CONVERSATIONS_SEARCH_RESULTS","FAILED_GET_CONVERSATIONS_SEARCH_RESULTS","CLEAR_CONVERSATIONS_SEARCH_RESULTS","GETTING_CONVERSATION","GOT_CONVERSATION","GET_CONVERSATION_FAILED","UPDATING_CONVERSATION_READ_STATUSES","UPDATED_CONVERSATION_READ_STATUSES","UPDATE_CONVERSATION_READ_STATUSES_FAILED","DELETING_CONVERSATION","DELETED_CONVERSATION","DELETE_CONVERSATION_FAILED","CREATING_CONVERSATION","CREATED_CONVERSATION","CREATE_CONVERSATION_FAILED","ASSOCIATION_ADDED","START_CONVERSATION","CLEAR_CONVERSATION","GOT_RELATED","SET_MAX_RELATED_LENGTH","ASSIGNING_CONVERSATIONS","ASSIGNED_CONVERSATIONS","ASSIGN_CONVERSATIONS_FAILED","SETTING_CONVERSATION_STATUSES","SET_CONVERSATION_STATUSES","SET_CONVERSATION_STATUSES_FAILED","SET_CONVERSATION_MOVE_TO_NEXT","SET_CONVERSATION_SORT","SET_DOCUMENT_SORT","GETTING_DOCUMENTS","GOT_DOCUMENTS","GET_DOCUMENTS_FAILED","GETTING_REMINDERS","GOT_REMINDERS","GET_REMINDERS_FAILED","GETTING_APPROVAL_REQUEST","GOT_APPROVAL_REQUEST","GET_APPROVAL_REQUEST_FAILED","PUTTING_APPROVAL_REQUEST_ACTION","PUT_APPROVAL_REQUEST_ACTION","PUT_APPROVAL_REQUEST_ACTION_FAILED","SET_CONVERSATIONS_TO_SEARCH_RESULT","CLEAR_CONVERSATIONS","SET_CONVERSATIONS_VIEW_SEARCH_TERM","SET_CONVERSATIONS_VIEW_DATA","SET_CONVERSATIONS_READ_STATUS","SET_CONVERSATIONS_CURRENT_PAGE","SET_CONVERSATIONS_SEARCH_RESULTS_CURRENT_PAGE","SET_CONVERSATIONS_LABEL","SET_DISPLAYING_SEARCH_RESULTS","SET_UPDATING_SEARCH_RESULTS","getConversationStatuses","conversations","gettingStatuses","statuses","debouncedFetchConversationsSearchResultsGet","withCompanyId","params","top","skip","searchAttribute","gettingConversations","label","isNumeric","queryCompanyId","endpoint","getConversation","conversationId","UserActions","gettingConversation","conversation","refreshConversation","RELATED_PROMISES","SET_CONVERSATION_STATUSES_PROMISE","isSelectedCompanyMatch","setConversationsToSearchResult","searchResult","ensureConversationStatuses","fetchedStatuses","getConversationStatus","statusId","statusesLookup","getConversationStatusByName","conversationStatusName","startConversation","getConversations","next","moveToNext","nextLink","fetchConversationsSearchResults","debouncedFetchConversationsSearchResults","gettingNetworkAccountSearchResults","_","isEqual","conversationsSearchTerm","clearConversationsSearchResults","getLabeledWithCompanyConversations","gettingAction","clearConversations","refreshConversations","withCompany","fetchConversation","deleteConversation","isDeletingConversation","clearConversation","assignConversationsTo","conversationIds","ids","assigningConversations","setConversationStatusesTo","suppressError","items","statusToConversations","conversationStatusId","fromConversationStatusId","toConversationStatusId","responses","getRelated","addressId","related","fetchRelated","setMaxRelatedLength","maxStorageSize","maxLength","setMoveToNext","bool","setConversationSort","setDocumentSort","getConversationDocuments","selector","documents","selectorIsGuid","getReminders","reminders","getApprovalRequest","gettingApprovalRequest","approvalRequest","putApprovalRequestAction","comment","Authorization","updateConversationReadStatuses","isRead","isUpdatingConversationReadStatuses","setConversationsViewSearchTerm","conversationsViewSearchTerm","setConversationsViewData","conversationsViewData","setConversationsCurrentPage","page","conversationsCurrentPage","setConversationsSearchResultsCurrentPage","conversationsSearchResultsCurrentPage","setConversationsLabel","conversationsLabel","setDisplayingSearchResults","displayingSearchResults","setUpdatingSearchResults","updatingSearchResults","defaultConversationsState","isShowingSearchResult","fetchedConversations","creatingConversation","updatedConversationReadStatuses","failedUpdatingConversationReadStatuses","settingConversationStatuses","setConversationStatuses","failedSetConversationStatuses","gettingDocuments","gotDocuments","failedGetDocuments","gettingReminders","gotReminders","failedGetReminders","failedGetApprovalRequest","puttingApprovalRequestAction","failedPutApprovalRequestAction","gettingConversationsSearchResults","gotConversationsSearchResults","failedGetConversationsSearchResults","conversationsSearchResults","ItemTypes","updateGettingFetched","newState","getting","fetched","getUnreadCount","messageList","unreadCount","msg","conversationAddresses","unread","updateConversations","insertConversation","conversationsReducer","displayStyle","getDisplayStyle","toLocaleLowerCase","nextConversations","newValue","conv","_conv","hasUnreads","gcState","unassignedUnreads","gcsState","gcs","aaState","new","participantIds","smrLength","grState","gr","grKeys","unshift","popped","pop","createdState","updatedConversationsViewData","SELECT_RELATIONSHIP","GETTING_GRANTS_FROM","GOT_GRANTS_FROM","GET_GRANTS_FROM_FAILED","GETTING_GRANTS_TO","GOT_GRANTS_TO","GET_GRANTS_TO_FAILED","FETCHING_RESOURCES","FETCHED_RESOURCES","FETCH_RESOURCES_FAILED","FETCHING_RESOURCE_CONFIG_SCHEMA","FETCHED_RESOURCE_CONFIG_SCHEMA","FETCH_RESOURCE_CONFIG_SCHEMA_FAILED","GETTING_RESOURCES_FROM","GOT_RESOURCES_FROM","GET_RESOURCES_FROM_FAILED","GETTING_RESOURCES_TO","GOT_RESOURCES_TO","GET_RESOURCES_TO_FAILED","FETCHING_COMPANY_RESOURCES","FETCHED_COMPANY_RESOURCES","FETCH_COMPANY_RESOURCES_FAILED","CREATING_DRAFT","CREATED_DRAFT","CREATE_DRAFT_FAILED","FORWARDING_DRAFT","FORWARDED_DRAFT","FORWARDED_DRAFT_FAILED","COMMITTING_DRAFT","COMMITTED_DRAFT","COMMIT_DRAFT_FAILED","CREATING_ENTRY","CREATED_ENTRY","CREATE_ENTRY_FAILED","FETCHING_ENTRY","GOT_ENTRY","SET_MAX_ENTRIES_LENGTH","GETTING_ATTACHMENTS","GOT_ATTACHMENTS","GET_ATTACHMENTS_FAILED","UPLOADING_DOCUMENT","UPLOADED_DOCUMENT","UPLOAD_DOCUMENT_FAILED","DELETING_ATTACHMENTS","DELETED_ATTACHMENTS","DELETE_ATTACHMENTS_FAILED","SET_MAX_ATTACHMENTS_LENGTH","ADDING_ATTACHMENT","ADDED_ATTACHMENT","ADD_ATTACHMENT_FAILED","ADDED_DOCUMENT_ATTACHMENT","GETTING_ATTACHMENT_URL","GOT_ATTACHMENT_URL","GET_ATTACHMENT_URL_FAILED","CLEAR_ATTACHMENT_URL","GETTING_ATTACHMENT_URLS","GOT_ATTACHMENT_URLS","GET_ATTACHMENT_URLS_FAILED","GETTING_ATTACHMENTS_ZIP","GOT_ATTACHMENTS_ZIP","GET_ATTACHMENTS_ZIP_FAILED","FETCHING_ENTRY_CONFIG","FETCHED_ENTRY_CONFIG","FETCH_ENTRY_CONFIG_FAILED","UPDATING_ENTRY_CONFIG","UPDATED_ENTRY_CONFIG","UPDATE_ENTRY_CONFIG_FAILED","PUTTING_CONVERSATION_REMINDER","PUT_CONVERSATION_REMINDER","FAILED_PUT_CONVERSATION_REMINDER","SET_MAX_ATTACHMENT_URLS_LENGTH","fetchResourceConfigSchema","resourceId","ledger","isFetchingResourceConfigSchema","configSchema","fetchCompanyResources","fromCompanyId","toCompanyId","resourceName","isFetchingCompanyResources","ResourcesFetchFailure","createEntryToContextGroup","withContextGroupId","creatingEntry","deleteAttachment","attachmentId","addAttachment","ledgerHash","file","uploadDocument","ENTRY_PROMISES","fetchEntryConfig","entryPerspectiveKey","isFetchingEntryConfig","rejected","FetchSettingsFailure","getGrantsFrom","gettingGrantsFrom","grantsFrom","GrantsFetchFailure","getGrantsTo","gettingGrantsTo","grantsTo","getResourcesFrom","continuation","gettingResourcesFrom","resourcesFrom","getResourcesTo","gettingResourcesTo","resourcesTo","selectRelationship","getEntries","isAR","getCompanyResources","resourceKey","fetchingCompanyResourcesFailed","companyResources","fetchResources","isFetchingResources","FetchResourcesFailure","getResourcesForPerspective","getResource","getResourceConfigSchema","fetchingResourceConfigSchemaFailed","resourceConfigSchemas","fetchEntry","isDraft","entry","entries","getEntry","setMaxEntriesLength","createDraft","forwardDraft","saveDraft","deleteDraft","commitDraft","createEntry","getEntryConfig","fetchingEntryConfigFailed","entryConfigs","updateEntryConfig","SavingSettingsFailure","addDocumentAttachment","companyDocumentId","deleteAttachments","attachmentIds","deletionPromises","fetchAttachments","attachments","gettingAttachments","getAttachments","setMaxAttachmentsLength","fetchAttachmentUrl","attachmentUrls","gettingAttachmentUrl","expiresIn","parseInt","strDate","expirationDate","add","attachmentUrl","fetchAttachmentUrls","urlWithExpiration","signedUrl","fetchAttachmentsZip","responseType","Accept","getAttachmentUrl","urlData","setMaxAttachmentUrlsLength","putReminder","reminderLedgerHash","recurrenceRule","dueDate","unsetReminder","putLedgerActionEntry","actionName","defaultCompanyState","defaultLedgerState","companyResourceNextLinks","gettingAttachmentUrls","uploadingDocument","uploadedDocument","uploadDocumentFailed","gettingAttachmentsZip","gotAttachmentsZip","getAttachmentsZipFailed","isAddingAttachment","deletingAttachments","deletedAttachments","deleteAttachmentsFailed","createdEntry","createEntryFailed","creatingDraft","createdDraft","createDraftFailed","forwardingDraft","forwardedDraft","forwardDraftFailed","committingDraft","committedDraft","commitDraftFailed","fetchingResourcesFailed","resourceMaps","isUpdatingEntryConfig","updatingEntryConfigFailed","mergeGrants","oldGrants","newGrants","gkey","targetGrant","targetResources","sourceResources","rkey","ledgerReducer","gfCompany","gtCompany","gfResources","grfCompany","grf","grfResources","grfExisting","gtResources","grtCompany","grt","grtResources","grtExisting","smeLength","fetchingEntries","nextFetchingEntries","smaLength","ga","gaf","gaState","uAttachments","gsa","gaKeys","gakPopped","smauLength","gau","gauf","gauState","gaua","gauKeys","gaukPopped","returnState","SET_COMPANY_REGISTRATION_INFO","SET_ACCT_EMAIL_CONFIG_INFO","CREATE_USER_ACCOUNT_FAILED","RESET_REGISTRATION_STATE","SETTING_EMAIL_FORWARDING_ADDRESS","EMAIL_FORWARDING_ADDRESS_SET","SET_EMAIL_FORWARDING_ADDRESS_FAILED","GETTING_INVITE_DATA","GOT_INVITE_DATA","GET_INVITE_DATA_FAILED","ACCOUNT_IS_BEING_CREATED","ACCOUNT_HAS_BEEN_CREATED","ACCOUNT_ALREADY_EXISTS","ACCOUNT_CREATION_FAILED","GETTING_AUTH_TOKEN","GOT_AUTH_TOKEN","GET_AUTH_TOKEN_FAILED","TRIGGER_REGISTRATION_ERRORS","CLEAR_REGISTRATION_ERRORS","setActiveEmailForForwarding","idTokenHeaders","emailForwardingToAddress","emailForwardingFromAddress","createCompany","accountEmail","setAuthToken","registration","appJsonHeadersWithBToken","idToken","acctCompanyPayload","companyEmail","contactNumber","inviteId","companyResult","street_address","City","locality","region","country","postal_code","website","promises","signUpCustomerId","errorResponse","errorMsgs","authorizePayload","setCompanyRegistrationInfo","createUserAccount","companyInfoObj","personalEmail","companyWebsite","streetAddress","city","zip","accountingEmail","checkIfCompanyExist","lookupResult","acctResult","resetRegistrationState","setEmailForwardingAddress","emailAlreadyExists","getInviteData","inviteCode","inviteData","invitationSignUp","createUserPayload","userInviteId","postalCode","resendEmailVerification","emailId","clearRegErrorMessages","defaultRegistrationState","isGettingInviteData","isSettingEmailForwardingAddress","isSettingUserAccount","doesAccountExists","isSignUpSuccessfulAndComplete","isGettingAuthToken","registrationReducer","UPDATE_SEARCH_TERM","FETCHING_SEARCH_RESULTS","FETCHED_SEARCH_RESULTS","FETCH_SEARCH_RESULTS_FAILED","GETTING_GLOBAL_SEARCH_RESULTS","GOT_GLOBAL_SEARCH_RESULTS","FAILED_GET_GLOBAL_SEARCH_RESULTS","PUSH_SEARCH_HISTORY_ITEM","CLEAR_SEARCH_RESULTS","debouncedSearchResultsGet","searchResults","debouncedAccountingGroupSearchResultsGet","accountingGroupId","searchContacts","updateSearchTerm","debouncedFetchSearchResults","isFetchingSearchResults","searchQuery","fetchSearchResults","debouncedFetchAccountingGroupSearchResults","gettingSearchResults","searchTermFetching","fetchAccountingGroupSearchResults","fetchNextLabel","nextLinks","pushSearchHistoryItem","clearSearchResults","defaultSearchState","fetchingSearchResultsFailed","searchHistory","searchTermFetched","displayNoResultsMessage","isShowingSearchResults","gotSearchResults","failedGetSearchResults","searchResultsCount","errMsgs","counts","values","searchReducer","FETCHING_POPULATED_TEMPLATE","FETCHED_POPULATED_TEMPLATE","FETCH_POPULATED_TEMPLATE_FAILED","CREATING_EMAIL_REPLY_TEMPLATE","CREATED_EMAIL_REPLY_TEMPLATE","CREATE_EMAIL_REPLY_TEMPLATE_FAILED","GETTING_ALL_EMAIL_REPLY_TEMPLATES","GOT_ALL_EMAIL_REPLY_TEMPLATES","GET_ALL_EMAIL_REPLY_TEMPLATES_FAILED","CREATING_COMPANY_DOCUMENT","CREATED_COMPANY_DOCUMENT","CREATE_COMPANY_DOCUMENT_FAILED","FETCHING_COMPANY_DOCUMENTS","FETCHED_COMPANY_DOCUMENTS","FETCH_COMPANY_DOCUMENTS_FAILED","IMPORTING_COMPANY_ADDRESS_BOOK","IMPORTED_COMPANY_ADDRESS_BOOK","IMPORT_COMPANY_ADDRESS_BOOK_FAILED","PUTTING_COMPANY_ADDRESS_BOOK","PUT_COMPANY_ADDRESS_BOOK","FAILED_PUT_COMPANY_ADDRESS_BOOK","POSTING_COMPANY_ADDRESS_BOOK","POST_COMPANY_ADDRESS_BOOK","FAILED_POST_COMPANY_ADDRESS_BOOK","FETCHING_COMPANY_ADDRESS_BOOK","FETCHED_COMPANY_ADDRESS_BOOK","FETCH_COMPANY_ADDRESS_BOOK_FAILED","DELETING_COMPANY_ADDRESS_BOOK_CONTACT","DELETED_COMPANY_ADDRESS_BOOK_CONTACT","DELETE_COMPANY_ADDRESS_BOOK_CONTACT_FAILED","UPDATING_COMPANY_DOCUMENT","UPDATED_COMPANY_DOCUMENT","UPDATE_COMPANY_DOCUMENT_FAILED","UPDATING_DOCUMENT_METADATA","UPDATED_DOCUMENT_METADATA","UPDATE_DOCUMENT_METADATA_FAILED","CLEAR_ALL_REPLY_TEMPLATES","GETTING_ALL_EMAIL_CONFIG_TYPES","GOT_ALL_EMAIL_CONFIG_TYPES","GET_ALL_EMAIL_CONFIG_TYPES_FAILED","SETTING_COMPANY_EMAIL_CONFIG","SET_COMPANY_EMAIL_CONFIG","SET_COMPANY_EMAIL_CONFIG_FAILED","GETTING_COMPANY_EMAIL_CONFIG","GOT_COMPANY_EMAIL_CONFIG","GET_COMPANY_EMAIL_CONFIG_FAILED","GETTING_COMPANY_EMAIL_CONFIG_VERIFICATION","GOT_COMPANY_EMAIL_CONFIG_VERIFICATION","GET_COMPANY_EMAIL_CONFIG_VERIFICATION_FAILED","GETTING_COMPANY_EMAIL_CONFIG_TYPE","GOT_COMPANY_EMAIL_CONFIG_TYPE","GET_COMPANY_EMAIL_CONFIG_TYPE_FAILED","GETTING_COMPANY_WORKFLOWS","GOT_COMPANY_WORKFLOWS","FAILED_GET_COMPANY_WORKFLOWS","PUTTING_COMPANY_WORKFLOW","PUT_COMPANY_WORKFLOW","FAILED_PUT_COMPANY_WORKFLOW","DELETING_COMPANY_WORKFLOW","DELETED_COMPANY_WORKFLOW","FAILED_DELETE_COMPANY_WORKFLOW","UPDATING_COMPANY_WORKFLOW","UPDATED_COMPANY_WORKFLOW","FAILED_UPDATE_COMPANY_WORKFLOW","GETTING_COMMUNICATION_TEMPLATES","GOT_COMMUNICATION_TEMPLATES","FAILED_GET_COMMUNICATION_TEMPLATES","POSTING_COMMUNICATION_TEMPLATE","POSTED_COMMUNICATION_TEMPLATE","FAILED_POST_COMMUNICATION_TEMPLATE","DELETING_COMMUNICATION_TEMPLATE","DELETED_COMMUNICATION_TEMPLATE","FAILED_DELETE_COMMUNICATION_TEMPLATE","GETTING_CUSTOMER_GROUPS","GOT_CUSTOMER_GROUPS","FAILED_GET_CUSTOMER_GROUPS","POSTING_CUSTOMER_GROUP","POSTED_CUSTOMER_GROUP","FAILED_POST_CUSTOMER_GROUP","DELETING_CUSTOMER_GROUP","DELETED_CUSTOMER_GROUP","FAILED_DELETE_CUSTOMER_GROUP","GETTING_CUSTOMER_GROUPS_FILTERS","GOT_CUSTOMER_GROUPS_FILTERS","FAILED_GET_CUSTOMER_GROUPS_FILTERS","POSTING_CUSTOMER_GROUPS_PREVIEW","POSTED_CUSTOMER_GROUPS_PREVIEW","FAILED_POST_CUSTOMER_GROUPS_PREVIEW","GETTING_CUSTOMERS","GOT_CUSTOMERS","FAILED_GET_CUSTOMERS","UPDATE_CUSTOMER_GROUPS_SORT","CLEAR_CUSTOMERS_SEARCH_RESULTS","DISPLAY_CUSTOMERS_SEARCH_RESULTS","FETCHING_CUSTOMERS_SEARCH_RESULTS","FETCHED_CUSTOMERS_SEARCH_RESULTS","FETCH_CUSTOMERS_SEARCH_RESULTS_FAILED","GETTING_COMMUNICATION_TEMPLATE_DESTINATIONS","GOT_COMMUNICATION_TEMPLATE_DESTINATIONS","FAILED_GET_COMMUNICATION_TEMPLATE_DESTINATIONS","GETTING_COMMUNICATION_TEMPLATE_SNIPPETS","GOT_COMMUNICATION_TEMPLATE_SNIPPETS","FAILED_GET_COMMUNICATION_TEMPLATE_SNIPPETS","GETTING_COMMUNICATION_TEMPLATE_ATTACHMENT","GOT_COMMUNICATION_TEMPLATE_ATTACHMENT","FAILED_GET_COMMUNICATION_TEMPLATE_ATTACHMENT","UPDATE_COMMUNICATION_TEMPLATES_SORT","GETTING_EMAIL_CONFIG_TEST","GOT_EMAIL_CONFIG_TEST","FAILED_GET_EMAIL_CONFIG_TEST","CLEAR_MANAGE_IS_SET_DATA","fetchCompanyAddressBook","isFetchingCompanyAddressBook","addresses","getAllCompanyReplyTemplates","allCompanyReplyTemplatesIsFetched","fetchAllCompanyReplyTemplates","allCompanyReplyTemplates","isGettingAllEmailReplyTemplates","companyReplyTemplates","updateDocumentMetadata","metadata","fetchCompanyDocuments","isFetchingCompanyDocuments","companyDocuments","getCompanyEmailConfigVerification","isCurrentEmailConfigVerified","deleteCommunicationTemplate","emailTemplateKey","communicationTemplates","FailedDeleteCommunicationTemplate","debouncedCustomersSearchResultsFetch","postCommunicationTemplateAttachment","deleteCommunicationTemplateAttachment","attachmentName","getEmailConfigTestStatus","accountingGroupEmailConfigTestStatus","testEmailConfig","emailConfigTest","createEmailReplyTemplate","payloadObj","ResourceId","deleteCompanyReplyTemplate","perspectiveEmailTemplateId","clearAllReplyTemplates","importCompanyAddressBook","contactsCSV","isImportingCompanyAddressBook","putAddressBookContact","puttingAddressBookContact","postAddressBookContact","addressBookContactId","postingAddressBookContact","getCompanyAddressBook","fetchingCompanyAddressBookFailed","companyAddressBook","contextGroup","deleteCompanyAddressBookContact","createCompanyDocument","req","deleteCompanyDocument","updateCompanyDocument","getCompanyDocuments","fetchingCompanyDocumentsFailed","fetchPopulatedTemplate","fetchAllEmailConfigTypes","isGettingAllEmailConfigTypes","allEmailConfigTypes","getAllEmailConfigTypes","fetchCompanyEmailConfigData","isGettingCompanyConfigData","companyCurrentConfig","getCompanyEmailConfigData","companiesEmailConfigData","fetchCompanyEmailConfigType","isGettingCompanyEmailConfigType","currentCompanyEmailConfig","configurationData","companyEmailConfigType","reduce","eConfig","emailConfigurationTypeId","getCompanyEmailConfigType","companiesEmailConfigType","setCompanyEmailConfig","fetchCompanyWorkflows","putCompanyWorkflow","description","deleteCompanyWorkflow","updateCompanyWorkflow","newJson","getCommunicationTemplates","gettingCommunicationTemplates","templates","emailTemplateStatus","voiceMessageStatus","smsStatus","FailedGetCommunicationTemplates","postCommunicationTemplate","attachmentsToUpload","attachmentsToDelete","attachmentUploads","attachmentDeletions","FailedPostCommunicationTemplate","getCustomerGroups","manageState","customerGroupsSortBy","customerGroupsSortDirection","gettingCustomerGroups","customerGroups","group","companyCount","FailedGetAccountGroups","postCustomerGroup","customerGroupKey","FailedSaveAccountGroup","deleteCustomerGroup","FailedDeleteAccountGroup","getCustomerGroupsFilters","filters","FailedGetAccountGroupFilters","postCustomerGroupsPreview","customerGroupPreview","updateCustomerGroupsSort","getCustomers","fetchCustomersSearchResults","encodeURI","displayCustomersSearchResults","clearCustomersSearchResults","getCommunicationTemplateDestinations","destinations","FailedGetCommunicationTemplateDestinations","getCommunicationTemplateSnippets","snippets","FailedGetCommunicationTemplateSnippets","updateCommunicationTemplatesSort","getCommunicationTemplateAttachment","gettingCommunicationTemplateAttachment","clearManageIsSetData","nameOfStateVar","getEmailConfigTest","accountingGroupEmailConfigTestValue","defaultManageState","isCreatingEmailReplyTemplate","isCreatingCompanyDocument","importingCompanyAddressBookFailed","failedPutAddressBookContact","postedAddressBookContact","failedPostAddressBookContact","deletingCompanyAddressBookContact","deletedCompanyAddressBookContact","failedDeletingCompanyAddressBookContact","isSettingCompanyEmailConfigData","newCompanyEmailConfigDataIsSet","isGettingCurrentEmailConfigVerification","gettingWorkflows","gotWorkflows","failedToGetWorkflows","puttingWorkflow","putWorkflow","failedToPutWorkflow","deletingWorkflow","deletedWorkflow","failedToDeleteWorkflow","updatingWorkflow","updatedWorkflow","failedToUpdateWorkflow","gotCommunicationTemplates","failedGetCommunicationTemplates","communicationTemplateTypeToTemplate","voice","communicationTemplatesSortDirection","communicationTemplatesSortBy","postingCommunicationTemplate","postedCommunicationTemplate","failedPostCommunicationTemplate","deletingCommunicationTemplate","deletedCommunicationTemplate","failedDeleteCommunicationTemplate","gotCustomerGroups","failedGetCustomerGroups","postingCustomerGroup","postedCustomerGroup","failedPostCustomerGroup","deletingCustomerGroup","deletedCustomerGroup","failedDeleteCustomerGroup","gettingCustomerGroupsFilters","gotCustomerGroupsFilters","failedGetCustomerGroupsFilters","customerGroupsFilters","postingCustomerGroupsPreview","postedCustomerGroupsPreview","failedPostCustomerGroupsPreview","gettingCustomers","gotCustomers","failedGetCustomers","customersSearchTerm","customersSearchResults","fetchingCustomersSearchResults","fetchedCustomersSearchResults","failedFetchCustomersSearchResults","gettingCommunicationTemplateDestinations","gotCommunicationTemplateDestinations","failedGetCommunicationTemplateDestinations","communicationTemplateDestinations","gettingCommunicationTemplateSnippets","gotCommunicationTemplateSnippets","failedGetCommunicationTemplateSnippets","communicationTemplateSnippets","gotCommunicationTemplateAttachment","failedGetCommunicationTemplateAttachment","manageReducer","GET_ALL_COMPANY_EMAIL_REPLY_TEMPLATES_FAILED","workflow","asJson","emailTemplates","phoneTemplates","textTemplates","newDestinations","destination","templateType","newSnippets","snippet","INVITING_COMPANY_USER","INVITED_COMPANY_USER","INVITE_COMPANY_USER_FAILED","RESET_INVITE_COMPANY_USER","FETCHING_COMPANY_USER_INVITES","FETCHED_COMPANY_USER_INVITES","FETCH_COMPANY_USER_INVITES_FAILED","RESEND_COMPANY_USER_INVITE","RESENT_COMPANY_USER_INVITE","RESEND_COMPANY_USER_INVITE_FAILED","ACCEPTING_COMPANY_INVITE","ACCEPTED_COMPANY_INVITE","ACCEPT_COMPANY_INVITE_FAILED","REJECTING_COMPANY_INVITE","REJECTED_COMPANY_INVITE","REJECT_COMPANY_INVITE_FAILED","inviteCompanyUser","defaultPerspective","customMessage","fetchCompanyUserInvites","invites","rejectCompanyInvite","resetInviteCompanyUser","resendCompanyUserInvite","invite","revokeCompanyUserInvite","acceptCompanyInvite","defaultInviteSettings","invitingUser","invitedUser","inviteFailed","resendingInvite","resentInvite","resendInviteFailed","fetchingCompanyUserInvites","fetchedCompanyUserInvites","fetchCompanyUserInvitesFailed","acceptingCompanyInvite","acceptedCompanyInvite","acceptCompanyInviteFailed","rejectingCompanyInvite","rejectedCompanyInvite","rejectCompanyInviteFailed","updateResendStatus","resending","resent","failed","inviteReducer","axios","GETTING_ALL_SUPPORTED_CONNECTORS","GOT_ALL_SUPPORTED_CONNECTORS","GET_ALL_SUPPORTED_CONNECTORS_FAILED","GETTING_CONNECTOR_VERSION_DATA","GOT_CONNECTOR_VERSION_DATA","GET_CONNECTOR_VERSION_DATA_FAILED","SETTING_DEFAULT_CONNECTOR_PERMISSIONS","SET_DEFAULT_CONNECTOR_PERMISSIONS","SET_DEFAULT_CONNECTOR_PERMISSIONS_FAILED","GETTING_COMPANY_GRANTED_PERMISSIONS","GOT_COMPANY_GRANTED_PERMISSIONS","GET_COMPANY_GRANTED_PERMISSIONS_FAILED","TOGGLE_CONNECTOR_REGISTRATION_MODAL","START_CUSTOM_CONNECTOR_REGISTRATION","END_CUSTOM_CONNECTOR_REGISTRATION","GETTING_CONNECTOR_SPECIFIC_REQUEST","GOT_CONNECTOR_SPECIFIC_REQUEST","GET_CONNECTOR_SPECIFIC_REQUEST_FAILED","FETCHING_CONNECTOR_REQUESTS","FETCHED_CONNECTOR_REQUESTS","FETCH_CONNECTOR_REQUESTS_FAILED","FETCHING_CONNECTOR_RESOURCES","FETCHED_CONNECTOR_RESOURCES","FETCH_CONNECTOR_RESOURCES_FAILED","CREATING_CONNECTOR_REQUEST","CREATED_CONNECTOR_REQUEST","CREATE_CONNECTOR_REQUEST_FAILED","FETCHING_COMPANY_CONNECTORS","FETCHED_COMPANY_CONNECTORS","FETCH_COMPANY_CONNECTORS_FAILED","FETCHING_CONNECTOR_ACTIONS","FETCHED_CONNECTOR_ACTIONS","FETCH_CONNECTOR_ACTIONS_FAILED","DISCONNECTING_CONNECTOR","DISCONNECTED_CONNECTOR","DISCONNECT_CONNECTOR_FAILED","DELETING_COMPANY_PERMISSIONS","DELETED_COMPANY_PERMISSIONS","DELETE_COMPANY_PERMISSIONS_FAILED","DELETING_CONNECTOR_CONFIGURATION","DELETED_CONNECTOR_CONFIGURATION","DELETE_CONNECTOR_CONFIGURATION_FAILED","FETCHING_CONNECTOR_CONFIGURATION","FETCHED_CONNECTOR_CONFIGURATION","FETCH_CONNECTOR_CONFIGURATION_FAILED","UPDATING_CONNECTOR_CONFIGURATION","UPDATED_CONNECTOR_CONFIGURATION","UPDATE_CONNECTOR_CONFIGURATION_FAILED","PUTTING_CONNECTOR_CONFIGURATION","PUT_CONNECTOR_CONFIGURATION","FAILED_PUT_CONNECTOR_CONFIGURATION","PUTTING_CONNECTOR_PERMISSIONS","PUT_CONNECTOR_PERMISSIONS","FAILED_PUT_CONNECTOR_PERMISSIONS","CLEAR_SPECIFIC_CONNECTOR_DATA","fetchCompanyConnectors","isFetchingCompanyConnectors","companyConnectors","companyHasERPConnector","isInternal","getRegisteredERPConnectors","fetchedCompanyConnectors","fetchingCompanyConnectorsFailed","fetchConnectorResources","connectorVersionId","isFetchingConnectorResources","connectorResources","fetchConnectorVersionData","connectorId","isGettingConnectorVersionData","connectorVersionData","deleteCompanyPermissions","onBehalfOfCompanyId","permittedCompanyId","deleteConnectorConfiguration","CONNECTOR_SPECIFIC_REQUEST_PROMISE","fetchAllConnectors","isGettingAllSupportedConnectors","allSupportedConnectors","getConnectorIdFromVersion","cVersion","getConnectorFromName","getPermittedERPConnector","isHidden","hasRegisteredERPConnectors","fetchConnectorRequests","isFetchingConnectorRequests","connectorRequests","createConnectorRequest","isCreatingConnectorRequest","getConnectorResources","connectorResourcesIsFetched","fetchConnectorActions","isFetchingConnectorActions","connectorActions","getConnectorActionsByResourceIds","resourceIds","setConnectorPermissions","permissions","exception","setDefaultConnectorPermissions","connectorCompanyId","defaultPermissions","isSettingDefaultConnectorPermissions","companyPermissions","connectorPermissions","actionId","permittedSource","fetchConnectorConfiguration","fetchingConnectorConfiguration","connectorConfig","putConnectorConfiguration","isUpdatingConnectorConfig","updateConnectorConfiguration","getLatestConnectorVersion","connectorVersionDataIsFetched","createDate","disconnectConnector","isDisconnectingConnector","fetchCompanyGrantedPermissions","isGettingCompanyGrantedPermissions","permissionKeys","permissionsObj","companyGrantedPermissions","toggleConnectorRegModal","startCustomConnectorRegistration","connectorInfo","endCustomConnectorRegistration","specificConnecterReq","reqType","reqParams","currentParams","currentlyRunningRequests","runningParams","urlBase","connectorSuccessResponse","connectorFailResponse","isSpecificConnectorReqRunning","getSpecificConnectorReqData","responseState","specificConnectorResponseData","clearSpecificConnectorReqData","newSCRD","getSpecificSupportedConnector","connectorData","getEmailConnectorId","defaultConnectorState","allSupportedConnectorsIsFetched","fetchingConnectorRequestsFailed","createdConnectorRequest","createdConnectorRequests","disconnectingConnector","disconnectedConnector","disconnectConnectorFailed","isDeletingCompanyPermssions","deletingCompanyPermissionsFailed","isFetchingConnectorConfiguration","fetchingConnectorConfigurationFailed","connectorConfigs","isUpdatingConnectorConfiguration","isDeletingConnectorConfiguration","deletingConnectorConfigurationFailed","fetchedConnectorActions","companyGrantedPermissionsIsFetched","isConnectorRegModalVisible","customConnectorInfo","isCustomConnectorRegInProgress","noCompanySelected","puttingConnectorConfig","putConnectorConfig","failedPutConnectorConfig","puttingConnectorPermissions","putConnectorPermissions","failedPutConnectorPermissions","filterCompletedRequests","objectToFilter","requests","updateSpecificConnectorResponseData","cSRD","oppositeResponseState","responseData","connectorReducer","isCustomRegInProgress","runningRequests","DELET_COMPANY_PERMISSIONS_FAILED","newFetchingState","newFetchingState1","updatingConnectorConfigurationFailed","DELETED_CONNECTOR_CONFIGURATION_FAILED","SET_SELECTED_PERSPECTIVE_ID","FETCHING_PERSPECTIVES","FETCHED_PERSPECTIVES","FETCH_PERSPECTIVES_FAILED","FETCHING_COMPANY_PERSPECTIVES","FETCHED_COMPANY_PERSPECTIVES","FETCH_COMPANY_PERSPECTIVES_FAILED","CREATING_COMPANY_PERSPECTIVE","CREATED_COMPANY_PERSPECTIVE","CREATE_COMPANY_PERSPECTIVE_FAILED","DELETING_COMPANY_PERSPECTIVE","DELETED_COMPANY_PERSPECTIVE","FAILED_DELETE_COMPANY_PERSPECTIVE","UPDATED_COMPANY_PERSPECTIVE","fetchPerspectives","fetchCompanyPerspectives","isFetchingCompanyPerspectives","companyPerspectives","getCompanyPerspectives","fetchingCompanyPerspectivesFailed","setSelectedPerspectiveId","deleteCompanyPerspective","getCompanyPerspectiveById","companyPerspectiveId","createCompanyPerspective","isCreatingCompanyPerspective","PerspectiveName","updateCompanyPerspective","getPerspectiveById","fetchingPerspectives","p","getPerspectiveByName","perspectiveName","defaultPerspectivesState","fetchingPerspectivesFailed","companyPerspectivesMap","creatingCompanyPerspectiveFailed","createdPerspective","deletingCompanyPerspective","deletedCompanyPerspective","failedDeleteCompanyPerspective","selectedPerspectiveId","selectedPerspective","selectedPerspectiveType","perspectivesReducer","modifiedDate","fetchingCompanyPerspectiveFailed","isFetchingCompanyPerspective","idx","updated","parentPerspective","FETCHING_REPORT_DATA","FETCHED_REPORT_DATA","FETCH_REPORT_DATA_FAILED","CHANGE_RANGE_TYPE","FETCHING_REPORT_USERS","FETCHED_REPORT_USERS","FETCH_REPORT_USERS_FAILED","getReportsData","reportType","reportTypeEndpoint","getEndPointForReportType","rangeType","fromAndToDate","getTimesFromRangeType","fromDate","toDate","reportData","fetchReportsData","getstate","dateStart","dateEnd","subtract","startOf","changeRangeType","getReportUsers","guids","reportUsers","reportUserIds","userIdMap","getReportUserDisplayName","fetchedReportUserIds","refreshReportData","defaultReportsSettings","fetchingReport","fetchedReport","failedToFetchReport","fetchingReportUsers","fetchedReportUsers","failedToFetchReportUsers","reportsReducer","hasNetworkError","generalReducer","defaultModalState","showModal","showFlyout","showNotification","modalReducer","flyoutTynotificationTypepe","GETTING_CONTEXT_GROUPS","GOT_CONTEXT_GROUPS","GET_CONTEXT_GROUPS_FAILED","GETTING_CONTEXT_GROUPS_STATS","GOT_CONTEXT_GROUPS_STATS","GET_CONTEXT_GROUPS_STATS_FAILED","UPDATE_PERSPECTIVE_CONTEXT_GROUPS_STATS","MOVING_CONVERSATION_TO_CONTEXT_GROUP","MOVED_CONVERSATION_TO_CONTEXT_GROUP","MOVE_CONVERSATION_TO_CONTEXT_GROUP_FAILED","BULK_MOVING_CONVERSATIONS_TO_CONTEXT_GROUP","BULK_MOVED_CONVERSATIONS_TO_CONTEXT_GROUP","BULK_MOVE_CONVERSATIONS_TO_CONTEXT_GROUP_FAILED","SET_CONTEXT_GROUPS_SORT_BY","SET_CONTEXT_GROUPS_SORT_DIRECTION","SET_CONTEXT_GROUPS_SORT","POSTING_CONTEXT_GROUP","POSTED_CONTEXT_GROUP","POST_CONTEXT_GROUP_FAILED","SortBy","SortDirection","fetchContextGroups","contextGroups","gettingContextGroups","stats","computeStatsForContextGroups","unassignedActive","mineActive","assignedActive","waitingResponse","summaryCountsMap","badgeTypesMap","isSpam","ac","activeCounts","assignedToMe","assignedToOthers","waitingForResponse","hasTasksForUser","companyLocalKey","snoozed","activities","summaryCounts","badgeTypes","displayActiveIndicator","postContextGroup","contextGroupId","postContent","fetchContextGroupsStats","flat","displayPerspectives","dataMap","getContextGroupsMaps","gotContextGroups","contextGroupsMaps","failedGetContextGroups","refreshContextGroups","setContextGroupsSortBy","setContextGroupsSortDirection","setContextGroupsSort","moveConversationToContextGroup","remapIdentifiers","bulkMoveConversationsToContextGroup","getContextGroupsSortByDisplayName","contextGroupsSortBy","contextGroupsSortDirection","NameAscending","NameDescending","SmallestActiveCount","LargestActiveCount","OldestToNewest","NewestToOldest","Hidden","getContextGroupName","includeId","unknownValue","getContextGroupNameFromCompanyId","hideContextGroup","unhideContextGroup","isCompanyNew","currentCompanyId","isNew","isContextGroupNew","movingConversation","movedConversation","moveConversationFailed","bulkMovingConversation","bulkMovedConversation","bulkMoveConversationFailed","contextGroupsStats","compareActiveCounts","aCount","bCount","sortContextGroupsBy","givenSortDirection","mostRecent","contextGroupsReducer","sortByValue","sortDirectionValue","sortValue","SET_WITH_COMPANY_ID","FETCHING_ALL_INVOICES","FETCHED_ALL_INVOICES","FETCH_ALL_INVOICES_FAILED","FETCHING_CLOSED_INVOICES","FETCHED_CLOSED_INVOICES","FETCH_CLOSED_INVOICES_FAILED","FETCHING_CLOSED_INVOICES_TEMPLATE","FETCHED_CLOSED_INVOICES_TEMPLATE","FETCH_CLOSED_INVOICES_TEMPLATE_FAILED","UPDATE_CLOSED_INVOICES_SORT","UPDATE_CLOSED_INVOICES_DATE","FETCHING_OPEN_INVOICES","FETCHED_OPEN_INVOICES","FETCH_OPEN_INVOICES_FAILED","FETCHING_OPEN_INVOICES_TEMPLATE","FETCHED_OPEN_INVOICES_TEMPLATE","FETCH_OPEN_INVOICES_TEMPLATE_FAILED","UPDATE_OPEN_INVOICES_SORT","UPDATE_OPEN_INVOICES_DATE","UPDATE_OPEN_INVOICES_UPPER_TABLE_SORT","FETCHING_PAYMENTS","FETCHED_PAYMENTS","FETCH_PAYMENTS_FAILED","FETCHING_UNAPPLIED_PAYMENTS","FETCHED_UNAPPLIED_PAYMENTS","FETCH_UNAPPLIED_PAYMENTS_FAILED","UPDATE_UNAPPLIED_PAYMENTS_SORT","FETCHING_PAYMENTS_TEMPLATE","FETCHED_PAYMENTS_TEMPLATE","FETCH_PAYMENTS_TEMPLATE_FAILED","UPDATE_PAYMENTS_SORT","UPDATE_PAYMENTS_DATE","FETCHING_PAYMENT_INFO","FETCHED_PAYMENT_INFO","FETCH_PAYMENT_INFO_FAILED","MAKING_PAYMENT","MADE_PAYMENT","MAKE_PAYMENT_FAILED","ADDING_PAYMENT_METHOD","ADDED_PAYMENT_METHOD","ADD_PAYMENT_METHOD_FAILED","DELETING_PAYMENT_METHOD","DELETED_PAYMENT_METHOD","DELETE_PAYMENT_METHOD_FAILED","FETCHING_TABLE_EXPORT","FETCHED_TABLE_EXPORT","FETCH_TABLE_EXPORT_FAILED","FETCHING_CURRENCIES","FETCHED_CURRENCIES","FETCH_CURRENCIES_FAILED","SET_SELECTED_CURRENCY","FETCHING_CURRENCY_STATS","FETCHED_CURRENCY_STATS","FETCH_CURRENCY_STATS_FAILED","FETCHING_STATEMENTS_SEARCH_RESULTS","FETCHED_STATEMENTS_SEARCH_RESULTS","FETCH_STATEMENTS_SEARCH_RESULTS_FAILED","SET_OPEN_INVOICES_TO_SEARCH_RESULT","SET_CLOSED_INVOICES_TO_SEARCH_RESULT","SET_PAYMENTS_TO_SEARCH_RESULT","POSTING_AUTO_PAY_CONFIG","POSTED_AUTO_PAY_CONFIG","FAILED_POST_AUTO_PAY_CONFIG","SET_SELECTED_KEYS","CLEAR_STATEMENTS_SEARCH_RESULTS","debouncedSearchResultsFetch","fetchOpenInvoices","selectAll","allAccountsSelected","statements","isFetchingOpenInvoices","openInvoicesSortBy","openInvoicesSortDirection","selectedCurrency","totalBalance","pastDueCount","setSelectedCurrency","fetchCurrencyStats","currencies","fetchingCurrencyStats","openInvoicesCurrencyStats","currencyMap","closedInvoicesCurrencyStats","paymentsInvoicesCurrencyStats","paymentsCurrencyStats","GetCurrenciesFailure","setWithCompanyId","clearStatementsSearchResults","fetchStatementSearchResults","setOpenInvoicesToSearchResult","invoices","setClosedInvoicesToSearchResult","closedInvoices","setPaymentsToSearchResult","payments","fetchAllInvoices","totalAmount","fetchClosedInvoices","isFetchingClosedInvoices","closedInvoicesSortBy","closedInvoicesSortDirection","totalAmountCurrentYear","totalAmountPastYear","fetchNextClosedInvoices","closedInvoicesNextLink","isNextLink","fetchClosedInvoicesTemplate","invoiceIds","updateClosedInvoicesSort","updateClosedInvoicesDate","dueByFromDate","dueByToDate","setSelectedKeys","rows","refreshOpenInvoices","openInvoicesSkip","fetchNextOpenInvoices","openInvoicesNextLink","fetchOpenInvoicesTemplate","updateOpenInvoicesSort","updateOpenInvoicesUpperTableSort","updateOpenInvoicesDate","fetchPaymentInfo","isFetchingPaymentInfo","paymentInfo","PaymentInfoFetchError","postAutoPayConfig","postingAutoPayConfig","AutoPayConfigurationError","fetchPayments","isFetchingPayments","paymentsSortBy","paymentsSortDirection","fetchUnappliedOrPendingPayments","isFetchingUnappliedOrPendingPayments","unappliedPaymentsSortBy","unappliedPaymentsSortDirection","unappliedOrPendingPayments","fetchNextPayments","paymentsNextLink","fetchPaymentsTemplate","paymentIds","isFetchingPaymentsTemplate","updatePaymentsSort","updatePaymentsDate","updateUnappliedPaymentsSort","makePayment","isMakingPayment","MakePaymentError","addOrUpdatePaymentMethod","isAddingPaymentMethod","dispatchAction","isDefault","paymentMethodId","setAsDefault","deletePaymentMethod","DeletePaymentMethodError","fetchTableExport","tableName","onIds","fetchingExportTable","fromDueDate","toDueDate","ExportTableError","fetchCurrencies","fetchingCurrencies","defaultStatementsState","fetchingAllInvoices","fetchedAllInvoices","fetchAllInvoicesFailed","closedInvoicesCount","closedInvoicesSkip","closedTotalAmount","closedTotalAmountCurrentYear","closedTotalAmountPastYear","closedFromDate","closedToDate","closedFromDueDate","closedToDueDate","closedInvoicesCurrency","fetchingClosedInvoicesFailed","isFetchingClosedInvoicesTemplate","fetchedClosedInvoicesTemplate","fetchingClosedInvoicesTemplateFailed","openInvoicesCount","openTotalAmount","openPastDueCount","openFromDate","openToDate","openFromDueDate","openToDueDate","openInvoicesCurrency","fetchingOpenInvoicesFailed","isFetchingOpenInvoicesTemplate","fetchedOpenInvoicesTemplate","fetchingOpenInvoicesTemplateFailed","paymentsCount","paymentsSkip","paymentTotalAmount","paymentsTotalAmountCurrentYear","paymentsTotalAmountPastYear","paymentsTotalUnapplied","paymentsTotalUnappliedOrPending","paymentFromDate","paymentToDate","paymentsCurrency","fetchingPaymentsFailed","unappliedOrPendingPaymentsCount","unappliedOrPendingPaymentsSkip","fetchingUnappliedOrPendingPaymentsFailed","fetchingStatementsSearchResults","fetchedStatementsSearchResults","failedFetchStatementsSearchResults","fetchedPaymentsTemplate","fetchingPaymentsTemplateFailed","fetchedPaymentInfo","fetchingPaymentInfoFailed","postedAutoPayConfig","failedPostAutoPayConfig","makingPaymentFailed","addingPaymentMethodFailed","fetchedExportTable","failedFetchExportTable","fetchedCurrencies","failedFetchCurrencies","fetchedCurrencyStats","failedFetchCurrencyStats","allKeys","allRows","selectedKeys","statementsReducer","failedFetchSearchResults","nextClosedState","FETCHING_CLOSED_INVOICES_TEMPLATE_FAILED","modifyKeys","modifyRows","newSelectedKeys","nextOpenState","FETCHING_OPEN_INVOICES_TEMPLATE_FAILED","nextPaymentsState","paymentsTotalAmount","nextState","withCompanyPaymentMethods","paymentMethods","pMethod","isDeletingPaymentMethod","deletingPaymentMethodFailed","FETCHING_PAYMENTS_TEMPLATE_FAILED","paymentsFromDate","paymentsToDate","selectedCurrencyUpdate","FETCHING_SEQUENCES","FETCHED_SEQUENCES","FETCH_SEQUENCES_FAILED","FETCHING_SEQUENCE_EVENTS","FETCHED_SEQUENCE_EVENTS","FETCH_SEQUENCE_EVENTS_FAILED","FETCHING_SEQUENCE_SAMPLES","FETCHED_SEQUENCE_SAMPLES","FETCH_SEQUENCE_SAMPLES_FAILED","FETCHING_TRIGGERS","FETCHED_TRIGGERS","FETCH_TRIGGERS_FAILED","FETCHING_SEQUENCE_ACTIONS","FETCHED_SEQUENCE_ACTIONS","FETCH_SEQUENCE_ACTIONS_FAILED","POSTING_SEQUENCE","POSTED_SEQUENCE","POST_SEQUENCE_FAILED","fetchSequenceEvents","sequences","isFetchingSequenceEvents","sequenceEventsSortBy","sequenceEventsSortDirection","eventData","fetchSequences","isFetchingSequences","postSequence","sequence","fetchSequenceSamples","isFetchingSequenceSamples","samples","fetchTriggers","isFetchingTriggers","triggers","fetchSequenceActions","isFetchingSequenceActions","sequenceActions","postSequenceStepDescription","reqBody","defaultSequencesState","fetchingSequencesFailed","fetchedSequences","sequenceMaps","sequencesSortBy","sequencesSortDirection","fetchingSequenceEventsFailed","fetchedSequenceEvents","sequenceEvents","activeSequenceCount","automatedTasksTodayCount","automatedTasksMonthCount","manualTasksTodayCount","manualTasksMonthCount","sequenceEventsNextLink","sequenceEventsCount","fetchingSequenceSamplesFailed","fetchedSequenceSamples","sequenceSamples","sequenceSampleMaps","fetchingTriggersFailed","fetchedTriggers","triggerMaps","fetchingSequenceActionsFailed","fetchedSequenceActions","sequenceActionMaps","sequencesReducer","customerSequenceId","isPostingSequence","isActive","nextSequences","history","rest","sample","trigger","triggerID","sequenceAction","activityID","GETTING_NETWORK_ACCOUNT_LIST","GOT_NETWORK_ACCOUNT_LIST","FAILED_GET_NETWORK_ACCOUNT_LIST","GETTING_NETWORK_ACCOUNT_SEARCH_RESULTS","GOT_NETWORK_ACCOUNT_SEARCH_RESULTS","FAILED_GET_NETWORK_ACCOUNT_SEARCH_RESULTS","SET_NETWORK_ACCOUNT_LIST_LOADED_PAGE","GETTING_NETWORK_CONTACT_LIST","GOT_NETWORK_CONTACT_LIST","FAILED_GET_NETWORK_CONTACT_LIST","GETTING_NETWORK_CONTACT_SEARCH_RESULTS","GOT_NETWORK_CONTACT_SEARCH_RESULTS","FAILED_GET_NETWORK_CONTACT_SEARCH_RESULTS","SET_NETWORK_CONTACT_LIST_LOADED_PAGE","GETTING_CUST_CONTACT","GOT_CUST_CONTACT","FAILED_GET_CUST_CONTACT","POSTING_CUST_CONTACT","POSTED_CUST_CONTACT","FAILED_POST_CUST_CONTACT","POSTING_CUST_CONTACT_PICTURE","POSTED_CUST_CONTACT_PICTURE","FAILED_POST_CUST_CONTACT_PICTURE","GETTING_CUST_ACCOUNT","GOT_CUST_ACCOUNT","FAILED_GET_CUST_ACCOUNT","GETTING_CUST_ACCOUNT_DOCUMENTS","GOT_CUST_ACCOUNT_DOCUMENTS","FAILED_GET_CUST_ACCOUNT_DOCUMENTS","GETTING_CUST_ACCOUNT_CONTACTS","GOT_CUST_ACCOUNT_CONTACTS","FAILED_GET_CUST_ACCOUNT_CONTACTS","POSTING_CUST_ACCOUNT","POSTED_CUST_ACCOUNT","FAILED_POST_CUST_ACCOUNT","POSTING_CUST_ACCOUNT_PICTURE","POSTED_CUST_ACCOUNT_PICTURE","FAILED_POST_CUST_ACCOUNT_PICTURE","GETTING_OPEN_ONBOARDING_REQUESTS","GOT_OPEN_ONBOARDING_REQUESTS","FAILED_GET_OPEN_ONBOARDING_REQUESTS","GETTING_OPEN_PROFILE_UPDATE_REQUESTS","GOT_OPEN_PROFILE_UPDATE_REQUESTS","FAILED_GET_OPEN_PROFILE_UPDATE_REQUESTS","GETTING_ACCOUNT_PROFILE","GOT_ACCOUNT_PROFILE","GET_ACCOUNT_PROFILE_FAILED","GETTING_ACCOUNT_DOCUMENTS","GOT_ACCOUNT_DOCUMENTS","GET_ACCOUNT_DOCUMENTS_FAILED","GETTING_ACCOUNT_CONTACTS","GOT_ACCOUNT_CONTACTS","GET_ACCOUNT_CONTACTS_FAILED","GETTING_CONTACT_PROFILE","GOT_CONTACT_PROFILE","GOT_CONTACT_PROFILE_FAILED","POSTING_ACCOUNT_PROFILE_UPDATE_REQUEST","POSTED_ACCOUNT_PROFILE_UPDATE_REQUEST","FAILED_POST_ACCOUNT_PROFILE_UPDATE_REQUEST","POSTING_CONTACT_PROFILE_UPDATE_REQUEST","POSTED_CONTACT_PROFILE_UPDATE_REQUEST","FAILED_POST_CONTACT_PROFILE_UPDATE_REQUEST","GETTING_HEADER_INFO","GOT_HEADER_INFO","FAILED_GET_HEADER_INFO","GETTING_CUST_ACCOUNT_SETTINGS","GOT_CUST_ACCOUNT_SETTINGS","FAILED_GET_CUST_ACCOUNT_SETTINGS","POSTING_CUST_ACCOUNT_SETTINGS","POSTED_CUST_ACCOUNT_SETTINGS","FAILED_POST_CUST_ACCOUNT_SETTINGS","GETTING_NETWORK_ACTIVITIES","GOT_NETWORK_ACTIVITIES","FAILED_GET_NETWORK_ACTIVITIES","GETTING_NOTES","GOT_NOTES","FAILED_GET_NOTES","POSTING_NOTES","POSTED_NOTES","FAILED_POST_NOTES","DELETING_NOTE","DELETED_NOTE","FAILED_DELETE_NOTE","GETTING_SHARE_FLYOUT_MESSAGE","GOT_SHARE_FLYOUT_MESSAGE","FAILED_GET_SHARE_FLYOUT_MESSAGE","GETTING_SHARE_LINK","GOT_SHARE_LINK","FAILED_GET_SHARE_LINK","POSTING_SHARE_FLYOUT","POSTED_SHARE_FLYOUT","FAILED_POST_SHARE_FLYOUT","UPLOADING_ACCOUNT_DOCUMENT","UPLOADED_ACCOUNT_DOCUMENT","FAILED_UPLOAD_ACCOUNT_DOCUMENT","POSTING_MY_PROFILE_PICTURE","POSTED_MY_PROFILE_PICTURE","FAILED_POST_MY_PROFILE_PICTURE","GETTING_SUBSIDIARY_LIST","GOT_SUBSIDIARY_LIST","FAILED_GET_SUBSIDIARY_LIST","UPDATING_CONTACT_PRIVACY","UPDATED_CONTACT_PRIVACY","FAILED_UPDATE_CONTACT_PRIVACY","ADDING_CONTACT","ADDED_CONTACT","FAILED_ADD_CONTACT","MARKING_CONTACT_AS_PRIMARY","MARKED_CONTACT_AS_PRIMARY","FAILED_MARK_CONTACT_AS_PRIMARY","ARCHIVING_ACCOUNT","ARCHIVED_ACCOUNT","FAILED_ARCHIVE_ACCOUNT","GETTING_ARCHIVED_LIST","GOT_ARCHIVED_LIST","FAILED_GET_ARCHIVED_LIST","GETTING_ARCHIVED_CONTACT_LIST","GOT_ARCHIVED_CONTACT_LIST","FAILED_GET_ARCHIVED_CONTACT_LIST","ARCHIVING_CONTACT","ARCHIVED_CONTACT","FAILED_ARCHIVE_CONTACT","GETTING_ACCOUNT_ARCHIVED_CONTACTS","GOT_ACCOUNT_ARCHIVED_CONTACTS","GET_ACCOUNT_ARCHIVED_CONTACTS_FAILED","CLAIMING_PROFILE","CLAIMED_PROFILE","FAILED_CLAIM_PROFILE","GETTING_SELF_SERVICE_STATUS","GOT_SELF_SERVICE_STATUS","FAILED_GET_SELF_SERVICE_STATUS","GETTING_EMAIL_ATACHMENTS","GOT_EMAIL_ATACHMENTS","FAILED_GET_EMAIL_ATACHMENTS","UPDATING_DOCUMENT_TYPE","UPDATED_DOCUMENT_TYPE","FAILED_UPDATE_DOCUMENT_TYPE","DELETING_DOCUMENT","DELETED_DOCUMENT","FAILED_DELETE_DOCUMENT","DOWNLOADING_ATTACHMENT","DOWNLOADED_ATTACHMENT","FAILED_DOWNLOAD_ATTACHMENT","SUBMITING_CONVERSION_INFO","SUBMITTED_CONVERSION_INFO","FAILED_SUBMIT_CONVERSION_INFO","fetchAccountList","accountingGroupType","accountList","GetAccountListFailure","fetchContactList","contactList","GetContactListFailure","fetchActivityList","activityList","fetchOpenOnboardingRequests","network","gettingOpenOnboardingRequests","fetchOpenProfileUpdateRequests","gettingOpenProfileUpdateRequests","fetchAccountProfile","accountKey","gettingAccountProfiles","accountProfile","FailedGetCustAccount","fetchAccountDocuments","gettingAccountDocuments","accountDocuments","FailedGetCustAccountDocuments","fetchAccountContacts","gettingAccountContacts","accountContacts","FailedGetCustAccountContacts","fetchAccountArchivedContacts","accountArchivedContacts","fetchContactProfile","contactKey","gettingContactProfiles","customerContact","FailedGetCustContact","debouncedFetchAccountSearchResultsGet","debouncedFetchContactSearchResultsGet","fetchEmailAttachments","accountingGroupKey","companyGlobalKey","entityKey","emailAtachments","debouncedFetchAttachmentSearchResultsGet","fetchArchivedAccountList","archivedList","fetchArchivedContactList","archivedContactList","submitConversionInfo","conversionInfo","getSelfServiceStatus","gettingSelfServiceStatus","selfServiceStatus","claimProfile","accessId","getArchivedContactList","gettingArchivedNetworkContactList","gotArchivedNetworkContactList","failedGetArchivedNetworkContactList","getArchivedAccountList","gettingArchivedList","gotArchivedList","failedGetArchivedList","toggleAccountArchived","companyKey","archived","mode","custKey","archivedAccount","toggleContactArchived","archivedContact","updateContactPrivacy","accountingGroupGlobalKey","isPrivate","madePrivate","FailedGetSubsidiaryList","entityGlobalKey","custAccountPicture","UploadingImageFailed","getAccountList","gettingNetworkAccountList","gotNetworkAccountList","failedGetNetworkAccountList","selectAccountListPage","selectedPage","setAccountListPage","setAccountListFilter","getContactList","gettingNetworkContactList","gotNetworkContactList","failedGetNetworkContactList","selectContactListPage","setContactListFilter","fetchCustContact","encodeURIComponent","custContact","postCustContact","FailedPostCustContact","postCustContactPicture","vendorAccountKey","custContactKey","custContactPicture","fetchCustAccount","custAccount","fetchCustAccountContacts","custAccountContacts","fetchCustAccountDocuments","custAccountDocuments","getOpenOnboardingRequests","gotOpenOnboardingRequests","failedGetOpenOnboardingRequests","openOnboardingRequests","selectOpenOnboardingRequestsPage","getOpenProfileUpdateRequests","gotOpenProfileUpdateRequests","failedGetOpenProfileUpdateRequests","openProfileUpdateRequests","selectOpenProfileUpdateRequestsPage","postCustAccount","FailedPostCustAccount","postCustAccountKeyContact","postCustAccountKeyDocuments","postCustAccountPicture","getAccountProfile","accountsMap","gotCustomerAccounts","failedGetCustomerAccounts","searchAccount","customer","getAccountDocuments","accountDocumentsMap","gotAccountDocuments","failedGetAccountDocuments","getAccountContacts","accountContactsMap","gotAccountContacts","failedGetAccountContacts","getContactProfile","contactsMap","gotCustomerContacts","failedGetCustomerContacts","searchContact","customerContacts","getActivityList","gettingNetworkActivityList","gotNetworkActivityList","failedGetNetworkActivityList","sendAccountProfileUpdateRequest","accountKeys","postingAccountProfileUpdateRequest","sendContactProfileUpdateRequest","contactKeys","postingContactProfileUpdateRequest","fetchHeaderInfo","headerInfo","fetchAccountSearchResults","debouncedFetchAccountSearchResults","accountSearchTerm","fetchContactSearchResults","debouncedFetchContactSearchResults","gettingNetworkContactSearchResults","contactSearchTerm","fetchAccountingGroupProfile","fetchAccountingGroupProfileContacts","fetchAccountingGroupProfileDocuments","postAccountingGroupProfile","postAccountingGroupProfileDocuments","postAccountingGroupProfileContacts","uploadAccountingGroupDocument","uploadAccountingGroupDocuments","uploadedAccountDocument","UploadDocumentFailed","addAccountingGroupDocument","vendorGlobalKey","UploadingDocument","entityType","getEmailAttachments","emailAttachments","gettingEmailAttachments","gotEmailAttachments","failedGetEmailAttachments","updateDocumentType","updatedDocumentType","deleteDocuments","deletedDocuments","updateEmailAttachmentType","postAccountSettings","custAccountSettings","fetchAccountSettings","fetchMyProfile","postMyProfile","postMyProfilePicture","myProfilePicture","fetchNotes","notes","FailedGetNotes","postNotes","FailedPostNotes","deleteNote","entityGlobalNoteKey","FailedDeleteNote","getShareFlyoutMessage","shareFlyout","FailedGetShareFlyout","sendShareFlyout","session","FailedSendMessage","fetchShareLink","shareLink","FailedGetShareLink","fetchSubsidiaryList","subsidiaryList","updateCustContact","lockstepContactKey","updateAccountingGroupProfile","addContact","addedContact","markContactPrimary","setAsPrimary","getAccountArchivedContacts","accountArchivedContactsMap","gettingAccountArchivedContacts","gotAccountArchivedContacts","failedGetAccountArchivedContacts","downloadAttachment","attachmentKey","attachmentDownload","debouncedFetchAttachmentSearchResults","fetchAttachmentSearchResults","defaultNetworkSettings","loadedAccountListPage","loadedContactListPage","gettingCustContact","gotCustContact","failedGetCustContact","postingCustContact","postedCustContact","failedPostCustContact","postingCustContactPicture","postedCustContactPicture","failedPostCustContactPicture","gettingCustAccount","gotCustAccount","failedGetCustAccount","gettingCustAccountDocuments","gotCustAccountDocuments","failedGetCustAccountDocuments","gettingCustAccountContacts","gotCustAccountContacts","failedGetCustAccountContacts","postingCustAccount","postedCustAccount","failedPostCustAccount","postingCustAccountPicture","postedCustAccountPicture","failedPostCustAccountPicture","postedAccountProfileUpdateRequest","failedPostAccountProfileUpdateRequest","postedContactProfileUpdateRequest","failedPostContactProfileUpdateRequest","gettingHeaderInfo","gotHeaderInfo","failedGetHeaderInfo","uploadingAccountDocument","uploadAccountDocument","failedUploadAccountDocument","gotNetworkAccountSearchResults","failedGetNetworkAccountSearchResults","accountSearchResults","gotNetworkContactSearchResults","failedGetNetworkContactSearchResults","contactSearchResults","gettingCustAccountSettings","gotCustAccountSettings","failedGetCustAccountSettings","postingCustAccountSettings","postedCustAccountSettings","failedPostCustAccountSettings","updatingDocumentType","failedUpdateDocumentType","deletingDocument","deletedDocument","failedDeleteDocument","downloadingAttachment","downloadedAttachment","failedDownloadAttachment","gettingNotes","gotNotes","failedGetNotes","postingNotes","postedNotes","failedPostNotes","deletingNote","deletedNote","failedDeleteNote","gettingShareMessage","gotShareMessage","failedGetShareMessage","shareMessage","gettingShareLink","gotShareLink","failedGetShareLink","postingShareFlyout","postedShareFlyout","failedPostShareFlyout","postingMyProfilePicture","postedMyProfilePicture","failedPostMyProfilePicture","gettingSubsidiaryList","gotSubsidiaryList","failedGetSubsidiaryList","updatingContactPrivacy","updatedContactPrivacy","failedUpdateContactPrivacy","makePrivate","addingContact","failedAddContact","addedContactValue","markingContactPrimary","markedContactPrimary","failedMarkContactPrimary","archivingAccount","failedArchiveAccount","archivingContact","failedArchiveContact","claimingProfile","claimedProfile","failedClaimProfile","gotSelfServiceStatus","failedGetSelfServiceStatus","networkReducer","updatedAccount","property","updatedContact","profilePictureURL","logoURL","companyARDetails","companyAPDetails","emailAddr","accountingGroupARDetails","accountingGroupAPDetails","lockstepVerified","isLockstepVerified","newActivityList","gettingShareFlyoutMessage","gotShareFlyoutMessage","failedGetShareFlyoutMessage","GETTING_DISPUTE_CODE","GOT_DISPUTE_CODE","FAILED_GET_DISPUTE_CODE","fetchDisputeCodes","disputeCodes","GetDisputeCodeFailure","defaultDisputeCodeSettings","gettingDisputeCode","gotDisputeCode","failedGetDisputeCode","disputeCodeReducer","rootReducer","combineReducers","localization","modal","composeEnhancer","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","createStore","applyMiddleware","thunk","Perspectives","getPartnerType","plural","Vendors","Vendor","Customers","Customer","formatInvoice","ublInvoice","ID","invoiceNum","Invoice","issueDate","IssueDate","ValueString","DueDate","PaymentMeans","PaymentDueDate","LegalMonetaryTotal","PayableAmount","SideBarInvoice","prevProps","prevState","props","erpInvoiceEntry","invoiceTitle","invoiceAmount","invoiceLink","Link","eneteredLine","Status","NotEntered","EnteredOn","associationDate","className","InvoiceNumber","rel","Fragment","InvoiceSummary","OriginalAmount","style","width","InvoiceDate","Component","connect","FlexibleScrollContainer","contentHeight","height","initialHeight","maxHeight","scrollBound","contentScroll","React","createRef","handleScroll","bind","onLoadMore","updateHeight","clientHeight","setState","footerHeight","maxed","children","loaded","loading","forceFooter","noFooter","offsetHeight","innerHeight","getBoundingClientRect","noGrow","scrollbarPresent","offsetWidth","addEventListener","findDOMNode","refs","removeEventListener","box","scrollHeight","scrollTop","ref","element","hideLoadMore","disabled","onClick","cursor","LoadMore","ProfileAttribute","defaultProps","SyncedWith","RegisteredAccountingPackage","CompanyProfileUI","contactEmail","contactName","mobile","vendorLink","isVendor","isCustomer","isVendorAndCustomer","shouldShowCustomSyncedWithText","Name","ArEmail","Email","ApEmail","ArPhone","Phone","ApPhone","Mobile","Website","AccountId","BillingAddress","getAddress","PrimaryContact","ContactEmail","TaxID","Terms","isMyCompany","link","linkText","VendorDataSynchronizedWith","CustomerDataSynchronizedWith","readOnly","showConnectorLink","isSidePanel","withRouter","NotConnected","alt","NotSuccessful","src","AccountingPackageNotConnectedCompanyProfile","ConnectNow","MainLoader","fullScreen","PaymentIsInProcess","display","alignItems","justifyContent","fontSize","customBackground","spinnerBackgroundColor","color","CompanyProfile","defaultState","street","editing","contextGroupsStore","contextGroupsFetched","hasFetched","syncStoreToState","conversationsStore","contactNumbers","contextGroupIds","selectedContextGroup","cn","w9","w8","actionLinkTemplate","actionTitle","CompanyInfoContactNumbers","Actions","registeredERPConnector","ChannelIsNotLinkedToAConnectorCompany","LockstepActions","RemapEmailToExistingCompany","CompanyMarkedAsSpam","pathname","selectedContextGroupId","MarkSenderAsSpam","CreateVendorCustomerProfileHelperText","uaDP","coDP","caDP","paDP","aaDP","congDP","connDP","modDP","genDP","ModalDialog","headerClassName","bodyClassName","footerClassName","footer","Modal","ModalHeader","ModalBody","ModalFooter","DropdownItem","Dropdown","buttonContent","buttonClassName","buttonWidth","menuWidth","matchButtonMenuWidth","menuAlign","isForm","menuClassName","toggleOnHover","noHideDelay","delayShow","buttonName","onSetVisible","referenceRef","useRef","popperRef","useState","visible","setVisible","setVisibleClickHandler","hovered","setHovered","setVisibleHoverHandler","useInterval","usePopper","current","placement","modifiers","enabled","offset","styles","attributes","containerStyle","popper","onMouseEnter","onMouseLeave","onOutsideClick","aria-haspopup","aria-expanded","data-test-id","closedropdownonclick","Item","callback","delay","savedCallback","useEffect","setInterval","clearInterval","IconAngleDown","strokeWidth","viewBox","stroke","strokeLinecap","strokeLinejoin","fill","fillRule","SelectInput","labelClassName","optionValueKey","renderOption","optionDisplayKey","displayValue","labelInline","onSelectOption","callToActionText","callToActionOnSelect","selectedOption","setSelectedOption","option","dropdownItems","itemValue","itemDisplayName","aria-labelledby","EmailTemplatePicker","templateObject","templateSelected","selectInputOptions","emailTemplateID","noLabel","Template","appliedTemplateId","fetchingTemplateId","SelectMessageTemplate","FetchingPopulatedTemplate","onTemplateSelected","t","Inline","Quill","CustomColor","domNode","span","replaceWith","child","unwrap","remove","builtInFunc","linkValueInput","val","blotName","tagName","register","ReactQuill","elementId","HtmlEditor","dropEnabled","quillConfig","theme","modules","toolbar","container","clipboard","matchVisual","onRef","quillRef","editor","getEditor","makeUnprivilegedEditor","getText","insertText","delta","updateContents","tabIndex","setTabIndex","hideToolbar","focused","bounds","htmlContent","onChange","updateHtmlContent","updateTextContent","onChangeSelection","onBlur","onFocus","toolbarItems","ledgerStore","manageStore","compDP","lgrDP","convDP","persDP","maDP","gaDP","IconCode","points","IconAlertCircle","transform","cx","cy","TextInput","toggleVisibility","showPassword","isFocused","isPassword","inputOnChange","onPressEnter","textValue","inline","inputRef","centerText","placeholder","fsObscure","isValid","invalidText","dollarAmountInput","autocomplete","isNumber","Hide","Show","htmlFor","autoComplete","onKeyDown","ReplyTemplateForm","templateId","htmlBody","showCcBcc","cc","bcc","defaultResource","defaultResourceDisplay","saving","editorSelection","header","indent","keyboard","bindings","tab","handler","selectedIndex","selectedLength","submitTemplate","templateNameExists","TemplateNameAlreadyExists","emailTemplateId","emailTemplateDesc","emailBody","closeForm","AllEntriesEmptyError","mountState","templateData","tryUpdate","getResourceDisplayName","New","htmlEditor","allTemplates","perspectiveEmailTemplateName","uEditor","setText","spliceString","isUpdate","snippetContent","handlebarsSnippetValue","ops","retain","insert","snippetDescription","Subject","maxWidth","focusedField","range","textBody","Body","Cancel","Update","Save","Attachment","onDelete","stopPropagation","attachmentOverlay","size","showDelete","showIcon","previewUrl","Preview","sizeInBytes","kbSize","mbSize","toFixed","gbSize","getDisplaySize","IconUpload","IconUser","IconCompany","Avatar","imgURL","objectName","isCurrentUser","isCurrentAccount","objectInitials","shift","emptyText","emptyTextFontSize","y","dominantBaseline","textAnchor","getEmptyAvatarIcon","ContactEmailSelect","loadOptions","isMulti","setIsActive","inputValue","setInputValue","getSelectItem","isInvalid","cacheOptions","allowCreateWhileLoading","autoFocus","closeMenuOnSelect","tabSelectsValue","openMenuOnClick","classNamePrefix","isClearable","getNewOptionData","onInputChange","selected","emails","onCreateOption","formatCreateLabel","userInput","components","Option","DropdownIndicator","IndicatorSeparator","Menu","every","MultiValueContainer","innerProps","newProps","getOptionLabel","getOptionValue","ToggleSwitch","checked","ConversationEditorError","ConversationEditor","includeSignature","showCc","showBcc","draftId","existingAttachments","detachments","selectedNewChannel","includeInternal","partnerEntry","remapIdentifiersOnMove","selectedTemplateId","committing","commitFailed","savingAsTemplate","setMode","updateEditorMode","newTo","participants","newCc","newBcc","latestEntry","showTo","isEmail","componentDidMount","componentDidUpdate","prevMode","withCompanies","addr","modeUpdate","toChanged","inReplyTo","references","ccChanged","updateSubject","defaultApproverId","defaultApprover","$","getContacts","acc","accountingGroupSearchResults","onClosed","onDraftSaved","EmailFw","EmailAbout","ApprovalRequest","EmailRe","toggleCc","toggleBcc","splitEmails","transitionConversationToStatusId","SomeAddressesAreInvalid","InvalidEmail","userSignature","signatureText","signatureHtml","ok","addAttachments","removeAttachments","goBack","resolveDraftId","submit","submitAndClose","submitAndAwaitResponse","closedStatusId","waitingResponseStatusId","onSubmitComplete","returnToListView","updateAttachments","removeAttachment","removeExistingAttachment","previousPath","selectedItemId","showAttachFilesModal","files","showAttachFromLibraryModal","getSendButton","buttonText","canSend","sendDisabled","Approve","Reject","Saving","Send","minWidth","onKeyPress","needsEmails","modeLabel","RequestResponse","ForwardAsNewConversation","ForwardActivity","SendForApproval","MarkAsApproved","MarkAsRejected","modalDialog","isOpen","SaveAsTemplate","isUpdating","v","toggle","Reply","AddNote","EmailTo","EmailCC","EmailBCC","Note","Message","flags","teamInboxTemplates","populatedTemplate","htmlBodyCompilerOutput","unmappedProperties","fetchingTemplateToApply","click","Yes","No","StripOutInternalActivityInForwardedMessage","companyDocumentName","fileSize","sizeBytes","multiple","withLDConsumer","StatusChangeThreadItem","statusName","dateText","StatusChangedByTo","AssignmentThreadItem","assignedUserId","Yourself","titleNote","ReassignedByTo","relatedConversationId","relatedConversationType","ResponseRequestReassignedTo","ApprovalReassignedTo","ApprovalThreadItem","approverName","dangerouslySetInnerHTML","__html","ApprovalGrantedText","textAlign","Ago","att","ApprovalRequestThreadItem","isFirstEntry","assignedTo","recipient","viewOriginal","showCancel","PosterCanceledTheApprovalRequest","isApprovalRequestTask","approvalRequestTasks","SentApprovalTask","ApprovalRequestText","sentLink","ViewTask","RejectionThreadItem","ApprovalRejectedText","Iframe","sandbox","scrolling","frameBorder","frame","doc","contentDocument","write","contentWindow","postingUser","loggedInUser","itemType","isExpanded","setIsExpanded","emailPreviewText","setEmailPreviewText","You","forwardedTask","ConvoStartedByName","marginLeft","To","CC","generatePath","ShowOriginal","DraftThreadItem","PrivateDraftText","handleEdit","Edit","handleDelete","Delete","InvoiceThreadItem","connectorStore","ConnectorVersionId","AutoEntryMessage","ResourceCreated","Issued","Due","Amount","RadioInput","inputs","radioName","input","isChecked","inputClassName","marginRight","defaultChecked","TextAreaInput","TaskThreadItem","selectedAction","isApprovalTask","isResponseTask","actionForm","approvalOptions","AddComment","AddOptionalNote","RequestApproved","RequestRejected","View","linkAction","Submit","AddResponse","YouResponded","Respond","originalEmailBody","TaskCreationMessage","AssignedApprovalTask","AssignedResponseTask","renderActionForm","laDP","ReminderThreadItem","ShouldRemind","reminderContent","reminderResource","dueOn","local","ReminderCanceled","dateCreated","ReminderNameForDateReminded","ActivitySnoozed","RequestResponseThreadItem","YouCanceledTheResponseRequest","isRequestResponseTask","requestResponseTasks","SentResponseTask","RequestedResponseText","SimpleForwardThreadItem","ForwardedByTo","taskKey","GoToForwardedItem","SimpleForwardResponseThreadItem","RespondedToForward","scrollToThreadItem","ViewResponse","IconRead","IconUnread","IconArrowUp","IconXCircle","IconSlash","IconUsers","IconMove","IconBell","UserPicker","userSelected","me","perspectiveUserIds","isMe","perspectiveUsersOnly","getUserList","userDisabled","disableUserId","onUserSelected","displayUsers","moDP","comDP","conDP","FilterInput","displayKey","filteredOptions","highlightIndex","onFilterChanged","handleBlur","handleFocus","handleSelectOption","handleKeyDown","handleClick","filtered","adding","aStart","bStart","nextHighlightIndex","preventDefault","focus","filterOption","forceBlur","blur","labelClass","closeDropdownOnClick","left","IconRightArrowCircle","ConversationActionButtons","containsUnreadConversations","containsReadConversations","isSpamView","lastEventStatusChange","MarkAsRead","MarkAsUnread","impactedConversations","actionComplete","Activate","Close","Assign","Snooze","UntilTomorrow","set","UntilFriday","day","UntilNextWeek","UntilNextMonth","CustomDate","notification","NotSpam","Spam","MoveChannel","LoadingOptions","forwarding","noForward","Forward","netDP","ledgDP","Card","cardRef","headAboveCard","onClickEdit","onCancel","onSave","clickable","noSave","isEditable","cardHeader","opacity","isDragging","draggable","Conversation","componentWillUnmount","generalStore","NewCompanyMessage","displayedNewCompanyToast","ensureConversationBucket","fetching","outForApprovalChanged","approvalStatus","updateCompanyInfo","editorMode","setRef","refId","partners","cAddress","withPerspective","withCompanyIds","displayAddresses","info","isText","isInvoice","formatEmails","typeText","rawAddresses","meto","ra","displayAddress","ignoredDrafts","showAsText","creatingEntryType","entryTo","entryHtmlBody","entryTextBody","sendToAccountId","sendToContactId","companyRootUrl","fetchingEmails","fetchingRelated","relatedConversations","hasAttachments","isSystemMessage","parentLedgerHash","ResourceImported","reminder","reminderHash","fromString","textEntries","first","toEntries","last","cto","relatedArray","addressToPush","participantNames","subView","companyPerspective","perspectiveResourceIds","parentPerspectiveId","resourceActions","ie","GoToResource","cAction","rootResourceName","rootEntry","relatedDiv","NoRelatedConversationsFound","handleShowAsText","handleShowAsHTML","marginBottom","conversationAddressId","hideDraft","postingUserId","originalHtmlBody","originalTextBody","isForward","networkStore","EmailFrom","originalSubject","isOutgoing","sendDate","ViewSent","ViewReceived","forwardHash","messageId","scrollIntoView","Loading","RelatedConversations","manDP","accDP","IconSearch","small","AutoCompleteInput","dropdownHeader","hideDropdownMenu","dropDownMenuClassName","dropdownMenu","maxOptions","callToActionButton","showNoResultsMessage","noResultsMessage","whiteSpace","border","padding","paddingRight","onSearch","handleClearResult","SummaryCountBadge","contextGroupLabel","useSelector","contextGroupsStatsForSelectedPerspective","badgeType","badgeCount","IconAttachment","IconMessage","Checkbox","preventBubbling","IconArrowRight","line","IconArrowLeft","pageType","borderLeft","TableData","loadedPage","newLoadedPage","Number","isInteger","handleExitTooltip","handleonload","ensureScrollbarStatus","isPresent","scrollWidth","hasScrollbar","scrollbarWidth","renderTableHeader","columns","noHeader","onRowSelectToggle","rowKey","noSort","hideHeaderWhenLoading","useRedux","localSelectedKeys","localSelectedRows","column","colRowContent","renderedData","getDataToRender","rowIndex","Function","justify","clearSelectedItems","toReturn","allChecked","sortable","selectAllItems","onSelectAll","entirePageSelected","renderedRows","pagination","newIndex","renderTableBody","emptyRender","hoverColumns","rowHeight","rowClassName","dataToRender","colIndex","colSpan","rowColumns","hoveredRow","rowSelected","rowId","noHover","onRowClick","colId","renderPagination","numPages","pages","renderPageRowCount","data-toggle","ShowNItems","pageSelected","noScroll","YoureOffline","margin","YouSelectedNumberofInvoices","SelectAllInvoicesInPage","AllOpenInvoicesSelected","ClearSelection","NothingToShowHere","conversationStore","getPerspective","setSelectedRows","conversationsData","debouncedSearchTerm","debouncedValue","setDebouncedValue","useDebounce","useSWR","getDataUrl","searchData","searchError","loadingConversations","getContextGroupId","contextGroupKey","vendorKey","currentPage","includeFilter","viewingContextGroup","urlQueryParams","baseUrl","queryParams","requestString","param","buildRequestUrl","clearSelectedRows","mutate","forceLoadingState","EmptyState","rx","ThisInboxIsEmpty","getConversationColumns","getHoveredColumns","isWaitingForResponseView","selectCol","subjectMessageCol","Activity","channelCol","From","toEmailAddresses","fromEmailAddresses","participant","participantAddresses","contextGroupNames","assignedToCol","AssignedTo","dateCol","Sent","Received","hoverActionCol","spamStatus","iconClassName","iconCol","icon","activeReminderHash","disableComposeButton","conversationLabelOptions","AllOpen","labelValue","Mine","Unassigned","Assigned","WaitingResponse","Closed","Compose","labeledConversationsWithCompany","Search","SeeAllResultsFor","NoResultsFound","toggleSelectRow","EmptyInboxActivities","CRUDList","renderAction","buttonClass","condition","conditional","conditionalReturn","emptyRenderText","onCreate","createText","newColumns","newColumn","AddNew","CompanySettings","defaultAssignee","settingsSaved","companyIdentifiersColumns","isUserManaged","connectedConnector","saveSettings","userStore","existingSettings","NoOne","Assignee","AutoAssignMessage","AssignMessagesTo","customTrigger","dropdownMenuStyle","Approver","ChooseDefaultApprover","SendApprovalRequestsTo","Saved","EmailMapping","EmailMappingExplanation","companyStore","SpamSettings","DomainOrAddress","Remove","warningMessage","ConfirmDeleteSpamAddress","SpamMapping","SpamSettingsDescription","addSpamAddress","DocumentsTable","hasPartnerCol","sortByIcon","organizationButton","changeDocumentSort","Organization","subjectButton","fileNameButton","Document","dateButton","fileNameCol","subjectCol","directionCol","Direction","direction","downloadCol","partnerName","loadMore","nextProps","gotAttachmentUrls","conversationDocuments","currentSortBy","currentSortDirection","docs","newDoc","partnerCompanyId","downloadIcon","prettyDocuments","EmptyInboxDocuments","StatementsView","updateDateRange","mapFromDate","selectedView","dateFilters","statementsStore","switchedCompany","selectedViewDateFilters","prevStateDateFilters","dateFilterChanged","pastWeek","pastMonth","pastYear","handleLoadMore","totalLabel","templateGetter","DueDateLabel","PO","SO","orderId","AmountUSD","ApprovedInERP","isApproved","Payment","DateProcessed","processedDate","PaymentDetails","paymentName","AppliedToInvoice","Type","paymentType","registeredConnector","TotalOpen","TotalClosed","Total","dateFilterLabel","AnyTime","PastWeek","PastMonth","PastYear","OpenInvoices","ClosedInvoices","Payments","CustomRange","withCompanyName","fetchTemplate","SendPaymentsSummary","SendInvoiceSummary","EmptyStatements","saDP","IconCheckCircle","IconApps","SearchBar","term","searchResultValues","disableDebouncedSearch","selectedAccountingGroupType","vendorContacts","renderSearchHistory","triggerSearch","NoProfileSearchResultsMessage","contactId","profileImageURL","custName","vendorName","RecentSearches","searchDP","IconLeftArrow","x1","y1","x2","y2","FeatureGate","gatedFeature","featureMap","ViewContentHeader","onClickBackRoute","accountViewing","backButtonClick","perspectivesStore","isArchived","Archived","LockstepPrivateInformation","LockstepVerifiedInformation","VendorID","CustomerId","displayId","contactViewing","LockstepArchivedInfo","Private","isPrimaryContact","Primary","isSecondaryContact","Secondary","sequenceViewing","customerSequenceName","OpenRequests","myProfile","ContactName","headerText","numberSearchResults","searchResultsType","numberSearchResultsContacts","numberSearchResultsAccounts","AccountProfilesNum","ContactProfilesNum","SearchResultsNum","Searching","assignedUserDisplayName","assignedUserText","AssignmentUnknown","AssignedToName","NewActivity","links","numberOpenRequests","onSearchView","viewParam","viewingConversation","renderAccountViewingContent","renderContactViewingContent","renderSequenceViewingContent","renderOpenRequestsContent","renderMyProfileContent","renderSearchResultsContent","renderConversationViewingContent","userDP","DepartmentView","selectedConversations","displayedToast","calledDocs","refreshData","parts","refreshTimer","prevParams","perspectiveContextGroups","OutForApproval","Snoozed","setCompanyName","subViews","Activities","sequencesActivityTab","Sequences","isNewConversation","getRoute","SignUpBody","ProgressBar","SignUpHeader","Icon","headline","currentStep","SignUpFooter","SignUp","closeModal","headerHeadlineTxt","companyConnectedBody","companyLogoIconPath","SignUp_BodyTextStep4","Button","Previous","Next","Step","SignUp_BodyTextStep5","Enter","Lockstep","SignUpContinued","showStep4","showStep5","stepTwo","stepThree","currentStepText","SignUpFailed","LockstepLogo","inverse","IconCheck","IconPlusCircle","isFilled","MainContentHeader","subtitle","iconObject","isNewCompany","logoSrc","companySelect","ldClient","useLDClient","portalAddVendorsConversionV3","selectedAccountIdSubmittedForm","conversionButtonText","AddVendors","JoinLockstep","ProcessMoreInvoices","addVendorsButton","RequestToAddVendorsSubmitted","track","Logo","upperRightLogo","ConnectedBy","portalAddVendorsConversion","CompanySelect","prevConnectorStore","idp","missingDataError","noPerspectivesError","subscriptionTypeName","getLockstepHeader","companyToUse","hideSearch","UhOh","NoWorkspaceAccess","ContactAnAdministrator","clipRule","ry","OopsYourAccountHasMissingData","LogInAsADifferentUser","contDP","LoginForm","onInput","submitOnEnter","submitLogin","usernameInput","passwordInput","authUrl","savedUsername","loginSuccessPath","newAuthUi","Form","onSubmit","FormGroup","isLoginErrorVisable","UserLoginFailure","Label","for","Username","Input","Password","backgroundColor","loginFooter","SignIn","Login","signUp","resetEmail","Intercom","nextPath","LoginBlurb1","LoginBlurb2","LoginTitle","YouAlreadyHaveAnAccount","RememberMeFor30Days","ForgotPassword","RegCompanyInfo","isFromComplete","isComplete","isFormComplete","confirmPassword","submitForm","isLoading","Company","State","Zip","Accounting","Personal","Confirm","PasswordsNeedToMatchError","RegUserAccountExists","RegUserExistsBlurb1","reload","RegUserExistsBlurb2","RegUserCompanyExists","RegCompanyExistsBlurb1","RegCompanyExistsBlurb2","RegCompanyExistsBlurb3","RegGettingVerified","RegVerifyEmailBlurb1","RegVerifyEmailBlurb2","RegVerifyEmailBlurb3","RegVerifyEmailBlurb4","RegVerifyEmailBlurb5","RegVerifyEmailBlurb6","RegVerifyEmailBlurb7","Registration","redirectToLoginPage","setRegistrationStage","currentComponent","setRegStage","RegCompanyInfoHeader","RegVerifyEmailHeader","RegUserExistsHeader","RegCompanyExistsHeader","step","RegBackToLogin","CompanySelector","autoRefresh","autoRefreshInterval","loadData","startInterval","stopInterval","interval","changedDepartment","defaultDepartment","prevAccountsStore","exp","section","part","MenuItem","showSpinner","activeCount","labelBold","iconClasses","badgeClassName","SearchInput","handleChange","CompanyRefresh","gettingCompanies","minHeight","CompanyBrowser","contextGroupsToDisplay","loadMoreContextGroupsIncrement","applyFilter","prevCompanyId","maxValue","unassignedHasReminder","mineHasReminder","assignedHasReminder","pendingApprovalHasReminder","waitingResponseHasReminder","filteredContextGroups","hasUnassignedReminders","hasAssignedToMeReminders","hasAssignedToOthersReminders","hasPendingApprovalReminders","hasWaitingForResponseReminders","rootRoute","active","Reminders","CreateNew","Task","setSort","Filter","contextGroupActiveCount","UserSettingsNavContent","ManageNavContent","isAdmin","MyProfile","Notifications","Signature","CompanyWorkspaceSettings","CompanyUsersAndPermissions","Approvers","Templates","SharedDocuments","ReportsNavContent","Team","Tasks","ApprovalAging","CustomerIcon","VendorIcon","SideNav","component","viewMap","Manage","Reports","workspaceSelector","BackToWorkspace","renderIcon","iconName","exact","render","renderNavContent","perspecitvesStore","eaDP","SetupSelectInbox","SetupInboxToConnect","progressStage","SetupConnectEmail","errorMsg","areInputsValid","setIfInputAreNotValid","perspectiveText","contextText","SetupForwardingEmailHeaderAR","SetupConnectEmailBlurb1AR","SetupForwardingEmailHeaderAP","SetupConnectEmailBlurb1AP","setForwardingEmail","AP_OR_AR_CONTEXT","EmailExample","SetupForwardEmail","SetupForwardingEmailForwardTo","toClipboard","Copy","helpLinkUrl","SetupForwardingEmailNeedHelpLink","Or","SetupForwardingEmailSendPreEmailLink","Verify","Forwarding","SetUpConnectionVerified","SetupConnectionVerifiedHeaderAR","SetupConnectionVerifiedHeaderAP","SetupConnectionVerifiedSentToForwardTo","SetupConnectionVerified","completeSetup","SetupConnectionVerifiedContinueWithSetup","CompanyLogoButton","startConnectorRegistration","setConnectorPermissionsForCompany","redirectUrl","authType","isGrantedPermissions","permission","cleanUrl","connectorEndpoint","dirtyUrl","btnCustomCss","imgSrcPath","CompanySelectionRow","CompanySelectionGrid","companyConnectorConfig","ConnectorCompanySelectionHeader","SetUpLandingPage","setupProgressStage","isModalHidden","isVideoHidden","configureEmail","showVideo","setProgressStage","setCompleteOnEmailConfig","currentModalComponent","videoContent","allowfullscreen","stepOne","Setup","SetupHeader","SetupSubHeader","aria-valuenow","aria-valuemin","aria-valuemax","borderRadius","lineHeight","Introduction","SetupBlurb1","Watch","Video","SetupBlurb2","SetupBlurb3","SetupBlurb4","Configure","ConnectAnother","ConnectYourERPToLockstep","SetupBlurb6","ConnectAcctSystem","Complete","ReportsFilter","FilterBy","LastWeek","ThisWeek","LastMonth","ThisMonth","LastQuarter","ThisQuarter","ReportContentBlock","heading","TabularData","rangedData","allSelected","subtexts","highlight","callBack","colStyle","obscureSubtext","subtext","selectEnabled","ReportsExportButton","ReportsNoData","ReportApprovers","numberOfEntries","graphShown","guidsArray","approverId","approvalColumns","Requests","Approved","Rejected","Outstanding","AvgApprovalTime","MaxApprovalTime","MaxOutstandingTime","approversList","approversFlattenedMap","averageApprovalTimeDisplay","averageApprovalTime","maxApprovalTimeDisplay","maxApprovalTime","maxOutstandingTimeDisplay","maxOutstandingTime","min","graphTitle","graphSelector","graphTooltipName","AverageApprovalTimeByApprover","MaxApprovalTimeByApprover","NumberOfRequestsByApprover","prettyApprovers","approvalTimeByApproversSorted","xAxisTicks","member","ApproversReport","ApprovalRequests","approvalRequests","approved","outstanding","layout","isAnimationActive","AnimationDuration","right","bottom","horizontal","axisLine","tickLine","tickFormatter","dataKey","YAxisTickFormatter","formatter","selectable","rowStyle","raDP","ReportsTeam","members","teamColumns","TeamMember","PercentResponses","PercentResolutions","team","responsePercentage","resolutionPercentage","averageReviewTime","graphArray","prettyTeam","sortedTeam","averageResolutionTime","longestResolutionTimeMember","TeamReport","TotalTasks","totalTasks","Responses","totalResponses","SlowestResolver","Resolutions","totalResolutions","AvgResolutionTime","AvgResponseTime","averageResponseTime","AverageResolutionTimeByTeamMember","ReportsTasks","tasks","assigneeId","graphSshown","TaskTitle","ResolutionTime","FirstResponse","mergedCompanies","resolutionTimeDisplay","resolutionTime","firstResponseTimeDisplay","firstResponseTime","dateFormat","arraySelector","prettyTasks","prettyGraph","tasksColumns","getTasksColumns","TasksReport","AvgFirstResponse","averageFirstResponseTime","vertical","angle","ReportsApprovalAging","iconCircle","approvalAgingColumns","Current","AgingLessThanTwentyFourH","AgingTwentyFourToFourtyEightH","AgingFourtyEightToSeventyTwoH","AgingSeventyTwoPlusH","MaxAgingTime","maxOutStandingTime","approvalsAging","prettyAging","ApprovalAgingReport","CurrentlyAging","LessThanTwentyFourHours","lessThanOneDayOutstanding","TwentyFourToFourtyEightHours","oneToTwoDaysOutstanding","FourtyEightToSeventyTwoHours","twoToThreeDaysOutstanding","SeventyTwoPlusHours","moreThanThreeDaysOutstanding","ReportsPage","ReportsApprovers","ResetPassword","currentLoginView","errorMessages","resetCode","BlankPasswordError","resetPasswordEmailSent","resetFailed","LinkExpired","TryAgain","testing","FindYourAccount","EmailAddress","alignSelf","marginTop","FindAccount","CheckEmailResetPassword","ResendLink","TryAnotherEmail","EnterNewPassword","NewPassword","ConfirmNewPassword","ChangePassword","ResetPasswordSuccess","BackToLogin","LockstepHeader","InvitedAcceptProfile","textAreaAddress","showEditAddress","companyInvite","line1","regionId","countryId","tin","passwordData","isPreconfirmed","acceptProfileData","setField","EmailAddresses","ContactInformation","AddressInformation","StreetAddress","AcceptProfileData","usrDP","regDP","InvitedSetPassword","isPasswordSubmitted","isPoliciesAccepted","invalidInvite","existingCompanyId","creatingUser","userCreated","userCreateFailed","invitedUserId","signUpUser","PleaseAcceptPolicies","isPasswordConfirmed","doesPasswordMissMatch","didTheReduxStoreFindErrors","userExists","InvalidInviteMessage","InvitedWeNeedMoreDetails","ConfirmPassword","IAcceptPolicies","InvitePolicyLinks","TermsOfServiceUrl","TermsOfService","AcceptableUseUrl","AcceptableUse","PrivacyUrl","Privacy","invDP","RegisteredConnector","selectedConnector","showConfirmRegisterModal","showConfirmUnregisterModal","connectorRequestName","getActionButtonsFromConnector","registerConnector","disconnectButton","reconnectButton","configureButton","configStatus","configurationType","ConfigurationRequired","Disconnected","SynchronizingData","Connected","connectorVersion","integrationEndpointUrl","Reconnect","connectorDisplayName","DisconnectFromConnector","registrationConfig","configurationSchema","connectorHasDefaults","additionToPath","registeredConnectors","Connection","Action","iconUrl","getDisplayStatusFromConnectorStatus","ManageConnectors","renderConnector","selectConnector","permitAndRedirect","requestsAreFetched","firstRequest","cRequest","imageUrl","newConnectorRequest","showVoteFeedback","permittedConnector","selectedClass","connectorRequestId","connectorMarkup","Synchronizes","connectorVersions","connectButtonUrl","ConnectToConnector","VoteFor","connectors","CompanyAccountingPackages","SelectAccountingSoftware","LegacyNotification","dismissed","autoDismissTimeout","dismissable","ERPRegistration","schema","accum","isEditing","existingConfig","connectorConfiguration","errorNotification","ConnectorRegistrationError","isSubmitting","Updating","Registering","Register","UpdateRegistration","EnterPackageDetails","SMTPEmailSettings","SMTPConfigData","Host","Port","Timeout","Domain","SendFrom","UseSSL","UseStartTLS","AuthenticationMethod","ConnectionTimeout","RetrievalTimeout","isEnabled","setPage","configData","SMTP_ConfigData","connectionSecurity","setSMTPConfigInput","setSMTPConfigData","SMTP_Type","emailConfigurationTypeName","isVerified","isVisible","authenticationMethods","SMTPMethod","Verified","Unverified","RequiredFields","ServerName","HostAddressExample","ConnectionSecurity","OptionalFields","UserDomain","DefaultSendAsEmail","mangDP","SPFDKIMEmailSettings","SPF_DKIM_ConfigData","domainName","DomainName","SPF_DKIM_ConfigId","setDomainName","domainNameError","isEditingDomainName","isEmailModalVisible","copiedToClipBoard","toggleModal","Records","DNSRecord","copiedIndex","copiedKey","HelpEmailModalContent","SendSPFDKIMHelpEmail","SPFDKIMBlurb1","AddingSPFDKIMRecordsForLockstep","handleToClipboard","CopiedToClipboard","Hello","SPFDKIMBlurb2","SPFDKIMBlurb3","record","overflowX","copyableDNSRecords","SPFDKIMBlurb4","CopyInstructionsToEmailYourITAdmin","float","GetConfigurations","PerspectiveTabs","handleSelect","handleAddWorkspace","addWorkspaceActive","AddWorkspace","ForwardingEmailSettings","editForwardingEmail","isEditingForwardingEmail","remoteForwardingEmailValue","ValidEmailError","emailInput","setDefaultState","isModalOpen","emailClient","copiedToClipboard","modalContent","Gmail","Outlook","Copied","CopyToClipboard","GmailForwardingSetup","OutlookForwardingSetup","showOnlySynthetic","ForwardAllEmailsFromInboxToSharedLedger","StepByStepInstructions","WorkspaceAddress","CopyAddress","EmailSettings","EmailAddressForWorkspace","AutoCompleteDropdown","IncomingSettings","editingImap","hasImapConnector","hasGmailConnector","imapConfigStatus","gmailConfigStatus","host","port","daysPrior","deleteAfterImport","putConfig","userDomain","inboxFolder","sentItemsFolder","authenticationMethod","connectionTimeout","retrievalTimeout","sslProtocol","selectedIncomingOption","syncImapStoreToState","getImapContent","getSyntheticContent","getImapCompanyPermissions","deactivate","emailConnector","emailConnectorVersionId","domain","inbox","sentMailBox","useSSL","useStartTLS","sslMethod","emailConnectorConfigs","getConnectorConfigIMAP","emailResource","ledgerResources","connectorConfigResource","imapConnector","imapConnectorVersion","imapConnectorVersionId","imapConnectorConfigStatus","imapPerspectiveConnectorConfig","pollImapConfig","imapConfigHasError","imapErrors","sslProtocols","IMAPMethod","SSLProtocol","InboxFolder","SentItemsFolder","optionType","getGmailContent","incomingEmail","accountingGroupName","TestIncomingEmail","incomingOptions","DeliveryPreference","getIncomingButton","getSelectedMailOptionRender","CompanyEmailSettings","clearErrors","setEmailConfigType","configType","currentConfigType","selectedConfigTypeId","eConfigType","radioSelectedEmailType","confirmedChangeFromGmail","weightedBoolean","radioBtnBool","configTypeBool","isEditingWorkspace","isEditingWorkspaceEmailSettings","perspectiveIcon","parentPerspectiveName","parentPerspectiveKey","selectedEmailTab","selectedIncomingMailOption","remoteEmail","toggleEditing","createWorkspace","saveEmailSettings","currentEConfigType","currentEConfigData","f","getParentPerspectiveDisplayName","VendorsAndCustomers","OtherCompanyBusiness","collaborationOptions","ImapServer","EmailForwarding","activeOption","imapConnectorConfig","getIncomingEmailOptions","statusBadge","getOutgoingEmailOptionDisplayName","StandardLockstepDelivery","ConnectedGmailAccount","ImproveDeliveryRatesSPFDKIM","CustomSMTP","mailSettingsContent","creatingNewWorkspace","isDKIMSPF","isSMTP","isRadioDKIMSPF","isRadioSMTP","incomingEmailOption","getIncomingEmailOption","incomingEmailOptions","outgoingMailOptions","getOutgoingEmailOptions","selectedOutgoingmailOption","currentEConfig","TestOutgoingEmail","WorkspaceSettings","renderIconPicker","ForCollaborationWith","renderCollaborationDropdown","workspaceArchive","ConnectEmailAccountToSendAndReceiveMailFromWorkspace","RemoteEmailPlaceholder","IncomingEmail","OutgoingMail","IncomingDeliveryPreference","OutgoingDeliveryPreference","MyCompanyProfile","saveProfile","getAddressContent","edit","givenAddress","myCompanyInfo","Profile","CompanyName","CompanyInfoTIN","InviteCompanyUser","InviteToCompanyMessage","validateAndInvite","closing","onClosing","ErrorFullNameRequired","ErrorEmailFormat","existingEmails","ErrorExistingUserInviteEmail","inputClass","InviteUser","Perspective","Invite","errDP","ManageCompanyUsers","revokeInvite","Role","roleName","WorkspaceAccess","All","ConfirmDeleteUser","ReactDOMServer","renderToStaticMarkup","inviteColumns","Revoke","Resend","cr","isInherited","userColumns","getUserColumns","pending","statusid","Pending","Accepted","Resending","Resent","Retry","resend","revoke","getInviteColumns","ConfirmRevokeInvite","UserList","UserListDescription","AddUser","InviteList","InviteListDescription","EditApproverForm","submitApprover","ErrorEmailRequired","ErrorEmailInvalid","isCreate","newEmailInOtherPerspective","ContactAlreadyExistsError","AddApprover","EditApprover","AddingApprover","ManageApprovers","removeApprover","perspectiveUpdate","showApproverForm","selectedApprover","editApprover","deselectApprover","ConfirmDeleteApprover","ApproverList","ApproverListDescription","ManageTemplates","deleteTemplate","showReplyTemplateForm","selectedTemplate","editTemplate","deselectTemplate","isDefaultSystemTemplate","ConfirmDeleteTemplate","onUpdate","TemplateList","TemplateListDescription","CreateNewTemplate","IconClose","CreateCommunicationTemplate","contactAddressBookId","attachmentNames","templateEditing","toAddress","ccAddress","smsBody","smsTo","voiceMessageBody","voiceMessageTo","savedTemplate","TextMessage","PhoneCall","isCC","snippetValue","newAttachmentsToDelete","newAttachmentsToUpload","newAttachmentNames","attachmentUploadIndex","getAttachmentNamesToDisplay","UploadAttachment","isDeleting","isPosting","disableSend","TemplateName","getTypeDisplay","getToCCDropdown","getAttachmentsRender","modalStore","IconTableSort","topClass","bottomClass","TableDataSortableHeader","updateFunction","updateSort","sortKey","IconAngleLeft","changepaymentview","ManageCommunicationTemplates","communicationTemplatesColumns","Voice","Text","Inactive","LastEdited","updateDate","creatingTemplate","displaySearchResults","Back","CommunicationTemplates","NoTemplatesSearchResultsMessage","EmptyCommunicationTemplates","SequencesTabContent","sequencesStore","SequenceName","Description","customerCount","toggleSequenceActivation","createNewSequence","CreateANewSequence","editSequence","EmptySequences","seqDP","SequencesOverviewTabContent","pageToLoad","taskType","previewText","ActiveSequences","AutomatedTasks","Today","ManualTasks","RecentlyTriggeredSequenceSteps","cgDP","IconSmile","IconPen","IconPercent","IconMissing","IconGift","IconInvoice","IconFile","iconClass","CreateASequence","onSelectSequenceTemplate","customerSequenceIconClass","IconAngleRight","IconTrash","IconInfo","CreateOrEditSequenceContent","sequenceState","editingSequenceStepIndex","editingSequenceStep","isAddingNewStep","selectedTriggerType","showNotificationHelperText","dueDateSign","completeEditSequenceStep","cancelEditSequenceStep","reorderSequenceSteps","sequenceView","sequenceId","sequenceSteps","newStep","actionType","sequenceNumber","dragIndex","hoverIndex","nextSequenceSteps","editingStep","newSteps","sequenceStep","triggerBasis","availableTriggers","triggerType","triggerValueType","Trigger","triggerValue","InvoicePastDue","InvoiceComingDue","updateSequenceStep","position","DaysComingDue","DaysPastDue","criteria","Percentage","GreaterThanOrEqualTo","AndLessThan","frequencyOptions","templateOptions","displayRepeat","frequencyType","displayDisputeAndPromise","triggerCategory","renderSequenceStepTrigger","actionValue","templateDescription","attachPromiseToPay","AttachPromiseToPayInvoices","attachDisputed","AttachDisputedInvoices","o","frequencyValue","Repeat","Frequency","NumberOfDays","DayOfTheMonth","Days","Done","isDraggable","moveCard","isNewSequence","ViewAndEditSequence","Active","Disabled","customerContactFrequency","CustomerNotificationFrequency","NotificationFrequencyHelperText","fontWeight","Steps","renderSequenceStep","fequencyType","AddAStep","CustomerGroupsAssigned","ManageCustomerGroups","paddingBottom","customerGroup","customerGroupId","ManageSequences","Overview","backButton","customerSequenceTemplateId","guidRegex","isDomain","isValidDollarAmount","numStr","trxnType","regex","isInt","intStr","isLongerThan","IconFilter","IconHelp","CustomerGroupsHelpDropdown","AccountGroupsInfo","CreateCustomerGroup","customerColumns","companyID","CustomerName","custID","SalesPerson","sperName","TotalAging","selectedCompanyIds","staticFilters","showStaticFilter","previewDynamicGroupContent","renderEditGroupContent","saveCustomerGroup","customerGroupToState","newFilter","isDynamic","updatedFilter","filterCriteriaOptions","newFilters","Filters","getFilterItem","comparator","paddingLeft","AddFilter","filterDescription","optionDescription","actionItems","comparatorItems","hideValueInput","optionKey","filterKey","updateFilter","filterValueType","getReadableFilterText","fetch","filterCriteria","filterValue","getFiltersForAPI","AccountGroupPreview","EmptyCustomerGroups","stroke-linejoin","AccountGroupPreviewEmpty","disableSave","displayLoader","disablePreview","CreateANewAccountGroup","ViewAndEditGroup","GroupType","Dynamic","Static","DynamicGroupsExplanation","StaticGroupsExplanation","NoStatementSearchResultsMessage","getFilterBuilder","EmptyCustomers","onCloseCustomerGroup","DeleteGroup","PreviewGroup","SaveGroup","renderDynamicGroupPreviewContent","GroupName","creatingCustomerGroup","editingCustomerGroup","CreateNewGroup","AccountGroups","NoCustomerGroupsSearchResultsMessage","selectedDocument","deleteDocument","editDocument","uploadFile","getModalProps","companyDocument","clearSelectedDocument","AddedBy","createdByUserId","DateAdded","ConfirmDeleteDocument","SharedDocumentList","SharedDocumentListDescription","AddNewFile","ERPConfiguration","saveConfiguration","urlParts","newUrl","isSyncing","RegisterStepSucceeded","ConfigureConnectorSettings","ConfigureMessage","SyncingMessage","EditAccountingPackage","configInfo","EditPackageSettings","RegistrationSettings","DefaultConfiguration","Toast","linkSpan","textDecoration","ModalCompanyRemap","companySelected","companyToId","companyToName","companyFromId","companyFromName","toContextGroupId","HasBeenRemaped","onRequestClose","contentLabel","overlayClassName","Remap","RemapAndMergeTheEmailToAnExistingCompany","ThisActionCannotBeUndone","ModalCompanyRename","handleInputChange","ChannelNameHasBeenChanged","ChangeDisplayNameForChannel","EnterNewName","SharedDocumentForm","submitDocument","documentId","RenameFile","ReplaceFile","Upload","AttachFileModal","updatingAttachments","addToLibrary","companyDocumentPromises","AttachFile","NoFilesSelected","UploadingAttachments","Attach","SelectUploadFile","AttachFromLibraryModal","ChooseLibraryFiles","attachmentIndex","rowContent","NoCompanyDocuments","AttachFromComputer","SetReminderModal","remindDate","rrule","inputHasFocus","defaultReminderType","calendarClassName","dayClassName","minDate","creatingLedgerEntry","ChooseACustomDateToSnoozeThisActivityUntil","UnmappedPropertyModal","Warning","UnableToPopulateMessage","PleaseFillManually","WarnBeforeDeleteModal","headerContent","deleteButtonText","ConfirmModal","confirmMessage","onConfirm","confirmButtonText","ImportContactsModal","uploadError","ImportContactList","CSVUploadError","dropzoneRef","noClick","onDragEnter","onDragLeave","onDrop","acceptedFiles","addFiles","getRootProps","getInputProps","DragFileToUpload","SelectCSVFromComputer","SelectedFile","Import","UserManagementModal","userRole","permittedPerspectives","setUserPermissions","workspaceRequiredError","companyPerspectiveIds","cPerspective","UserRoleAndAccess","UserRole","UsersMustHaveWorkspaceError","permitted","OriginalEmailModal","ImapConfigModal","pastDaysToImport","importInputValue","reponse","Day","Week","Month","Custom","week","custom","bottomButtons","Syncing","ImapSettings","HostAddress","ImportAllMailFromPast","dayInputs","stateUpdate","mapInputValue","DeleteEmailFromServerAfterImport","ChangeIncomingEmailModal","disconnecting","getGmailCompanyPermissions","gmailConnector","gmailConnectorVersion","connectorToDeactivate","connectorToEnable","ChangeIncomingEmailAccount","ChangeIncomingEmailModalText","Disconnecting","Deactivate","ErrorModal","ErrorDialogTitle","useDispatch","Ok","CustomDateRangeModal","applyDates","CustomDateRange","startOpen","maxDate","shouldCloseOnSelect","endOf","onRemove","showRemove","EmailAddressBar","handleKeyPress","validateAndAdd","getFilteredContacts","invalidFormat","errorStore","modalOpen","popover","removePopover","changed","startAdding","newemail","onChanged","newEmail","hasRequiredEmail","stopAdding","onEmailSelect","filtering","perspectiveCompanyUsers","teamMember","isTeamMember","include","removeParticipant","data-content","InvalidEmailFormat","data-placement","data-trigger","SendStatementModal","hasSetDefaultEmail","StatementFor","attachQuillRefs","quillRefAttached","reactQuillRef","tableIndex","greeting","statementHtml","setEditorContents","departmentEmailKey","andClose","YouSentAStatement","emailsExpander","DropFilesHere","borderTopStyle","Discard","SendForResponse","SendAndClose","renderEditor","StatementWillBeIncluded","addressBook","DisconnectConnectorModal","ConnectorDisconnectWarning","NoCancel","YesDisconnect","AddEmailIdentifierModal","identifiers","identifiersIsValid","changeInput","AddNewDomainOrEmail","NewEmailDomainsToAdd","InvalidEmailIdentifier","Add","CancelRequestResponseModal","send","NotifyRespondentViaEmail","ResponseRequired","CancelRequestWithoutSendingAnEmail","AddSpamAddressModal","isValidAddress","MarkAsSpam","AddSpamDescription","AddSpamPlaceholder","CancelApprovalRequestModal","NotificationApprovalRequestCancelation","CancelApprovalRequestWithoutSendingAnEmail","DKIMConfigurationModal","SPFDKIMConfigurations","SPFDKIMConfigBlurb","ClickHere","hasName","typeformLink","submittedAccountIds","storeAccountIdOnSubmit","SafariModal","UnsupportedBrowser","MissingPaymentMethodModal","MissingPaymentMethod","IconAward","IconSend","IconLock","IconUnlock","IconArchive","Tooltip","ContactsHoverButtons","perspectiveStore","nativeEvent","stopImmediatePropagation","RequestProfileUpdate","MarkAsPrivate","MarkAsPublic","MarkAsPrimary","Archive","ContactsTable","contactsCompanyName","noCompany","editMode","deleteContact","deletedContactKeys","setPrimary","primaryArchive","currentPrimary","signupView","markForInvite","markedContacts","contactsColumns","MissingEmailAddress","contactRole","roles","contactRoleId","LastUpdated","contactUpdateDate","contactInsertDate","contactsHoverColumns","phone","contactsColumnsHideCompany","profileUpdateDate","SetNewPrimaryContactDialog","primaryContact","parentAccount","selectedAccountContacts","YouAreTryingToArchiveAPrimaryContact","PrimaryContactArchiveMessage","SetNewDocumentTypeDialog","WhatDocumentTypeShouldWeSetTheseTo","documentTypes","fileKeys","selectedDocuments","newType","DeleteDocumentConfirmDialog","AreYouSure","OnceYouDeleteDocumentYouCannotRecover","YesIAmSure","SendPrivateContactRequestDialog","ThisProfileIsMarkedPrivateMessage","selectedContact","HideableJSONAttribute","code","buttonShowText","ShowConfig","buttonHideText","HideConfig","showCode","setShowCode","TestEmailConfigModal","configTestStatus","configTest","testEmailAddress","setTestEmailAddress","testEmailAddressStatus","setTestEmailAddressStatus","TestEmailConfiguration","TestingEmailConfigurationForName","CompletedTestingEmailConfigurationForName","imapConfig","ImapConfigTestResults","ImapConfigUsed","ImapConnectionStatus","canConnect","SuccessfullyConnected","FailedToConnect","ImapAuthentication","canAuthorize","SuccessfullyAuthorized","FailedToAuthenticate","imapInboxFolderPath","imapSpecialFolders","ImapSpecialFolders","ShowFolders","HideFolders","imapFolders","ImapFolders","errorString","ErrorMessage","smtpConfig","SmtpConfigTestResults","SmtpConfigUsed","SmtpConnectionStatus","smtpConfigStatus","SmtpAuthentication","SendTestEmailViaSMTP","Sending","EmailStatus","dkimConfig","DkimConfigTestResults","DkimDomain","dkimDomain","DkimRecordsStatus","dkimConfigStatus","SuccessfullyFoundRecords","FailedToFindRecords","getParentPerspectiveId","modalDP","perspectivesDP","generalDP","contextGroupsDP","useHistory","setPerspectiveName","addPerspective","createdPerspectivePath","perspectiveType","getParentPerspectiveLabel","AddNewWorkspaceOfType","WorkspaceName","giveFeedbackSsPortal","AffinipayModal","reference","plan","postAffinipay","InviteUserModal","setFullName","setEmailAddress","setCustomMessage","setDefaultPerspective","ModalManager","setAppElement","modalPros","UserAvatar","IconAlert","InvoiceTable","hover","onSortChange","hasAttachment","isDisputed","displayRelatedConversation","activeDispute","hasPromissoryNote","Disputed","Promised","AmountDue","Due_Date","transactionType","NA","isPastDue","PastDue","getDefaultInvoiceColumns","MessageFlyout","selectedInvoices","inv","paymentAmount","parseFloat","sendMessage","withCompanyInfo","wPerspectiveId","cEmail","wcAddress","withCompanyEmail","sending","refetchConversations","ensureInvoicesFetched","invoiceLedgerHashes","missingIds","invoiceLedgerHashMap","newInvoiceLedgerHashMap","renderThread","threadItems","threadItemContent","isSenderMe","senderName","avatarClassName","documentResponse","ApplicationResponse","DocumentResponse","DocumentReference","ReasonForDispute","Response","ResponseCode","debitNoteInvoiceLedgerHashes","billingReferences","DebitNote","BillingReference","billingReference","InvoiceDocumentReference","conversationSubject","isPortal","isFetchingEntries","showEditor","curr","onAfterClose","closeTimeoutMS","SendAMessage","InvoicesSelectedFor","TotalInvoicedAmount","fetchingTemplate","statDP","IconStar","IconEdit","PaymentConfirmationMessage","isFailure","PaymentFailureMessage","PaymentSuccessfulMessage","AddedPaymentMethod","PaymentErrorIs","YourTransactionIdIs","YourPaymentMethodWasAddedSuccessfully","PaymentErrorCode","errorCode","YourPaymentMethodWasDeclined","paymentErrorCodes","MakePaymentFlyout","nationalAccount","merchantacctendpoint","merchantcurrid","getPaymentMethods","selectedPaymentMethod","getInvoiceKey","getTransactionFee","defaultPaymentMethod","runCallback","onHide","splitledgerHash","payloadForInterpayment","invoiceKey","InvoiceAmount","getTotalTransactionFee","transactionFeeResponses","totalTransactionFee","feeResponse","transactionFee","getSelectedPaymentMethod","splittedNamebyToken","dataToSend","CustomerKey","GroupKey","PaymentMethodId","InvoiceDetails","transactionFeeResponsesLoaded","statusCode","isSurchargeApplicable","totalFee","errMsg","surchargeStatusCode","surchargeErrorMessage","ReminderForOneOrMoreNegativeTransaction","warn","handleCurrency","selectcurrid","renderCurrency","BankAccount","CreditCard","lastFourDigits","addOrUpdatePaymentMethodHelperFn","iframeUrl","addNewPaymentMethod","paymentView","makePaymentHelperfn","iframeLoaded","paymentErrorCode","paymentErrorMessage","invoiceArray","transactionFeeResponse","InterPaymentTransactionId","sTxId","InterPaymentTransactionFee","paymentDate","toUTCString","renderMainContent","invCount","cmCount","invSum","cmSum","allowPartialPayments","PaymentAmount","rowInvoicekey","allowUnappliedPayment","rowPaymentAmount","PayFrom","SelectPaymentMethod","AddNewPaymentMethod","ManagePaymentMethods","InvoicesSelectedForPayment","filteredOutCreditMemo","MakePaymentFlyoutFilteredOutCreditMemo","TotalInvoiceAmount","TotalTransactionFee","TotalPaymentAmount","ReminderForTransactionFee","Apply","Pay","renderAddOrEditMethodContent","fullscreen","onLoad","iframe","prev","paymentMethodPageNumber","confirmDeletePaymentMethodCallback","passedPmtMethodKey","autoPayConfig","automaticPaymentConfiguration","automaticPaymentEnabled","checkForAutoPayRecord","autoPayMethod","pmtMethodKey","DeleteAutoPayMethodConfirm","renderManagePaymentMethodsContent","PaymentMethod","Expired","insertDate","ACH","isEditPaymentBtnClicked","tableHeight","renderMakingPaymentContent","errorMessage1","renderPaymentConfirmationContent","paidInvoices","PaidFrom","PaymentDate","InvoicesPaid","handleBackButtonForPaymentMethod","goBackButton","EditPaymentMethod","MakeAPayment","DisputeFlyout","selectedReason","submitDispute","finalSelectedIndexes","docunentReferences","finalLedgerContent","disputeCodeStore","disputeCodeDescription","disputeReasons","DisputeInvoices","Reason","LoadingDisputeCodes","Select","reason","TotalDisputedAmount","MessageOptional","dcDP","PromiseToPayFlyout","IncorrectInformation","expectedPaymentDate","submitPromiseToPay","paymentMeans","totalInvoiceAmount","requestedMonetaryTotal","PromiseToPay","ExpectedPaymentDate","TotalPromisedAmount","ContactFlyout","fax","line2","line3","isPrimary","submitContact","AddNewContact","JobTitle","PhoneNumber","Fax","CompanyStreetAddress","StateRegion","ZipCode","Person","Business","Notes","optional","MakePrimaryContact","ApplyPaymentFlyout","applyPayment","downloadAttachments","InvoiceNAttachments","getColumns","SelectInvoicesForPaymentApplication","ManageAutoPayFlyout","emailNotification","portalMessageNotification","selectedAutoPayOption","payAllInvoicesOnDayOfMonth","saveAutoPaySettings","confirmAutoPayCallback","dialogMessage","setAutoPayDate","ManageAutomaticPayments","AutomaticPayments","renderPayFrom","SelectAnAutoPayOption","PayAllInvoicesOnTheirGivenDueDates","PayTheTotalOpenBalanceOnThe","DayOfEveryMonth","WhenPaymentIsMadeHowWouldYouLikeToBeNotified","PortalMessage","EmailDefaultAddressOnFile","WeWillPayAllOpenInvoicesOnTheirGivenDueDateUsingThePaymentMethodSelectedAbove","PaymentsFlyout","transactionDateCol","TransactionDate","transactionIdCol","TransactionId","amountCol","PaymentAmt","transactionTypeCol","TransactionType","PendingPayment","invoicesCol","Invoices","invoicesApplicationContent","OneApplication","NApplications","UnappliedAmt","unappliedAmount","TransactionsAppliedToInvoice","InvoicesFlyout","downloadUrl","AmountPaid","amountPaid","DatePaid","paidDate","InvoicesAppliedToPayment","ProfileUpdateRequestFlyout","tableView","nextPage","displayAccountSearchResults","displayContactSearchResults","selectedAccountKeys","selectedAccountRows","selectedContactKeys","selectedContactRows","goToNextPage","goToPrevPage","sendRequests","switchTableView","profileamount","totalCount","Accounts","Contacts","ProfileUpdateRequestFlyoutPreview","renderEmailTemplate","SendRequests","AboutSendRequests","JustStartingOutMessage","ProfileUpdateToAll","ProfileUpdateToSome","contactsSearchTerm","toggleSelectRowAccounts","toggleSelectRowContacts","networkDP","ShareFlyout","defaultHtmlContent","NewActivityFlyout","IconPhone","IconMapPin","IconLinkedIn","IconClipboard","IconMail","IconShare","ContactUpdateForm","dropdownActive","updatedPicture","empty","postRequest","accountRole","accountRoleId","addrLn1","linkedInProfile","phoneExt","postalcode","updateByuserId","formText","PleaseEnsureFormFilledOut","PleaseEnsureFormsFilledOut","toggleEditMode","route","signup","currentContact","CFO","Controller","AR","Manager","AP","Specialist","SalesRepresentitive","Other","ProfileUpdateWelcome","Required","FieldMustBeLessThanN","contactFormOnChange","IfYourVARIABLEIsDifferentContactUsAtEMAIL","InvalidPhoneNumber","InvalidFaxNumber","custContactUpdate","Title","LinkedIn","ProfilePicture","lockstepcontactKey","LockstepContactKey","MailingAddress","NotesOptional","addContactFunction","SaveAndSendUpdate","IconBriefcase","MyProfileView","ShareProfile","SendInMessage","CopyLink","EditProfile","UpdatedDate","ShipToAddrLn1","ShipToCity","ShipToState","ShipToPostalcode","ShipToCountry","accountDP","ProfileUpdateForm","handleChangeComplete","settings","buttonColor","hex","profileInfo","accountData","sameAsBilling","activeColor","admin","accountingGroupDetails","companyDetailToggle","companyDetails","accountProfileKey","aPProfileKey","ProfileKey","taxId","entityClassificationId","entityClassification","dateOfIncoporation","stateOfIncoporation","countryOfIncoporation","faxExt","billToAddrLn1","billToCity","billToState","billToCountry","billToPostalcode","shipToAddrLn1","shipToAddrLn2","shipToCity","shipToState","shipToCountry","shipToPostalcode","mailToAddrLn1","mailToCity","mailToCountry","mailToPostalcode","mailToState","accountingGroupToggle","EmailFieldIsEmpty","classifications","classification","ProfileUpdateThanks","editedAccount","formOnChange","ein","EntityClassification","ArFax","ApFax","CompanyLogo","PrimaryButtonColor","background","showColorPicker","onChangeComplete","ARDepartmentStreet","BillToStreet","toggleSameAsBilling","SameAsBilling","ShipToStreet","showCancelButton","BillTo","ShipTo","INeedToUpdateThisProfile","LooksGood","DocumentUploadForm","currentDocumentType","loadedTable","typeTitle","lastUpdated","updateDocuments","renderDocumentName","submitDocuments","getCurrentDocs","documentsOnChange","updateCurrentDocType","filePath","currentDoc","documentURL","documentTypeId","documentToAmendIndex","documentToAmend","updatedDocument","viewOnly","removeFile","documentsArray","j","AccountName","Documents","valid","PleaseEnsureAllFileNamesShorterThanOneHundred","docsArray","currentType","newDocuments","profileUpdate","documentsUpdate","documentColumns","DocumentType","File","handleLastUpdated","renderUploadButton","LastQuestionDocumentsOnFileUpToDate","INeedToUpdateTheseDocuments","YesTheyAre","CompanyProfileView","modeMap","1","2","String","NoSubsidiariesErrorMessage","subsidiaries","currentSubsidiary","selectedAccountDocumets","newDocType","formSubmit","documentRequest","perspectivesMap","currentLink","CompanyProfiles","groupKey","apAccountingGroupKey","arAccountingGroupKey","isCompany","AddContactFlyout","contactInfo","sendUpdate","AddANewContact","perDP","IconInbox","IconList","SettingsNavigator","setSettingsView","useFlags","Settings","SettingsViews","SIGN_IN_SECURITY","SignInAndSecurity","ChangeYourPassword","SUMMARY_EMAIL_PREFERENCES","ActivitySummaryEmails","ChooseActivitySummmaryEmailsFrequency","WORKSPACE_PREFERENCES","WorkspacePreferences","CustomizeWorkspaceNames","EMAIL_SETTINGS","EmailSettingsV2","ManageEmailSetupAndDelivery","TEMPLATES","USER_PERMISSION_SETTINGS","ManageUsersAndPermissions","getPerspectiveType","persistedDefaultPerspective","persistedPerspectives","initial","SETTINGS","Default","NotificationSettings","notificationFrequency","notificationFrequencyRadios","DailyWeekdays","WeeklyMondays","Never","NotificationSettingsSubtext","EmailTypes","selectedConfig","selectedEmailConfigurationTypeId","onCompanyEmailConfigSelected","getImapConnectorId","IncomingEmailOptions","PerspectiveEmailSettingsViews","EmailForm","coaDP","imapConnectorId","imapConfiguration","getImapConfig","getPerspectiveEmailConfigurationType","getCompanyForwardingAddress","emailSettingsView","setEmailSettingsView","setRemoteEmail","DeliveryPreferences","IncomingMail","EditIncomingEmailDelivery","getDefaultPerspective","setSelectedPerspective","TemplateViews","templatesView","currentTemplate","setTemplatesView","templateDataKey","gettingTemplates","CreateTemplateToSendReplies","AddTemplate","EditTemplate","SignInSecurity","newPassword","oldPassword","postUserUpdate","EmailAddressRegistered","userLoginEmail","ToUpdateEmail","ReenterPassword","ACCOUNTING_SOFTWARE_SETTINGS","setShowFlyout","settingsView","renderSettingsView","FlyoutManager","IconSpinner","order","UploadNotification","DocumentUploading","DocumentUploaded","DocumentFailedToUpload","ExportNotification","exportedTable","exportTableFailed","exportingTable","ExportingTable","ExportComplete","ExportTableFailed","CreatingDisputeNotification","createdDispute","createDisputeFailed","creatingDispute","SubmittingDispute","DisputeSubmitted","FailedSubmittingDispute","CreatingPromiseToPayNotification","createdPromiseToPay","createPromiseToPayFailed","creatingPromiseToPay","SubmittingPromiseToPay","PromiseToPaySubmitted","FailedSubmittingPromiseToPay","DownloadNotification","downloaded","failedDownload","downloading","DownloadInProgress","DownloadComplete","DownloadFailed","ContactSubmittingNotification","submitted","submitting","ContactSubmitting","ContactSubmitted","ContactSubmitFailed","ownProps","ActionNotification","actionPending","actionFailed","actionPendingText","actionCompleteText","actionFailedText","NotificationManager","SendingProfileUpdateRequest","ProfileUpdateRequestSent","FailedToSendProfileUpdateRequest","UploadingImage","UploadedImage","failedPostAccountPicture","UpdatingContactPrivacy","UpdatedContactPrivacy","FailedUpdateContactPrivacy","DeletingDocumens","DeletedDocument","FailedDeleteDocuments","UploadedDocument","AddingContact","AddedContact","FailedAddContact","MarkingContactPrimary","MarkedContactPrimary","FailedMarkContactPrimary","AddingContactAndSendingRequest","AddedContactAndSentRequest","GettingLink","LinkCopied","FailedCopyLink","ArchivingAccount","AccountArchived","FailedArchiveAccount","RestoringAccount","AccountRestored","FailedRestoreAccount","ArchivingContact","ArchivedContact","FailedToArchiveContact","RestoringContact","RestoredContact","FailedToRestoreContact","UpdatingContactStatus","ContactStatusUpdated","FailedToUpdateContactStatus","AddingPaymentMethod","AddingPaymentMethodFailed","SendingMessage","SentMessage","SendMessageFailed","SavingNote","NoteSaved","SavingNoteFailed","ForwardingMessage","ForwardedMessage","FailedForwardMessage","ContactDeleting","ContactDeleted","ContactDeleteFailed","AssigningConversations","AssignedConversations","FailedToAssignConversations","MarkingConversationsRead","MarkedConversationsRead","FailedToMarkConversationsRead","MarkingConversationsUnread","MarkedConversationsUnread","FailedToMarkConversationsUnread","ClosingConversations","ClosedConversations","FailedToCloseConversations","ActivatingConversaions","ActivatedConversations","FailedToActivateConversations","MarkingConversationAsSpam","MarkedConversationAsSpam","FailedToMarkConversationAsSpam","SnoozingActivity","SnoozedActivity","FailedToSnoozeActivity","DeletingTemplate","DeletedTemplate","FailedDeleteTemplate","WorkspacePreferencesSaving","WorkspacePreferencesSaved","WorkspacePreferencesFailed","PartnerAdder","partnerList","addedPartners","onSelect","onMouseDown","removePartner","OriginalDate","WaitingFor","SearchViewModal","query","partnerIds","isCustomDateRange","syncPartners","filtersChanged","executeSearch","updateQuery","clearFilters","searchInput","perspectiveCompanies","nextQueryParams","searchStore","partner","age","originalDate","searchTitle","SearchResults","TimeRange","PastTwentyFourHours","updatePartners","UpdateResults","ClearFilters","currentPath","srchD","ManageWorkflows","creatingWorkflow","editingWorkflow","workflowColumns","Reminder","userDefaultPerspective","pageContent","EditingWorkflow","NewWorkflow","WorkflowType","WorkflowList","WorkflowListDescription","CreateWorkflow","Workflows","ManageContacts","contactColumns","groupName","ConfirmDeleteContact","ContactList","ContactListDescription","ImportCSV","UnauthorizedHeader","submittedAction","showActionSummary","fetchApprovalRequest","poweredByLockstep","PoweredByLockstep","ThankYouForYourDecision","YouHaveActionThis","YourComment","WeWillNotifyRequesterOfYourDecision","requesterDisplayName","HaveAWonderfulDayClosePage","CommentRequired","FailedToSendApprovalDecision","SiteDown","WereOnIt","OurSiteIsExperiencingSomeIssues","handleEditOrSave","UserProfileSaved","perspectiveRadios","DefaultWorkspace","IconAutoPay","AutoPayIndicator","onClickManage","autoPayEnabled","AutomaticPaymentsAreOn","AutomaticPaymentsAreOff","WeWillPayAllOpenInvoicesOnTheirGivenPaymentDates","WhenEnabledWeWillPayAllOpenInvoicesOnTheirGivenPaymentDates","StatementCurrencySelector","displayCounts","IconDollarSign","IconDownload","IconExport","currentSelection","openInvcDivWidth","viewName","settingId","userKey","openInvcColViewSett","colSettings","columnSettings","defaultSortOrder","columnName","sortOrder","wrapperRef","showAccountBalanceHelperText","documentOpenInvoice","clientWidth","scrollLeft","paymentMade","paymentsFromDueDate","paymentsToDueDate","sortHasChanged","dateFilterHasChanged","selectedCurrencyHasChanged","unAppliedPaymentSortHasChanged","currencyWithCount","handleSelectAll","handleLoadMoreUnapplied","exportRows","customerId","invoiceColumns","getOpenInvoiceColumns","handleHideMakePaymentFlyout","openinvoiceColumns","allowPayments","allowDisputes","PortalDisputeActivityKey","columnHeaderText","cnt2","dataField","headtext","customerNameCol","Account","customerName","invoiceDateCol","invoiceNumCol","amountDueCol","fillerCol","dueDateCol","statusCol","pendingPayments","priorPayment","PaymentPending","PartialPayment","pendingPaymentTooltipRef","tranTypeCol","lastPmtDateCol","custPoNoCol","indisputeYNCol","origTranAmtCol","origTranAmt","udf1Col","udf1","udf2Col","udf2","udf3Col","udf3","udf4Col","udf4","udf5Col","udf5","udf6Col","udf6","udf7Col","udf7","udf8Col","udf8","udf9Col","udf9","udf10Col","udf10","cnt1","cnt","hoverColumnFirst","tooltipContent","pendingPaymentsToShow","PaymentInformation","getPendingPaymentTooltipContent","animation","popperOptions","hoverColumnLast","data-tooltip","DownloadInvoices","ExportInvoices","cnt3","renderUnappliedPayments","unappliedAmountCol","ZeroInvoices","TotalUnappliedOrPendingPayments","CheckingForUnappliedPayments","currID","renderButton","allowOnlineCMAppl","allowUnappliedPayments","SelectOkToConfirmPayment","renderEmptyState","useCard","svgInternals","portalUpdatedZeroState","NiceWorkYoureAllCaughtUp","PortalOpenInvoicesEmptyNew","PortalOpenInvoicesEmpty","totalStatementAmount","pastDueInvoices","netStatementBalance","autoPayAllowed","allowAutomaticPayments","hasMultiCurrency","helmet","Helmet","currencySelectorDisplayValues","displayCount","TotalAccountBalance","AccountBalanceHelperText","PastDueInvoices","SendMessage","Dispute","allAttachments","InvoiceAttachments","DownloadAttachments","Export","SeeAllInvoiceResults","Reset","addAllSelected","handleAddAllSelected","showSelectAll","cmpDP","getClosedInvoicesColumns","closeinvoiceColumns","closedInvcColViewSett","amountPaidCol","paidDateCol","transactionsCol","transactionIdContent","NTransactions","HeaderText","NothingToSeeHere","PortalClosedInvoicesEmptyNew","PortalClosedInvoicesEmpty","prevYearTotal","currentYearTotal","TotalInvoicedIn","paymentColViewSett","paymentInfoRef","showThisYearHelperText","showLastYearHelperText","getPaymentsColumns","paymentsColumns","tenderTypeIdCol","isPendPmtCol","isPendPmt","pmtRefCol","pmtRef","PortalPaymentsEmptyNew","PortalPaymentsEmpty","totalUnnaplied","totalUnapplied","charSet","TotalPaidIn","TotalPaidHelperText","TotalUnappliedPaymentAmount","SeeAllPaymentsResults","downloadSelectedAttachments","deleteSelectedAttachments","documentUploaded","attachmentsDeleted","canBeDeleted","updatedProfileAndDocumentsContent","ownerCol","Owner","createdByUser","dateUploadedCol","DateUploaded","typeCol","columnsLD","hoverColumnsLD","PortalDocumentsEmpty","getFileUploadButton","accept","Download","getDocumentsColumns","fetchAddressBook","NoContactInfoYet","AddYourInformationSoWeKnowBestWayToReachYou","fetchFolderConversations","ContactInfo","ContactUs","Messages","folderChanged","folder","getFolderLabel","changeConversationSort","getMessagesColumns","waitingResponseStatus","activeStatus","closedStatus","myAddress","fromCol","updatedDate","displaySubject","toStatus","YourInboxIsEmpty","renderSendMessageButton","perspectiveContent","channelName","conversationsToInbox","conversationsToSent","MoveToInbox","NoMessageSearchResultsMessage","SeeAllMessageResults","NoSubject","EmptyInboxMessages","cardContent","Communications","renderEmptyInboxState","renderCardContent","InboxCount","PortalSessionExpired","YourSessionHasExpired","PortalAccountError","OopsThereIsAnIssueAccessingYourAccount","PleaseContactSupportToReportThisError","IconGlobe","LanguageSelector","Language","languageDescription","locDP","DropdownSearchSort","CustomerPortal","getCompanySelector","allAccountsDisplayName","DropdownWidth","searchInputRef","onFilterValueChange","dropdownSortBy","dropdownSortDirection","handleDropdownSort","handleDropDownClick","sortedDropdownCompanies","cloneDeep","reverse","dropdownCompanies","displayAccountError","changedWithCompanyId","initialLoad","APILive","portalAllowNAcctAccess","vendorPerspective","fetchingCurrenciesFailed","custPage","defaultRoute","companyCustId","CustID","defaultPage","DefaultPortalPage","getDefaultRouteFromPage","atcCustPage","overrideRoute","getRouteFromATCPage","withContextGroup","displayCompanyName","injectedProps","headerLinks","custInvoices","custPayments","propMerger","mergedProps","portalCompanySelector","logoUrl","headerSubtitle","HelloCompanyNameWelcomeBack","HelloCompanyNameIdWelcomeBack","userAgentString","chromeAgent","safariAgent","UnsupportedBrowserText","GiveFeedback","NotificationPreferencesSaved","ManageSignature","uploadSignatureImages","shouldTryUpdate","signatureTitle","companySignature","existingSignature","nextQuillConfig","sigantures","images","attachedImages","image","insertEmbed","attachmentURI","SignaturesExplanation","rejectedFiles","ImageOnlyUploadWarning","DropImageFilesHere","InsertImage","LoginInformationForm","profileupdate","departments","conversion","department","workspaceLabel","ARDepartmentEmailAddress","APDepartmentEmailAddress","UsernameEmail","YourEmailAddress","displayModePicker","departmentId","WhichAccountingSystem","Department","submitButton","BySignuingUpYourAreAgreeingTo","TermsAndConditions","And","PrivacyPolicy","submitButtonOnClick","ContactDisplayCard","noavatar","3","4","5","6","7","CompanyInfoCard","SignupView","currentUser","currentUserEdit","contactEditMode","profileEditMode","companyBody","companyDetailsToggle","accountingGroupDetailsToggle","profilePostRequest","AUserWithThisEmailAlreadyExists","remainingContacts","claim","SignupRoutes","CreateUsernamePasswordHeading","RecomendUsingCompanyEmail","userinfo","YourOneStepCloserToOptimizing","ConfirmCompanyInfoProfile","CreateUserProfileInfo","GreatWhoGetsInvite","CreateUserMyProfileInfo","profileRequest","CreateUserMyContactProfileInfo","SummaryCard","summaryItems","renderColumns","renderSummaryRows","linkTo","renderValue","OpenRequestsView","dataView","openOnboardingRequestsCount","openProfileUpdateRequestsCount","InitialRequest","requestDate","LatestReminder","latestReminderDate","NextReminder","nextReminderDate","OnboardingCount","ProfileCount","renderOpenRequestsTable","netwDP","HomeView","activty","activitykey","networkActivityKey","networkActivityTypeId","entityTypeId","activity","activityKey","activityDescription","profileName","itemCount","SentContactUpdateRequest","SentContactUpdateRequests","UpdatedContactInfo","SentProfileUpdateRequest","SentProfileUpdateRequests","UpdatedProfileInfo","InvalidActivityType","handleActivityClick","profileLogoURL","ViewOpenRequests","ViewProfile","unassignedCount","mineCount","YourOpenActivities","getContextGroupSummaryValues","OpenOnboardingRequests","UnassignedOpenActivities","OpenProfileUpdateRequests","activityCount","NetworkActivity","renderActivityItem","SeeMore","homeViewEmptyMessage","RequestProfileUpdates","LastGeneratedDate","accountUpdateData","fieldName","FreeformText","required","DropdownSelection","CompanyLinkedIn","FileUpload","BillToAddress","ShipToAddress","CreditApplication","ProofOfInsurance","TaxExemptionCertificate","aniversaryAccountData","contactUpdateData","onboardingData","PrimaryContactName","PrimaryContactRole","PrimaryContactEmail","PrimaryContactPhone","SecondaryContactName","SecondaryContactRole","SecondaryContactEmail","SecondaryContactPhone","ViewSequenceContent","FieldName","sequenceMap","SequenceStep","FormFields","FormFieldsDescription","SequenceContactPrivateMessage","SequencesView","CommunicationsView","AccountView","notesEditMode","selectedEmailAttachmentKeys","selectedEmailAttachments","selectedAccountDocuments","selectedDocumentKeys","newNote","toggleNotesEditMode","postNoteChanges","entityGlobalIdentifierNoteKey","NothingToSeeHereNotes","newNotes","userFullName","outside","downloadURL","BankVerification","WNine","gettingSelectedAccount","gettingSelectedAccountDocuments","gettingSelectedAccountContacts","displayProfileLoadingState","displayActivitiesLoadingState","displayContactsLoadingState","displayDocumentsLoadingState","selectedAccountEmailAttachments","selectedAccountArchivedContacts","combinedContacts","contactTableHeaderButtons","enableAccountingData","arAccountingData","apAccountingData","docTypeArray","docTypes","DocumentName","arDocumentKey","apDocumentKey","owner","requestProfileUpdateButton","editProfileButton","contentHeaderProps","pathName","currentView","lastForwardSlash","needClickBack","needClickBackRoute","getViewContentHeader","IncorporatedDate","IncorporatedInState","IncorporatedInStateDate","renderNotesCard","NoContactsHaveBeenAddedYet","RequestProfileUpdateToHaveAccountAddContactsToProfile","AddContact","NoDocumentsHaveBeenAddedYet","RequestProfileUpdateToHaveAccountAddDocumentsToProfile","AddDocument","renderTableHeaderButtons","ProfileDocuments","toggleSelectRowDocuments","EmailAttachments","accountsSearchTerm","accountsSearchLoadedPage","toggleSelectEmailAttachments","ContactView","selectedContactCompanyName","selectedContactCompanyGlobalKey","custGlobalKey","contactCompanyLink","gettingSelectedContact","FilterBuilder","addFilter","deleteFilter","updateFilterString","filterOptions","onDoneClick","filterString","addedFirstVariable","equalToDate","startingDateTimeString","endingDateTimeString","addressString","addressFilterKeys","addressFilterKey","generateFilterString","FilterItem","ClearAll","NetworkView","selectedArchivedAccountKeys","selectedArchivedAccountRows","selectedArchivedContactKeys","selectedArchivedContactRows","contactsSearchLoadedPage","filterStrings","ProfileName","EqualTo","Contains","LockstepVerified","selectedItem","table","getAccountsFilterOptions","getContactsFilterOptions","newFiltersTable","archivedAccountList","summaryItemsAccounts","TotalNumberOfAccounts","LockstepVerifiedAccounts","totalLockstepVerified","UnverifiedAccounts","totalLockstepUnVerified","summaryItemsArchivedAccounts","TotalNumberOfArchivedAccounts","summaryItemsContacts","TotalNumberOfContacts","LockstepVerifiedContacts","UnverifiedContacts","summaryItemsArchivedContacts","TotalNumberOfArchivedContacts","baseAccountColumns","accountColumns","ContactInsertDate","accountHoverColumns","ArchivedAccounts","ArchivedContacts","accountTableHeaderButtons","Unarchive","toggleSelectRowArchivedAccounts","toggleSelectRowArchivedContacts","SearchView","renderAccountProfilesAll","LastUpdatedDate","searchResultCountAccounts","searchResultCounts","renderAccountProfileResult","searchResultCountContacts","renderContactProfileResult","searchResultAccounts","searchResultContacts","SeeAll","renderContactProfilesAll","ProfileManagmentView","ViewController","viewContent","ExpandableNavLink","startExpanded","expanded","setExpanded","handleExpandClick","linkContent","IconHouse","ViewSelector","views","viewRoute","itemDescription","Home","itemIcon","expandedDefault","MyNetwork","AllAccountsAndContacts","tooltip","self","item2","prevPerspectiveId","resetNavigation","getBadgeType","contextGroupName","getBadgeCount","renderNavLink","subViewToUrl","activeClassName","toUrl","accountsDP","IconCircle","PerspectiveSelector","getAvatarText","addWorkspaceInSidebar","AddWorkspaceFor","settingsFlyout","SettingsV2","Logout","CelebrateSVG","mask","DoneSVG","SuccessPage","lockstepverified","LockstepSucess","ClaimYourProfile","ConvertSuccessMessage","ExploreOurFeatures","renderSuccesPage","AddContactsForm","contactsData","secondaryContact","additionalContacts","markedForDelete","accountContactData","AccountProfileKey","AccountKey","APProfileKey","ProfileUpdateDate","localContactKey","isInactive","PleaseEnsureNameEmailAndRoleFilledOut","data-key","updateAdditionalContacts","additionalContactsUpdate","_roles","deleteAdditionalContacts","updatedMarkedForDelete","AddContactsMessage","updatePrimaryContact","primaryContactUpdate","AdditionalContacts","renderAdditionalContacts","ProfileUpdateViewHeader","LogoURL","ProfileUpdateHeader","renderHeader","MarketingVideoView","goToNext","ProfileUpdateWelcomeFromATC","WeAreExcitedToHaveYou","YesLetsDoIt","ContactTableForm","deletedContactRows","DoAllTheseContactsStillWorkFor","INeedToUpdateContacts","YesTheyDo","PaperSVG","UserIconSVG","setProfile","MVPConversionHeader","mvpconversionviewbuttons","ViewCompanyNamesProfile","ViewYourProfile","userEmail","8","9","10","11","12","13","14","15","newProfile","NeverFillOutAFormAgain","SecurelyCollectAndStoreVendorProfiles","AutomaticallyKeepVendorDataUpToDate","ProfileUpdateView","mvpconversion","ProfileUpdateController","ProfileShareView","getInfoCard","ConnectionHasNoDocuments","matchPath","strict","Layout","syncToStorage","prevUserId","metaData","appId","intercomId","hide_default_launcher","dateNow","isRegistering","ErrorBoundary","FullStoryAPI","SomethingWentWrong","OurEngineersHaveBeenNotified","TryAgainInAWhile","ReturnToHomePage","Tracking","accountStore","userDecodedSub","userIdentity","subscriptionTypeId","SubscriptionTypes","CUSTOMER_PORTAL","vendorGroupKey","identity","userDispatch","LaunchDarklyHandler","identify","UserPilotHandler","userpilot","Userpilot","initialize","FullStoryHandler","forceEnableFullStory","isDeveloper","createHashHistory","UserDispatch","registrationDispatch","RegistrationDispatch","id_token","clear","CustPage","samlSession","providerSession","ReactDOM","org","fullstoryId","clientSideID","asyncWithLDProvider","LDProvider","DndProvider","backend","Backend","appID"],"mappings":"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","file":"static/js/main.00364eb4.chunk.js","sourcesContent":["var content = require(\"!!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-2-1!../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-2-2!../../node_modules/postcss-loader/src/index.js??postcss!../../node_modules/sass-loader/dist/cjs.js!./quill.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","var content = require(\"!!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-2-1!../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-2-2!../../node_modules/postcss-loader/src/index.js??postcss!../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","\"use strict\";\n\nif (typeof Promise === \"undefined\") {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require(\"promise/lib/rejection-tracking\").enable();\n window.Promise = require(\"promise/lib/es6-extensions.js\");\n}\n\n// fetch() polyfill for making API calls.\nrequire(\"whatwg-fetch\");\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require(\"object-assign\");\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === \"test\") {\n require(\"raf\").polyfill(global);\n}\n","var content = require(\"!!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-2-1!../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-2-2!../../node_modules/postcss-loader/src/index.js??postcss!../../node_modules/sass-loader/dist/cjs.js!./scrollbox.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","var content = require(\"!!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-2-1!../../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-2-2!../../../node_modules/postcss-loader/src/index.js??postcss!../../../node_modules/sass-loader/dist/cjs.js!./signup.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","var content = require(\"!!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-2-1!../../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-2-2!../../../node_modules/postcss-loader/src/index.js??postcss!../../../node_modules/sass-loader/dist/cjs.js!./main-content-header.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","var content = require(\"!!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-2-1!../../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-2-2!../../../node_modules/postcss-loader/src/index.js??postcss!../../../node_modules/sass-loader/dist/cjs.js!./company-select.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","//This function uses the window.strings object that is created populated by the localization reducer when the user switched language preferences\r\n\r\nexport function getString(languageConstant, defaultValue) {\r\n let stringLibrary = window.strings || {};\r\n let result = stringLibrary[languageConstant];\r\n \r\n try {\r\n if (window.localStorage && window.localStorage.getItem(\"nolangui\")) {\r\n result = `[${languageConstant}]`;\r\n }\r\n } catch {} // DOMExceptions are thrown in cross-origin contexts under newer versions of Chrome, so we'll use the default for now\r\n\r\n if (!result) {\r\n result = defaultValue;\r\n }\r\n return result;\r\n}\r\n\r\n// \"format {0}, {1} {2}\"\r\n// formatString(getString(), ['thing', 'thinger', 'thinger3']);\r\n// \"format {thinger_1} {thinger_2} {thinger_3} \"\r\n// formatString(getString(...), {thinger_1: 'wat', thinger_2: 'wat2', thinger_3: 'wat3'});\r\n\r\nexport function formatString(str, args, delimOpen, delimClose) {\r\n if (arguments.length) {\r\n const open = delimOpen || \"{\";\r\n const close = delimClose || delimOpen || \"}\";\r\n for (let key in args) {\r\n if (Object.prototype.hasOwnProperty.call(args, key)) {\r\n str = str.replace(new RegExp(`\\\\${open}${key}\\\\${close}`, \"gi\"), args[key]);\r\n }\r\n }\r\n }\r\n return str;\r\n}\r\n","import { getString, formatString } from \"./strings\";\r\nimport { decodeURLQueryString } from \"./utils\";\r\n\r\nclass Resources {\r\n get Add() {\r\n return getString(\"ADD\", \"Add\");\r\n }\r\n get Edit() {\r\n return getString(\"EDIT\", \"Edit\");\r\n }\r\n get Delete() {\r\n return getString(\"DELETE\", \"Delete\");\r\n }\r\n get YesDelete() {\r\n return getString(\"YES_DELETE\", \"Yes, delete\");\r\n }\r\n get DeleteConversationWarning() {\r\n return getString(\r\n \"DELETE_CONVERSATION_WARNING\",\r\n \"You are about to permanently delete this conversation. Just checking because once we delete it, it's gone for good.\"\r\n );\r\n }\r\n get DeleteTaskWarning() {\r\n return getString(\r\n \"DELETE_TASK_WARNING\",\r\n \"You are about to permanently delete this task. Just checking because once we delete it, it's gone for good.\"\r\n );\r\n }\r\n\r\n get Error() {\r\n return getString(\"ERROR\", \"Error\");\r\n }\r\n\r\n get Ok() {\r\n return getString(\"OK\", \"Ok\");\r\n }\r\n get Save() {\r\n return getString(\"SAVE\", \"Save\");\r\n }\r\n get SaveAs() {\r\n return getString(\"SAVE_AS\", \"Save as...\");\r\n }\r\n get SaveAndClose() {\r\n return getString(\"SAVE_AND_CLOSE\", \"Save and close\");\r\n }\r\n get Saved() {\r\n return getString(\"SAVED\", \"Saved\");\r\n }\r\n get Saving() {\r\n return getString(\"SAVING\", \"Saving\");\r\n }\r\n get Update() {\r\n return getString(\"UPDATE\", \"Update\");\r\n }\r\n get Updating() {\r\n return getString(\"UPDATING\", \"Updating\");\r\n }\r\n get Submit() {\r\n return getString(\"SUBMIT\", \"Submit\");\r\n }\r\n get Send() {\r\n return getString(\"SEND\", \"Send\");\r\n }\r\n get SendAndClose() {\r\n return getString(\"SEND_AND_CLOSE\", \"Send and close\");\r\n }\r\n get SendForResponse() {\r\n return getString(\"SEND_FOR_RESPONSE\", \"Send for response\");\r\n }\r\n get Discard() {\r\n return getString(\"DISCARD\", \"Discard\");\r\n }\r\n get Done() {\r\n return getString(\"DONE\", \"Done\");\r\n }\r\n get Cancel() {\r\n return getString(\"CANCEL\", \"Cancel\");\r\n }\r\n get NoCancel() {\r\n return getString(\"NO_CANCEL\", \"No, cancel\");\r\n }\r\n get Close() {\r\n return getString(\"CLOSE\", \"Close\");\r\n }\r\n get Preview() {\r\n return getString(\"PREVIEW\", \"Preview\");\r\n }\r\n get ViewTask() {\r\n return getString(\"VIEW_TASK\", \"View Task\");\r\n }\r\n get ViewSent() {\r\n return getString(\"VIEW_Sent\", \"View Sent\");\r\n }\r\n get ViewReceived() {\r\n return getString(\"VIEW_RECEIVED\", \"View Received\");\r\n }\r\n get ViewResponse() {\r\n return getString(\"VIEW_RESPONSE\", \"View Response\");\r\n }\r\n get ViewRelatedConversation() {\r\n return getString(\"VIEW_RELATED_CONVERSATION\", \"View related conversation\");\r\n }\r\n get View() {\r\n return getString(\"VIEW\", \"View\");\r\n }\r\n get Clear() {\r\n return getString(\"CLEAR\", \"Clear\");\r\n }\r\n get Upload() {\r\n return getString(\"UPLOAD\", \"Upload\");\r\n }\r\n get Import() {\r\n return getString(\"Import\", \"Import\");\r\n }\r\n get DragFileToUpload() {\r\n return getString(\"DRAG_FILE_TO_UPLOAD\", \"Drag file here to upload\");\r\n }\r\n get CSVUploadError() {\r\n return getString(\r\n \"UPLOAD_CSV_ERROR\",\r\n \"We were unable to import the file you provided.  Lockstep can import files exported directly from Gmail or Outlook.  If you are having trouble, please send your file to Lockstep support and we'll be happy to help.\"\r\n );\r\n }\r\n get ImportCSV() {\r\n return getString(\"IMPORT_CSV\", \"Import .csv\");\r\n }\r\n get SelectCSVFromComputer() {\r\n return getString(\"SELECT_CSV_FROM_COMPUTER\", \"Select .CSV file from computer\");\r\n }\r\n get SelectedFile() {\r\n return getString(\"SELECTED_FILE\", \"Selected file:\");\r\n }\r\n get Select() {\r\n return getString(\"SELECT\", \"Select\");\r\n }\r\n get Yes() {\r\n return getString(\"YES\", \"Yes\");\r\n }\r\n get No() {\r\n return getString(\"NO\", \"No\");\r\n }\r\n get Search() {\r\n return getString(\"SEARCH\", \"Search\");\r\n }\r\n get SearchResults() {\r\n return getString(\"SEARCH_RESULTS\", \"Search results\");\r\n }\r\n get BackToSearchResults() {\r\n return getString(\"BACK_TO_SEARCH_RESULTS\", \"Back to search results\");\r\n }\r\n get Searching() {\r\n return getString(\"SEARCHING\", \"Searching\");\r\n }\r\n get Reports() {\r\n return getString(\"REPORTS\", \"Reports\");\r\n }\r\n get Manage() {\r\n return getString(\"MANAGE\", \"Manage\");\r\n }\r\n get Accounts() {\r\n return getString(\"ACCOUNTS\", \"Accounts\");\r\n }\r\n get Company() {\r\n return getString(\"COMPANY\", \"Company\");\r\n }\r\n\r\n get Resend() {\r\n return getString(\"RESEND\", \"Resend\");\r\n }\r\n get Resending() {\r\n return getString(\"RESENDING\", \"Resending\");\r\n }\r\n get Resent() {\r\n return getString(\"RESENT\", \"Resent\");\r\n }\r\n get Retry() {\r\n return getString(\"RETRY\", \"Retry\");\r\n }\r\n\r\n get Revoke() {\r\n return getString(\"REVOKE\", \"Revoke\");\r\n }\r\n\r\n get Refreshing() {\r\n return getString(\"REFRESHING\", \"Refreshing\");\r\n }\r\n get Refresh() {\r\n return getString(\"REFRESH\", \"Refresh\");\r\n }\r\n\r\n get Hide() {\r\n return getString(\"HIDE\", \"Hide\");\r\n }\r\n get Show() {\r\n return getString(\"SHOW\", \"Show\");\r\n }\r\n\r\n get Issued() {\r\n return getString(\"ISSUED\", \"Issued\");\r\n }\r\n get Due() {\r\n return getString(\"DUE\", \"Due\");\r\n }\r\n get DueDateLabel() {\r\n return getString(\"DUE_DATE_LABEL\", \"Due date\");\r\n }\r\n get DateProcessed() {\r\n return getString(\"DATE_PROCESSED\", \"Date processed\");\r\n }\r\n get DatePaid() {\r\n return getString(\"DATE_PAID\", \"Date paid\");\r\n }\r\n get DueToday() {\r\n return getString(\"DUE_TODAY\", \"Due Today\");\r\n }\r\n get Today() {\r\n return getString(\"TODAY\", \"Today\");\r\n }\r\n get DueTomorrow() {\r\n return getString(\"DUE_TOMORROW\", \"Due Tomorrow\");\r\n }\r\n OverdueBy(days) {\r\n return formatString(getString(\"OVERDUE_BY\", \"Overdue by {days} days\"), { days });\r\n }\r\n get OverdueByOneDay() {\r\n return getString(\"OVERDUE_BY_ONE_DAY\", \"Overdue by 1 day\");\r\n }\r\n IssueDate(date) {\r\n return formatString(getString(\"ISSUE_DATE\", \"Issued: {date}\"), { date });\r\n }\r\n DueDate(date) {\r\n return formatString(getString(\"DUE_DATE\", \"Due: {date}\"), { date });\r\n }\r\n get Dates() {\r\n return getString(\"DATES\", \"Dates\");\r\n }\r\n get Property() {\r\n return getString(\"PROPERTY\", \"Property\");\r\n }\r\n get Value() {\r\n return getString(\"VALUE\", \"Value\");\r\n }\r\n get All() {\r\n return getString(\"ALL\", \"All\");\r\n }\r\n\r\n get Help() {\r\n return getString(\"HELP\", \"Help\");\r\n }\r\n get SignIn() {\r\n return getString(\"SIGN_IN\", \"Sign In\");\r\n }\r\n get SigningIn() {\r\n return getString(\"SIGNING_IN\", \"Signing In\");\r\n }\r\n get Logout() {\r\n return getString(\"LOGOUT\", \"Logout\");\r\n }\r\n get Settings() {\r\n return getString(\"SETTINGS\", \"Settings\");\r\n }\r\n get SettingsV2() {\r\n return getString(\"SETTINGS\", \"Settings V2\");\r\n }\r\n get Home() {\r\n return getString(\"HOME\", \"Home\");\r\n }\r\n get HomeTitle() {\r\n return getString(\"HOME_TITLE\", \"Welcome to Lockstep!\");\r\n }\r\n get LoginTitle() {\r\n return getString(\"LOGIN_TITLE\", \"Login\");\r\n }\r\n get SessionExpiringTitle() {\r\n return getString(\"SESSION_EXPIRE_TITLE\", \"Session Expiring\");\r\n }\r\n get SessionExpiring() {\r\n return getString(\"SESSION_EXPIRE\", \"Your session is about to expire. Click Ok to renew your session.\");\r\n }\r\n\r\n get UnknownSources() {\r\n return getString(\"UKNOWN_SOURCES\", \"Unknown Sources\");\r\n }\r\n get SortBy() {\r\n return getString(\"SORT_BY\", \"Sort By\");\r\n }\r\n get Name() {\r\n return getString(\"NAME\", \"Name\");\r\n }\r\n get MostRecent() {\r\n return getString(\"MOST_RECENT\", \"Most Recent\");\r\n }\r\n get ActiveCount() {\r\n return getString(\"ACTIVE_COUNT\", \"Active Count\");\r\n }\r\n get RecentSearches() {\r\n return getString(\"RECENT_SEARCHES\", \"Recent Searches\");\r\n }\r\n get Filter() {\r\n return getString(\"FILTER\", \"Filter\");\r\n }\r\n\r\n get Vendors() {\r\n return getString(\"VENDORS\", \"Vendors\");\r\n }\r\n get Customers() {\r\n return getString(\"CUSTOMERS\", \"Customers\");\r\n }\r\n get VendorsAndCustomers() {\r\n return getString(\"VENDORS_AND_CUSTOMERS\", \"Vendors and Customers\");\r\n }\r\n get Vendor() {\r\n return getString(\"VENDOR\", \"Vendor\");\r\n }\r\n get Customer() {\r\n return getString(\"CUSTOMER\", \"Customer\");\r\n }\r\n get OtherCompanyBusiness() {\r\n return getString(\"OTHER_COMPANY_BUSINESS\", \"Other company business (e.g. Payroll)\");\r\n }\r\n get Documents() {\r\n return getString(\"DOCUMENTS\", \"Documents\");\r\n }\r\n get Activities() {\r\n return getString(\"ACTIVITIES\", \"Activities\");\r\n }\r\n get Conversations() {\r\n return getString(\"CONVERSATIONS\", \"Conversations\");\r\n }\r\n get Conversation() {\r\n return getString(\"CONVERSATION\", \"Conversation\");\r\n }\r\n get NewConversation() {\r\n return getString(\"NEW_CONVERSATION\", \"New conversation\");\r\n }\r\n get Task() {\r\n return getString(\"TASK\", \"Task\");\r\n }\r\n get Create() {\r\n return getString(\"CREATE\", \"Create\");\r\n }\r\n get CreateNewTask() {\r\n return getString(\"CREATE_NEW_TASK\", \"Create new task\");\r\n }\r\n TaskCreationMessage(creator, assignee) {\r\n return formatString(getString(\"TASK_CREATION_MESSAGE\", \"{creator} assigned a task to {assignee}\"), {\r\n creator,\r\n assignee\r\n });\r\n }\r\n get Transactions() {\r\n return getString(\"TRANSACTIONS\", \"Transactions\");\r\n }\r\n get SendInvoiceSummary() {\r\n return getString(\"SEND_INVOICE_SUMMARY\", \"Send summary of invoices\");\r\n }\r\n get SendPaymentsSummary() {\r\n return getString(\"SEND_PAYMENTS_SUMMARY\", \"Send summary of payments\");\r\n }\r\n get Statements() {\r\n return getString(\"STATEMENTS\", \"Statements\");\r\n }\r\n StatementFor(company) {\r\n return formatString(getString(\"STATEMENT_FOR\", \"Statement for {company}\"), { company });\r\n }\r\n get StatementWillBeIncluded() {\r\n return getString(\r\n \"STATEMENT_WILL_BE_INCLUDED\",\r\n \"The account statement will be included at the end of this message.\"\r\n );\r\n }\r\n get Profile() {\r\n return getString(\"PROFILE\", \"Profile\");\r\n }\r\n\r\n YouDontHavePermissions(verb, resource) {\r\n return formatString(\r\n getString(\r\n \"YOU_DONT_HAVE_PERMISSIONS\",\r\n \"You don't have permission to {verb} the {resource}. It may be a feature available only to account administrators.\"\r\n ),\r\n {\r\n verb,\r\n resource\r\n }\r\n );\r\n }\r\n get SubscriptionFetchFailure() {\r\n return getString(\"SUBSCRIPTION_FETCH_FAILED\", \"Fetching of your subscription data failed. Please try again.\");\r\n }\r\n\r\n get AccountFetchFailure() {\r\n return getString(\"ACCOUNT_FETCH_FAILED\", \"Fetching of your account data failed. Please try again.\");\r\n }\r\n get AccountCreateFailure() {\r\n return getString(\"ACCOUNT_CREATE_FAILED\", \"Creation of your new account failed. Please try again.\");\r\n }\r\n get AccountUpdateFailure() {\r\n return getString(\"ACCOUNT_UPDATE_FAILED\", \"Update of your account failed. Please try again.\");\r\n }\r\n\r\n get CompanyInfoFetchFailure() {\r\n return getString(\"COMPANY_INFO_FETCH_FAILURE\", \"Fetching information for the company failed. Please try again.\");\r\n }\r\n get CompanyFetchFailure() {\r\n return getString(\"COMPANY_FETCH_FAILED\", \"Fetching of your company data failed. Please try again.\");\r\n }\r\n get CompanyCreateFailure() {\r\n return getString(\"COMPANY_CREATE_FAILED\", \"Creation of your new company failed. Please try again.\");\r\n }\r\n get CompanyUpdateFailure() {\r\n return getString(\"COMPANY_UPDATE_FAILED\", \"Update of your company failed. Please try again.\");\r\n }\r\n\r\n get FetchResourcesFailure() {\r\n return getString(\"FETCH_RESOURCES_FAILURE\", \"Fetching resources failed. Please try again.\");\r\n }\r\n\r\n get SavingSettingsFailure() {\r\n return getString(\"SAVING_SETTINGS_FAILURE\", \"Saving settings failed. Please try again.\");\r\n }\r\n get FetchSettingsFailure() {\r\n return getString(\"FETCH_SETTINGS_FAILURE\", \"Fetching settings failed. Please try again.\");\r\n }\r\n\r\n get UserLoginFailure() {\r\n return getString(\"USER_LOGIN_FAILURE\", \"Login failed. Please verify your information and try again.\");\r\n }\r\n\r\n get GrantsFetchFailure() {\r\n return getString(\"GRANTS_FETCH_FAILED\", \"Fetching the grants for this company failed. Please try again.\");\r\n }\r\n get ResourcesFetchFailure() {\r\n return getString(\"RESOURCES_FETCH_FAILED\", \"Fetching the resources for this company failed. Please try again.\");\r\n }\r\n\r\n get AccountInformation() {\r\n return getString(\"ACCOUNT_INFORMATION\", \"Account Information\");\r\n }\r\n get AccountName() {\r\n return getString(\"ACCOUNT_NAME\", \"Account Name\");\r\n }\r\n\r\n get CompanyInformation() {\r\n return getString(\"COMPANY_INFORMATION\", \"Company Information\");\r\n }\r\n get CompanyName() {\r\n return getString(\"COMPANY_NAME\", \"Company name\");\r\n }\r\n\r\n get Addresses() {\r\n return getString(\"ADDRESSES\", \"Addresses\");\r\n }\r\n get EmailAddresses() {\r\n return getString(\"EMAIL_ADDRESSES\", \"Email Addresses\");\r\n }\r\n get EmailAddress() {\r\n return getString(\"EMAIL_ADDRESS\", \"Email Address\");\r\n }\r\n\r\n get DefaultWorkspace() {\r\n return getString(\"DEFAULT_WORKSPACE\", \"Default Workspace\");\r\n }\r\n get UsersMustHaveWorkspaceError() {\r\n return getString(\r\n \"USERS_MUST_HAVE_WORKSPACE_ERROR\",\r\n \"Whoops! Please make sure that the user has access to at least one workspace.\"\r\n );\r\n }\r\n get WorkspaceAccess() {\r\n return getString(\"WORKSPACE_ACCESS\", \"Workspace Access\");\r\n }\r\n get AddWorkspace() {\r\n return getString(\"ADD_WORKSPACE\", \"Add Workspace\");\r\n }\r\n get AddWorkspaceFor() {\r\n return getString(\"ADD_WORKSPACE_FOR\", \"Add a workspace for\");\r\n }\r\n AddNewWorkspaceOfType(workspaceType) {\r\n return getString(\"ADD_NEW_WORKSPACE_OF_TYPE\", `Add a new ${workspaceType} workspace`);\r\n }\r\n get Signature() {\r\n return getString(\"SIGNATURE\", \"Signature\");\r\n }\r\n get Repeat() {\r\n return getString(\"REPEAT\", \"Repeat\");\r\n }\r\n get Frequency() {\r\n return getString(\"FREQUENCY\", \"Frequency\");\r\n }\r\n get CustomerNotificationFrequency() {\r\n return getString(\"CUSTOMER_NOTIFICATION_FREQUENCY\", \"Customer notification frequency\");\r\n }\r\n get NotificationFrequencyHelperText() {\r\n return getString(\r\n \"NOTIFICATION_FREQUENCY_HELPER_TEXT\",\r\n \"You don’t want to spam your customers with too many notifications and updates. Since you send a high volume of invoices per month to some of your bigger customers, you can control how frequently they are contacted. The customer notification frequency will ensure only the most important communications are sent at the interval of your choosing.\"\r\n );\r\n }\r\n get Notifications() {\r\n return getString(\"NOTIFICATIONS\", \"Notifications\");\r\n }\r\n get NotificationSettings() {\r\n return getString(\"NOTIFICATION_SETTINGS\", \"Notification Settings\");\r\n }\r\n get NotificationSettingsSubtext() {\r\n return getString(\r\n \"NOTIFICATION_SETTINGS_SUBTEXT\",\r\n \"To help you stay on top of important activities we can send you activity summary emails. Select the frequency at which you’d like to receive these emails.\"\r\n );\r\n }\r\n get CompanyWorkspaceSettings() {\r\n return getString(\"COMPANY_WORKSPACE_SETTINGS\", \"Workspace Settings\");\r\n }\r\n\r\n get CompanyEmailSettings() {\r\n return getString(\"COMPANY_EMAIL_SETTINGS\", \"Email Settings\");\r\n }\r\n get CompanyAccountingPackages() {\r\n return getString(\"COMPANY_ACCOUNTING_PACKAGES\", \"Accounting Packages\");\r\n }\r\n get CompanyUsersAndPermissions() {\r\n return getString(\"COMPANY_USERS_AND_PERMISSIONS\", \"Users and Permissions\");\r\n }\r\n get CompanyAuthentication() {\r\n return getString(\"COMPANY_AUTHENTICATION\", \"Authentication\");\r\n }\r\n get CompanyFeatures() {\r\n return getString(\"COMPANY_FEATURES\", \"Features\");\r\n }\r\n get CompanyAppStore() {\r\n return getString(\"COMPANY_APP_STORE\", \"App Store\");\r\n }\r\n get MyProfile() {\r\n return getString(\"MY_PROFILE\", \"My profile\");\r\n }\r\n get CompanyProfile() {\r\n return getString(\"COMPANY_PROFILE\", \"Company profile\");\r\n }\r\n\r\n get CompanyInfoTitle() {\r\n return getString(\"COMPANY_INFO_TITLE\", \"Company Profile\");\r\n }\r\n CompanyInfoSendMailTo(type) {\r\n return formatString(getString(\"COMPANY_INFO_SEND_MAIL\", \"Send {type} items to\"), { type: type });\r\n }\r\n get CompanyInfoSendMailToAP() {\r\n return this.CompanyInfoSendMailTo(this.AccountsPayableAbbr);\r\n }\r\n get CompanyInfoSendMailToAR() {\r\n return this.CompanyInfoSendMailTo(this.AccountsReceivableAbbr);\r\n }\r\n get CompanyInfoContactNumbers() {\r\n return getString(\"COMPANY_INFO_CONTACT_NUMBERS\", \"Contact Numbers\");\r\n }\r\n get CompanyInfoAddress() {\r\n return getString(\"COMPANY_INFO_ADDRESS\", \"Address\");\r\n }\r\n get CompanyInfoUrl() {\r\n return getString(\"COMPANY_INFO_URL\", \"URL\");\r\n }\r\n get CompanyInfoTIN() {\r\n return getString(\"COMPANY_INFO_TIN\", \"TIN\");\r\n }\r\n get CompanyInfoW9() {\r\n return getString(\"COMPANY_INFO_W9\", \"W-9 File?\");\r\n }\r\n get CompanyInfoW8() {\r\n return getString(\"COMPANY_INFO_W8\", \"W-8 BEN File\");\r\n }\r\n CompanyInfoLink(perspective) {\r\n return formatString(getString(\"COMPANY_INFO_LINK\", \"{perspective} ID\"), {\r\n perspective\r\n });\r\n }\r\n get ViewCompanyInAccountingPackage() {\r\n return getString(\"VIEW_COMPANY_IN_ACCOUNTING_PACKAGE\", \"View company in accounting package\");\r\n }\r\n\r\n get ChooseIcon() {\r\n return getString(\"CHOOSE_ICON\", \"Choose Icon\");\r\n }\r\n get ThisSpaceIsFor() {\r\n return getString(\"THIS_SPACE_IS_FOR\", \"This space is for collaborating with\");\r\n }\r\n\r\n EmailSettingsForward(type) {\r\n return formatString(\r\n getString(\"EMAIL_SETTINGS_FORWARD\", \"Forward a copy of your {type} emails to this address:\"),\r\n { type: type }\r\n );\r\n }\r\n get EmailSettingsAPForward() {\r\n return this.EmailSettingsForward(this.AccountsPayable);\r\n }\r\n get EmailSettingsARForward() {\r\n return this.EmailSettingsForward(this.AccountsReceivable);\r\n }\r\n get EmailForwardText() {\r\n return getString(\r\n \"EMAIL_FORWARD_TEXT\",\r\n \"You could forward the emails yourself with a rule in your email program. Or, you could work with your email administration team to have all emails forwarded to the appropriate address listed above for your primary AR and AP email addresses.\"\r\n );\r\n }\r\n get EmailCcBccToggle() {\r\n return getString(\"EMAIL_CC_BCC_TOGGLE\", \"Cc/Bcc\");\r\n }\r\n get EmailFrom() {\r\n return getString(\"EMAIL_FROM\", \"From\");\r\n }\r\n get EmailTo() {\r\n return getString(\"EMAIL_TO\", \"To\");\r\n }\r\n get EmailCC() {\r\n return getString(\"EMAIL_CC\", \"Cc\");\r\n }\r\n get EmailBCC() {\r\n return getString(\"EMAIL_BCC\", \"Bcc\");\r\n }\r\n get NoRelatedConversationsFound() {\r\n return getString(\r\n \"NO_RELATED_CONVERSATIONS\",\r\n \"We didn't find any conversations that might also be related to this conversation.\"\r\n );\r\n }\r\n get RelatedConversations() {\r\n return getString(\"RELATED_CONVERSATIONS\", \"Related Conversations\");\r\n }\r\n get EmailRe() {\r\n return getString(\"EMAIL_RE\", \"RE:\");\r\n }\r\n get EmailFw() {\r\n return getString(\"EMAIL_FW\", \"FW:\");\r\n }\r\n get EmailAbout() {\r\n return getString(\"EMAIL_ABOUT\", \"RE:\");\r\n }\r\n\r\n get Bill() {\r\n return getString(\"BILL\", \"Bill\");\r\n }\r\n get CreateNewBill() {\r\n return getString(\"CREATE_NEW_BILL\", \"Create a new bill\");\r\n }\r\n get Invoice() {\r\n return getString(\"INVOICE\", \"Invoice\");\r\n }\r\n get Invoices() {\r\n return getString(\"INVOICES\", \"Invoices\");\r\n }\r\n get OpenInvoices() {\r\n return getString(\"OPEN_INVOICES\", \"Open Invoices\");\r\n }\r\n get ClosedInvoices() {\r\n return getString(\"CLOSED_INVOICES\", \"Closed Invoices\");\r\n }\r\n get PastDueInvoices() {\r\n return getString(\"PAST_DUE_INVOICES\", \"Past Due Invoices\");\r\n }\r\n get DaysComingDue() {\r\n return getString(\"DAYS_COMING_DUE\", \"Days coming due\");\r\n }\r\n get DaysPastDue() {\r\n return getString(\"DAYS_PAST_DUE\", \"Days past due\");\r\n }\r\n get InvoiceComingDue() {\r\n return getString(\"INVOICE_COMING_DUE\", \"Invoice coming due\");\r\n }\r\n get InvoicePastDue() {\r\n return getString(\"INVOICE_PAST_DUE\", \"Invoice past due\");\r\n }\r\n get TotalOpen() {\r\n return getString(\"TOTAL_OPEN\", \"Total open\");\r\n }\r\n get TotalOpenInvoiceBalance() {\r\n return getString(\"TOTAL_OPEN_INVOICE_BALANCE\", \"Total open invoice balance\");\r\n }\r\n get TotalAccountBalance() {\r\n return getString(\"TOTAL_ACCOUNT_BALANCE\", \"Total account balance\");\r\n }\r\n get AccountBalanceHelperText() {\r\n return getString(\r\n \"ACCOUNT_BALANCE_HELPER_TEXT\",\r\n \"Your total account balance is updated to reflect any pending and unapplied payments you have made.\"\r\n );\r\n }\r\n get TotalClosed() {\r\n return getString(\"TOTAL_CLOSED\", \"Total closed\");\r\n }\r\n get Total() {\r\n return getString(\"TOTAL\", \"Total\");\r\n }\r\n get PO() {\r\n return getString(\"PO\", \"PO\");\r\n }\r\n get SO() {\r\n return getString(\"SO\", \"SO\");\r\n }\r\n get Payment() {\r\n return getString(\"PAYMENT\", \"Payment\");\r\n }\r\n get MakeAPayment() {\r\n return getString(\"MAKE_A_PAYMENT\", \"Make a payment\");\r\n }\r\n get Payments() {\r\n return getString(\"PAYMENTS\", \"Payments\");\r\n }\r\n get PaymentDetails() {\r\n return getString(\"PAYMENT_DETAILS\", \"Payment details\");\r\n }\r\n get PaymentAmount() {\r\n return getString(\"PAYMENT_AMOUNT\", \"Payment amount\");\r\n }\r\n get PaymentMethod() {\r\n return getString(\"PAYMENT_METHOD\", \"Payment method\");\r\n }\r\n get AddingPaymentMethod() {\r\n return getString(\"ADDING_PAYMENT_METHOD\", \"Adding payment method\");\r\n }\r\n get AddedPaymentMethod() {\r\n return getString(\"ADDED_PAYMENT_METHOD\", \"Added payment method\");\r\n }\r\n get AddingPaymentMethodFailed() {\r\n return getString(\"ADDING_PAYMENT_METHOD_FAILED\", \"Adding the payment method failed\");\r\n }\r\n get PaymentDate() {\r\n return getString(\"PAYMENT_DATE\", \"Payment date\");\r\n }\r\n get PaidFrom() {\r\n return getString(\"PAID_FROM\", \"Paid from\");\r\n }\r\n get PaymentInfoFetchError() {\r\n return getString(\"PAYENT_INFO_FETCH_ERROR\", \"Fetching payment info failed.\");\r\n }\r\n get MakePaymentError() {\r\n return getString(\"MAKE_PAYMENT_ERROR\", \"Making payment failed.\");\r\n }\r\n get DeletePaymentMethodError() {\r\n return getString(\"DELETE_PAYMENT_METHOD_ERROR\", \"Deleting payment method failed.\");\r\n }\r\n get BankAccount() {\r\n return getString(\"BANK_ACCOUNT\", \"Bank account\");\r\n }\r\n get CreditCard() {\r\n return getString(\"CREDIT_CARD\", \"Credit card\");\r\n }\r\n get ACH() {\r\n return getString(\"ACH\", \"ACH\");\r\n }\r\n get SelectPaymentMethod(){\r\n return (\"SELECT_PAYMENT_METHOD\",\"Select Payment Method\");\r\n }\r\n get Expired() {\r\n return getString(\"EXPIRED\", \"Expired\");\r\n }\r\n get GoToBill() {\r\n return getString(\"GO_TO_BILL\", \"Go to bill\");\r\n }\r\n get GoToInvoice() {\r\n return getString(\"GO_TO_INVOICE\", \"Go to invoice\");\r\n }\r\n get AppliedToInvoice() {\r\n return getString(\"APPLIED_TO_INVOICE\", \"Applied to invoice\");\r\n }\r\n TotalInvoicedIn(year) {\r\n return formatString(getString(\"TOTAL_INVOICED_IN\", \"Total invoiced in {year}\"), { year });\r\n }\r\n TotalPaidIn(year) {\r\n return formatString(getString(\"TOTAL_PAID_IN\", \"Total paid in {year}\"), { year });\r\n }\r\n get TotalPaidHelperText() {\r\n return getString(\r\n \"TOTAL_PAID_HELPER_TEXT\",\r\n \"Your total amount paid includes any pending and unapplied payments you have made.\"\r\n );\r\n }\r\n GoToResource(resource) {\r\n return formatString(getString(\"GO_TO_RESOURCE\", \"Go to {resource}\"), {\r\n resource\r\n });\r\n }\r\n\r\n get InvoicesSelectedForMessage() {\r\n return getString(\"INVOICES_SELECTED_FOR_MESSAGE\", \"Invoices selected for message\");\r\n }\r\n InvoicesSelectedForPayment(num) {\r\n return formatString(getString(\"INVOICES_SELECTED_FOR_PAYMENT\", \"Invoices selected for payment ({num})\"), { num });\r\n }\r\n TotalPaymentAmount(num) {\r\n return formatString(getString(\"TOTAL_PAYMENT_AMOUNT\", \"Total payment amount: {num}\"), { num });\r\n }\r\n TotalInvoiceAmount(num) {\r\n return formatString(getString(\"TOTAL_INVOICE_AMOUNT\", \"Total invoice amount: {num}\"), { num });\r\n }\r\n\r\n TotalTransactionFee(num) {\r\n return formatString(getString(\"TOTAL_TRANSACTION_FEE\", \"Total transaction fee: {num}\"), { num });\r\n }\r\n\r\n get ReminderForTransactionFee(){\r\n return getString(\r\n \"MAKE_PAYMENT_FLYOUT_REMINDER_FOR_TRANACTION_FEE\",\r\n \"Reminder: PLEASE INFORM THE CUSTOMER THAT THERE MAY BE A TRANSACTION FEE APPLIED TO COVER CREDIT CARD PROCESSING COSTS.\"\r\n );\r\n }\r\n\r\n TotalPromisedAmount(num) {\r\n return formatString(getString(\"TOTAL_PROMISED_AMOUNT\", \"Total promised amount: {num}\"), { num });\r\n }\r\n TotalDisputedAmount(num) {\r\n return formatString(getString(\"TOTAL_DISPUTED_AMOUNT\", \"Total disputed amount: {num}\"), { num });\r\n }\r\n TotalInvoicedAmount(num) {\r\n return formatString(getString(\"TOTAL_INVOICED_AMOUNT\", \"Total invoiced amount: {num}\"), { num });\r\n }\r\n get PayFrom() {\r\n return getString(\"PAY_FROM\", \"Pay from\");\r\n }\r\n get MakePayment() {\r\n return getString(\"MAKE_PAYMENT\", \"Make a payment\");\r\n }\r\n get ExportInvoices(){\r\n return getString(\"EXPORT_INVOICES\", \"Export Invoices\");\r\n }\r\n get DownloadInvoices(){\r\n return getString(\"DOWNLOAD_INVOICES\", \"Download Invoices\");\r\n }\r\n get EditPaymentMethod() {\r\n return getString(\"EDIT_PAYMENT_METHOD\", \"Edit payment method\");\r\n }\r\n get AddNewPaymentMethod() {\r\n return getString(\"ADD_NEW_PAYMENT_METHOD\", \"Add a new payment method\");\r\n }\r\n get ManagePaymentMethods() {\r\n return getString(\"MANAGE_PAYMENT_METHODS\", \"Manage payment methods\");\r\n }\r\n get ViewTransactions() {\r\n return getString(\"VIEW_TRANSACTIONS\", \"View transaction history\");\r\n }\r\n\r\n get InvoiceArrived() {\r\n return getString(\"INVOICE_ARRIVED\", \"New invoice has arrived\");\r\n }\r\n ResourceCreated(resource) {\r\n return formatString(getString(\"RESOURCE_CREATED\", \"{resource} created!\"), {\r\n resource\r\n });\r\n }\r\n InvoiceImported(resource) {\r\n return formatString(getString(\"RESOURCE_IMPORTED\", \"{resource} imported into your accounting package!\"), {\r\n resource\r\n });\r\n }\r\n AutoEntryMessage(resource, id, erp) {\r\n return formatString(getString(\"AUTO_ENTRY_MESSAGE\", \"{resource} {id} was automatically entered into {erp}\"), {\r\n resource,\r\n id,\r\n erp\r\n });\r\n }\r\n\r\n get AccountsPayableAbbr() {\r\n return getString(\"ACCOUNTS_PAYABLE_ABBR\", \"AP\");\r\n }\r\n get AccountsReceivableAbbr() {\r\n return getString(\"ACCOUNTS_RECEIVABLE_ABBR\", \"AR\");\r\n }\r\n get AccountsPayable() {\r\n return getString(\"ACCOUNTS_PAYABLE\", \"Accounts Payable\");\r\n }\r\n get AccountsReceivable() {\r\n return getString(\"ACCOUNTS_RECEIVABLE\", \"Accounts Receivable\");\r\n }\r\n\r\n get Payables() {\r\n return getString(\"PAYABLES\", \"Payables\");\r\n }\r\n get Receivables() {\r\n return getString(\"RECEIVABLES\", \"Receivables\");\r\n }\r\n get SignUp_BodyTextStep5() {\r\n return getString(\"BODY_TEXT_STEP_5\", \"Congratulations, you have successfully created your account.\");\r\n }\r\n get Enter() {\r\n return getString(\"ENTER\", \"Enter\");\r\n }\r\n get Lockstep() {\r\n return getString(\"LOCKSTEP\", \"Lockstep\");\r\n }\r\n get SignUp_BodyTextStep4() {\r\n return getString(\"BODY_TEXT_STEP_4\", \"Congratulations, your account has been successfully connected!\");\r\n }\r\n get Previous() {\r\n return getString(\"PREVIOUS\", \"Previous\");\r\n }\r\n get Next() {\r\n return getString(\"NEXT\", \"Next\");\r\n }\r\n get Step() {\r\n return getString(\"STEP\", \"Step\");\r\n }\r\n get Loading() {\r\n return getString(\"LOADING\", \"Loading\");\r\n }\r\n get LoadingAccounts() {\r\n return getString(\"LOADING_ACCOUNTS\", \"Loading Accounts\");\r\n }\r\n\r\n get Newest() {\r\n return getString(\"NEWEST\", \"Newest\");\r\n }\r\n get Features() {\r\n return getString(\"FEATURES\", \"Features\");\r\n }\r\n get ExclamationMark() {\r\n return getString(\"!\", \"!\");\r\n }\r\n get SelectCompany_Title() {\r\n return getString(\"SELECT_COMPANY_TITLE\", \"Select company\");\r\n }\r\n get SelectCompany_ChooseCompanyBlurb() {\r\n return getString(\"CHOOSE_COMPANY_BLURB\", \"Choose the company you would like to work with:\");\r\n }\r\n get SelectCompany_FooterBlurb() {\r\n return getString(\"FOOTER_BLURB\", \"We've just added the ability to X and X. Click here to learn more...\");\r\n }\r\n\r\n get DeliveredByLockstep() {\r\n return getString(\"DELIVERED_BY_LOCKSTEP\", \"Delivered by Lockstep Network\");\r\n }\r\n\r\n get OtherActions() {\r\n return getString(\"OTHER_ACTIONS\", \"Other Actions\");\r\n }\r\n get Actions() {\r\n return getString(\"ACTIONS\", \"Actions\");\r\n }\r\n get ReAssign() {\r\n return getString(\"REASSIGN\", \"Re-assign\");\r\n }\r\n get Assign() {\r\n return getString(\"ASSIGN\", \"Assign\");\r\n }\r\n get YouAssigned() {\r\n return getString(\"YOU_ASSIGNED\", \"You assigned.\");\r\n }\r\n get Status() {\r\n return getString(\"STATUS\", \"Status\");\r\n }\r\n YouChangedStatus(status) {\r\n return formatString(getString(\"YOU_CHANGED_STATUS\", \"You changed status to {status}.\"), { status });\r\n }\r\n get StartNew() {\r\n return getString(\"START_NEW\", \"+ Start new...\");\r\n }\r\n get CreateNew() {\r\n return getString(\"CREATE_NEW\", \"+ Create new...\");\r\n }\r\n get Compose() {\r\n return getString(\"COMPOSE\", \"Compose\");\r\n }\r\n get YouSentAStatement() {\r\n return getString(\"YOU_SENT_A_STATEMENT\", \"You sent a statement.\");\r\n }\r\n get YouCreatedATask() {\r\n return getString(\"YOU_CREATED_A_TASK\", \"You created a task.\");\r\n }\r\n get YouSentNewMail() {\r\n return getString(\"YOU_SENT_NEW_MAIL\", \"You sent new mail.\");\r\n }\r\n get YouSentNewMailClosed() {\r\n return getString(\"YOU_SENT_NEW_MAIL_CLOSED\", \"You sent new mail and closed the conversation.\");\r\n }\r\n get YouSentNewMailWaitForResponse() {\r\n return getString(\"YOU_SENT_NEW_MAIL_WAIT_FOR_RESPONSE\", \"You sent new mail and are waiting for a response.\");\r\n }\r\n get Reply() {\r\n return getString(\"REPLY\", \"Reply\");\r\n }\r\n get YouReplied() {\r\n return getString(\"YOU_REPLIED\", \"You replied.\");\r\n }\r\n get YouRepliedClosed() {\r\n return getString(\"YOU_REPLIED_CLOSED\", \"You replied and closed the conversation.\");\r\n }\r\n get YouRepliedWaitForResponse() {\r\n return getString(\"YOU_REPLIED_WAIT_FOR_RESPONSE\", \"You replied and are waiting for a response.\");\r\n }\r\n get SentButNotClosed() {\r\n return getString(\"SENT_BUT_NOT_CLOSED\", \"Your message was sent, but the conversation was not closed.\");\r\n }\r\n get SentButNotWaitingForResponse() {\r\n return getString(\r\n \"SENT_BUT_NOT_WAITING_FOR_RESPONSE\",\r\n \"Your message was sent, but the conversation was not marked as waiting for response.\"\r\n );\r\n }\r\n get ReplyAll() {\r\n return getString(\"REPLY_ALL\", \"Reply All\");\r\n }\r\n get ForwardACopy() {\r\n return getString(\"FORWARD_A_COPY\", \"Forward a Copy\");\r\n }\r\n get Forward() {\r\n return getString(\"FORWARD\", \"Forward\");\r\n }\r\n get ForwardAsNewConversation() {\r\n return getString(\"FORWARD_AS_NEW_CONVERSATION\", \"Forward as a New Conversation\");\r\n }\r\n get YouForwarded() {\r\n return getString(\"YOU_FORWARDED\", \"You forwarded.\");\r\n }\r\n get YouForwardedClosed() {\r\n return getString(\"YOU_FORWARDED_CLOSED\", \"You forwarded and closed the conversation.\");\r\n }\r\n RespondedToForward(responder) {\r\n return formatString(\r\n getString(\"RESPONDED_TO_FORWARD\", \"{responder} responded to forward.\"),\r\n { responder }\r\n );\r\n }\r\n get AddNote() {\r\n return getString(\"ADD_NOTE\", \"Add note\");\r\n }\r\n get YouCreatedNote() {\r\n return getString(\"YOU_CREATED_NOTE\", \"You created a note.\");\r\n }\r\n get YouCreatedNoteClosed() {\r\n return getString(\"YOU_CREATED_NOTE_CLOSED\", \"You created a note and closed the conversation.\");\r\n }\r\n get Title() {\r\n return getString(\"TITLE\", \"Title\");\r\n }\r\n get Subject() {\r\n return getString(\"SUBJECT\", \"Subject\");\r\n }\r\n get NoSubject() {\r\n return getString(\"NO_SUBJECT\", \"(No subject)\");\r\n }\r\n get Partner() {\r\n return getString(\"PARTNER\", \"Partner\");\r\n }\r\n get Age() {\r\n return getString(\"AGE\", \"Age\");\r\n }\r\n get Ago() {\r\n return getString(\"AGO\", \"Ago\");\r\n }\r\n get WaitingFor() {\r\n return getString(\"WAITING_FOR\", \"Waiting for\");\r\n }\r\n get Text() {\r\n return getString(\"TEXT\", \"text\");\r\n }\r\n get HTML() {\r\n return getString(\"HTML\", \"html\");\r\n }\r\n get ShowAsText() {\r\n return getString(\"SHOW_AS_TEXT\", \"Show email as text\");\r\n }\r\n get ShowAsHtml() {\r\n return getString(\"SHOW_AS_HTML\", \"Show email as HTML\");\r\n }\r\n\r\n get From() {\r\n return getString(\"FROM\", \"From\");\r\n }\r\n get To() {\r\n return getString(\"TO\", \"To\");\r\n }\r\n get CC() {\r\n return getString(\"CC\", \"CC\");\r\n }\r\n get Date() {\r\n return getString(\"DATE\", \"Date\");\r\n }\r\n get Item() {\r\n return getString(\"ITEM\", \"Item\");\r\n }\r\n get Amount() {\r\n return getString(\"AMOUNT\", \"Amount:\");\r\n }\r\n get AmountUSD() {\r\n return getString(\"AMOUNT_USD\", \"Amount USD\");\r\n }\r\n\r\n get RegCompanyExistsHeader() {\r\n return getString(\"REG_COMPANY_EXISTS_HEADER\", \"Access Requested\");\r\n }\r\n get RegCompanyExistsBlurb1() {\r\n return getString(\"REG_COMPANY_EXISTS_BLURB1\", \"Your company already exists in Lockstep\");\r\n }\r\n get RegCompanyExistsBlurb2() {\r\n return getString(\r\n \"REG_COMPANY_EXISTS_BLURB2\",\r\n \"We've sent the request to join to your Lockstep company administrator via your company e-mail address. They can add you to your companies Lockstep account.\"\r\n );\r\n }\r\n get RegCompanyExistsBlurb3() {\r\n return getString(\r\n \"REG_COMPANY_EXISTS_BLURB3\",\r\n \"Need Help? Dial (800) 720-3580 to speak with a product specialist or email help@lockstep.network\"\r\n );\r\n }\r\n\r\n get RegUserExistsHeader() {\r\n return getString(\"REG_USER_EXISTS_HEADER\", \"User Accounts Exists\");\r\n }\r\n get RegUserExistsBlurb1() {\r\n return getString(\"REG_USER_EXISTS_BLURB1\", \"You already have an account on Lockstep\");\r\n }\r\n get RegUserExistsBlurb2() {\r\n return getString(\r\n \"REG_USER_EXISTS_BLURB2\",\r\n \"Need Help? Dial (800) 720-3580 to speak with a product specialist or email help@Lockstep.network\"\r\n );\r\n }\r\n\r\n get RegCompanyInfoHeader() {\r\n return getString(\"REG_COMPANY_INFO_HEADER\", \"Enter Company Information and Setup Lockstep Password\");\r\n }\r\n\r\n get RegVerifyEmailHeader() {\r\n return getString(\"REG_VERIFIY_EMAIL_HEADER\", \"Verify E-mail\");\r\n }\r\n get RegVerifyEmailBlurb1() {\r\n return getString(\"REG_VERIFIY_EMAIL_BLURB1\", \"Your verification link should be arriving shortly in your inbox\");\r\n }\r\n get RegVerifyEmailBlurb2() {\r\n return getString(\r\n \"REG_VERIFIY_EMAIL_BLURB2\",\r\n \"We've sent your verification link to the email address you used to sign up. Please be aware that\"\r\n );\r\n }\r\n get RegVerifyEmailBlurb3() {\r\n return getString(\"REG_VERIFIY_EMAIL_BLURB3\", \"it can take up to 5 minutes to receive the email.\");\r\n }\r\n get RegVerifyEmailBlurb4() {\r\n return getString(\r\n \"REG_VERIFIY_EMAIL_BLURB4\",\r\n \"If you don't see our email within 5 minutes, please check your spam or junk folders. Or resend using this link\"\r\n );\r\n }\r\n get RegVerifyEmailBlurb5() {\r\n return getString(\"REG_VERIFIY_EMAIL_BLURB5\", \"Resend Verification E-mail\");\r\n }\r\n get RegVerifyEmailBlurb6() {\r\n return getString(\r\n \"REG_VERIFIY_EMAIL_BLURB6\",\r\n \"Need help? Dial (800) 720-3580 to speak with a product specialist or\"\r\n );\r\n }\r\n get RegVerifyEmailBlurb7() {\r\n return getString(\"REG_VERIFIY_EMAIL_BLURB7\", \"email help@Lockstep.network\");\r\n }\r\n\r\n get RegBackToLogin() {\r\n return getString(\"REG_BACK_TO_LOGIN\", \"Back to login?\");\r\n }\r\n\r\n get PasswordsNeedToMatchError() {\r\n return getString(\r\n \"PASSWORDS_NEED_TO_MATCH_ERRORS\",\r\n \"The passwords you entered do not match. Please make sure they are the same.\"\r\n );\r\n }\r\n get BlankPasswordError() {\r\n return getString(\"BLANK_PASSWORD_ERROR\", \"Your password cannot be blank.\");\r\n }\r\n get AllEntriesEmptyError() {\r\n return getString(\r\n \"ALL_ENTRIES_EMPTY_ERRORS\",\r\n \"All of the entry fields must contain a value. Please fill in the empty fields.\"\r\n );\r\n }\r\n get MustHaveCorrectPassPatternError() {\r\n return getString(\r\n \"MUST_HAVE_CORRECT_PASS_PATTERN_ERROR\",\r\n \"Password must be 8 or more characters and contain at least two of the following: an uppercase letter, a lowercase letter, a number or a special character.\"\r\n );\r\n }\r\n PasswordIsWeakError(score) {\r\n return formatString(\r\n getString(\"PASSWORD_IS_TOO_WEAK\", \"The password you entered is too weak. Please enter a stronger password.\"),\r\n { score }\r\n );\r\n }\r\n get ContactInfo() {\r\n return getString(\"CONTACT_INFO\", \"Contact Info\");\r\n }\r\n get ContactInformation() {\r\n return getString(\"CONTACT_INFORMATION\", \"Contact Information\");\r\n }\r\n get AddressInformation() {\r\n return getString(\"ADDRESS_INFORMATION\", \"Address Information\");\r\n }\r\n get Address() {\r\n return getString(\"ADDRESS\", \"Address\");\r\n }\r\n get City() {\r\n return getString(\"CITY\", \"City\");\r\n }\r\n get Zip() {\r\n return getString(\"ZIP\", \"Zip\");\r\n }\r\n get State() {\r\n return getString(\"STATE\", \"State\");\r\n }\r\n get Country() {\r\n return getString(\"COUNTRY\", \"Country\");\r\n }\r\n get Website() {\r\n return getString(\"WEBSITE\", \"Website\");\r\n }\r\n get Accounting() {\r\n return getString(\"ACCOUNTING\", \"Accounting\");\r\n }\r\n get Personal() {\r\n return getString(\"PERSONAL\", \"Personal\");\r\n }\r\n get Password() {\r\n return getString(\"PASSWORD\", \"Password\");\r\n }\r\n get Confirm() {\r\n return getString(\"CONFIRM\", \"Confirm\");\r\n }\r\n get Email() {\r\n return getString(\"EMAIL\", \"Email\");\r\n }\r\n get SetupHeader() {\r\n return getString(\"SETUP_HEADER\", \"Getting started with Lockstep!\");\r\n }\r\n get SetupSubHeader() {\r\n return getString(\r\n \"SETUP_SUB_HEADER\",\r\n \"Start collaborating with your customers and vendors, by completing the tasks below.\"\r\n );\r\n }\r\n get SetupBlurb1() {\r\n return getString(\r\n \"SETUP_BLURB1\",\r\n \"Take a video tour for an introduction into the Lockstep Network -- showing how buyers and sellers collaborate for a more automated and trusted supply chain.\"\r\n );\r\n }\r\n get SetupBlurb2() {\r\n return getString(\"SETUP_BLURB2\", \"Quick start checklist\");\r\n }\r\n get SetupBlurb3() {\r\n return getString(\"SETUP_BLURB3\", \"Connect E-mail to Shared Ledger\");\r\n }\r\n get SetupBlurb4() {\r\n return getString(\r\n \"SETUP_BLURB4\",\r\n \"Configure your external e-mail to securely connect your e-mail communication into Ledger on Lockstep Network.\"\r\n );\r\n }\r\n get ConnectYourERPToLockstep() {\r\n return getString(\"CONNECT_YOUR_ERP_TO_LOCKSTEP\", \"Connect your Accounting System to Lockstep\");\r\n }\r\n get SetupBlurb6() {\r\n return getString(\r\n \"SETUP_BLURB6\",\r\n \"Streamline all accounting communication by connecting your accounting system to Lockstep.\"\r\n );\r\n }\r\n get Introduction() {\r\n return getString(\"INTRODUCTION\", \"Introduction\");\r\n }\r\n get Watch() {\r\n return getString(\"WATCH\", \"Watch\");\r\n }\r\n get Video() {\r\n return getString(\"VIDEO\", \"Video\");\r\n }\r\n get DefaultConfiguration() {\r\n return getString(\"DEFAULT_CONFIGURATION\", \"Default Configuration\");\r\n }\r\n get RegistrationSettings() {\r\n return getString(\"REGISTRATION_SETTINGS\", \"Registration Settings\");\r\n }\r\n get RegisterStepSucceeded() {\r\n return getString(\r\n \"REGISTER_STEP_SUCCEEDED\",\r\n \"Your account is succesfully connected. Next complete the configuration settings.\"\r\n );\r\n }\r\n ConnectorRegistrationSuccess(connector) {\r\n return formatString(getString(\"CONNECTOR_REGISTRATION_SUCCESS\", \"SUCCESS: You are now connected to {connector}.\"), {\r\n connector\r\n });\r\n }\r\n get ConnectorRegistrationError() {\r\n return getString(\r\n \"CONNECTOR_REGISTRATION_ERROR\",\r\n \"There was a problem registering your accounting package. Please confirm these values.\"\r\n );\r\n }\r\n get RegistrationNotComplete() {\r\n return getString(\r\n \"REGISTRATION_NOT_COMPLETE\",\r\n \"WARNING: Your package is not fully configured. Please edit configuration settings.\"\r\n );\r\n }\r\n get Configure() {\r\n return getString(\"CONFIGURE\", \"Configure\");\r\n }\r\n ConfigureConnectorSettings(connector) {\r\n return formatString(getString(\"CONFIGURE_CONNECTOR_SETTINGS\", \"Configure {connector} Settings\"), { connector });\r\n }\r\n get ConfigureMessage() {\r\n return getString(\r\n \"CONFIGURE_MESSAGE\",\r\n \"If correct values aren't listed here, then return to your registered accounting package to edit them.\"\r\n );\r\n }\r\n EditPackageSettings(connector) {\r\n return formatString(getString(\"EDIT_PACKAGE_SETTINGS\", \"Edit {connector} Settings\"), { connector });\r\n }\r\n get UpdateDefaultConfiguration() {\r\n return getString(\"UPDATE_DEFAULT_CONFIGURATION\", \"Update default configuration settings\");\r\n }\r\n get UpdateRegistration() {\r\n return getString(\"UPDATE_REGISTRATION\", \"Update registration values\");\r\n }\r\n get SyncingMessage() {\r\n return getString(\"SYNCING_MESSAGE\", \"Working magic, loading configuration details...\");\r\n }\r\n get LoadingOptions() {\r\n return getString(\"LOADING_OPTIONS\", \"Loading options...\");\r\n }\r\n get ConnectAcctSystem() {\r\n return getString(\"CONNECT_ACCT_SYSTEM\", \"Connect Acct. System\");\r\n }\r\n get ConnectAnother() {\r\n return getString(\"CONNECT_ANOTHER\", \"Connect Another\");\r\n }\r\n\r\n get Description() {\r\n return getString(\"DESCRIPTION\", \"Description\");\r\n }\r\n\r\n get DescriptionExample() {\r\n return getString(\"DESCRIPTION_EXAMPLE\", \"My Companies Account Payable\");\r\n }\r\n get EmailExample() {\r\n return getString(\"EMAIL_EXAMPLE\", \"@mycompany.com\");\r\n }\r\n\r\n get Setup() {\r\n return getString(\"SETUP\", \"Setup\");\r\n }\r\n get Complete() {\r\n return getString(\"COMPLETE\", \"Complete\");\r\n }\r\n\r\n get SetupBarGetStartedBlurb() {\r\n return getString(\"SETUP_BAR_GET_STARTED_BLURB\", \"Lockstep quick start guide\");\r\n }\r\n get SetupInboxToConnect() {\r\n return getString(\"SETUP_INBOX_TO_CONNECT\", \"Select Inbox to connect\");\r\n }\r\n\r\n get SetupConnectEmailBlurb1AR() {\r\n return getString(\r\n \"SETUP_CONNECT_EMAIL_BLURB_1_AR\",\r\n \"Enter your e-mail address that you use for Accounts Receivable.\"\r\n );\r\n }\r\n get SetupConnectEmailBlurb1AP() {\r\n return getString(\"SETUP_CONNECT_EMAIL_BLURB_1_AP\", \"Enter your e-mail address that you use for Accounts Payable.\");\r\n }\r\n\r\n get SetupForwardingEmailHeaderAR() {\r\n return getString(\"SETUP_FORWARDING_EMAIL_HEADER_AR\", \"Connect your Accounts Receivable Inbox with Lockstep\");\r\n }\r\n get SetupForwardingEmailHeaderAP() {\r\n return getString(\"SETUP_FORWARDING_EMAIL_HEADER_AP\", \"Connect your Accounts Payable Inbox with Lockstep\");\r\n }\r\n SetupForwardingEmailForwardTo(email) {\r\n return formatString(\r\n getString(\"SETUP_FORWARDING_EMAIL_ForwardTo\", \"Forward a copy of all {email} to this email address.\"),\r\n { email: email }\r\n );\r\n }\r\n get SetupForwardingEmailNeedHelpLink() {\r\n return getString(\r\n \"SETUP_FORWARDING_EMAIL_NEED_HELP_LINK\",\r\n \"Need help? Try these step-by-step instructions for configuration connection\"\r\n );\r\n }\r\n get SetupForwardingEmailSendPreEmailLink() {\r\n return getString(\"SETUP_FORWARDING_EMAIL_SEND_PRE_EMAIL_LINK\", \"Send this pre-written e-mail\");\r\n }\r\n\r\n get SetupConnectionVerifiedHeaderAR() {\r\n return getString(\"SETUP_CONNECTION_VERIFIED_HEADER_AR\", \"Connect your Accounts Receivable Inbox with Lockstep\");\r\n }\r\n get SetupConnectionVerifiedHeaderAP() {\r\n return getString(\"SETUP_CONNECTION_VERIFIED_HEADER_AP\", \"Connect your Accounts Payable Inbox with Lockstep\");\r\n }\r\n SetupConnectionVerifiedSentToForwardTo(email) {\r\n return formatString(\r\n getString(\r\n \"SETUP_CONNECTION_VERIFIED_BLURB_1_AR\",\r\n \"Copies of all e-mail sent to {email} will be forwarded to this address:\"\r\n ),\r\n { email: email }\r\n );\r\n }\r\n get SetupConnectionVerifiedBlurb1AP() {\r\n return getString(\r\n \"SETUP_CONNECTION_VERIFIED_BLURB_1_AP\",\r\n \"Copies of all e-mail sent to ap@joule-tech.com will be forwarded to this address:\"\r\n );\r\n }\r\n get SetupConnectionVerified() {\r\n return getString(\"SETUP_CONNECTION_VERIFIED\", \"Connection Verified\");\r\n }\r\n get SetupConnectionVerifiedContinueWithSetup() {\r\n return getString(\"SETUP_CONNECTION_VERIFIED_CONTINUE_WITH_SETUP\", \"Continue with Setup\");\r\n }\r\n SentApprovalTask(requester, approver) {\r\n return formatString(\r\n getString(\r\n \"SENT_APPROVAL_TASK\",\r\n \"{requester} sent an approval task to {approver}\"\r\n ),\r\n { requester, approver }\r\n );\r\n }\r\n SentResponseTask(requester, approver) {\r\n return formatString(\r\n getString(\r\n \"SENT_APPROVAL_TASK\",\r\n \"{requester} sent a response task to {approver}\"\r\n ),\r\n { requester, approver }\r\n );\r\n }\r\n ApprovalRequestText(requester, approver) {\r\n return formatString(\r\n getString(\r\n \"APPROVAL_REQUEST_TEXT\",\r\n \"{requester} sent an approval request to {approver}\"\r\n ),\r\n { requester, approver }\r\n );\r\n }\r\n ApprovalGrantedText(approver) {\r\n return formatString(\r\n getString(\"APPROVAL_GRANTED_TEXT\", \"{approver} approved this transaction\"),\r\n { approver }\r\n );\r\n }\r\n ApprovalRejectedText(approver) {\r\n return formatString(\r\n getString(\"APPROVAL_REJECTED_TEXT\", \"{approver} rejected this transaction\"),\r\n { approver }\r\n );\r\n }\r\n get RequestApproved() {\r\n return getString(\"REQUEST_APPROVED\", \"Request has been succesfully approved.\");\r\n }\r\n get RequestRejected() {\r\n return getString(\"REQUEST_REJECTED\", \"Request has been succesfully rejected.\");\r\n }\r\n get Respond() {\r\n return getString(\"RESPOND\", \"Respond\");\r\n }\r\n RequestedResponseText(requester, requestee) {\r\n return formatString(\r\n getString(\r\n \"REQUESTED_RESPONSE_TEXT\",\r\n \"{requester} requested a response from {requestee}\"\r\n ),\r\n { requester, requestee }\r\n );\r\n }\r\n PrivateNoteText(name) {\r\n return formatString(\r\n getString(\"PRIVATE_NOTE_TEXT\", \"{name} created a private noteresponded to the conversation \"),\r\n { name }\r\n );\r\n }\r\n EmailFirstInConversationText(name) {\r\n return formatString(\r\n getString(\r\n \"EMAIL_FIRST_IN_CONVERSATION_TEXT\",\r\n \"{name} started the conversation \"\r\n ),\r\n { name }\r\n );\r\n }\r\n ReassignedByTo(by, to, isTask) {\r\n const activityType = isTask ? \"task\" : \"conversation\";\r\n return formatString(getString(\"REASSIGNED_BY_TO\", \"{by} assigned the {activityType} to {to}\"), {\r\n by,\r\n to,\r\n activityType\r\n });\r\n }\r\n StatusChangedByTo(by, to) {\r\n return formatString(getString(\"STATUS_CHANGED_BY_TO\", \"{by} set the conversation status to {to}\"), { by, to });\r\n }\r\n ForwardedByTo(by, to) {\r\n return formatString(getString(\"FORWARDED_BY_TO\", \"{by} forwarded a copy of this activity to {to}\"), { by, to });\r\n }\r\n CopyForwardedBy(by) {\r\n return formatString(\r\n getString(\r\n \"COPY_FORWARDED_BY\",\r\n \"{by} forwarded this conversation as a new conversation\"\r\n ),\r\n { by }\r\n );\r\n }\r\n ForwardingVisibilityMessage(perspective) {\r\n return formatString(\r\n getString(\r\n \"FORWARDING_VISIBILITY_MESSAGE\",\r\n \"This thread will not be visible to the {perspective} when you reply.\"\r\n ),\r\n { perspective }\r\n );\r\n }\r\n get PrivateDraftText() {\r\n return getString(\"PRIVATE_DRAFT_TEXT\", \"You created a draft\");\r\n }\r\n get DropFilesHere() {\r\n return getString(\"DROP_FILES_HERE\", \"Drop files here.\");\r\n }\r\n get DropImageFilesHere() {\r\n return getString(\"DROP_IMAGE_FILES_HERE\", \"Drop image files of type .jpg, .png, or .gif here.\");\r\n }\r\n get AttachFile() {\r\n return getString(\"ATTACH_FILE\", \"Attach file\");\r\n }\r\n get InsertImage() {\r\n return getString(\"INSERT_IMAGE\", \"Insert image\");\r\n }\r\n get ImageOnlyUploadWarning() {\r\n return getString(\r\n \"IMAGE_ONLY_UPLOAD_WARNING\",\r\n \"Only files of type .jpg, .png, and .gif can be added. The following files were rejected:\"\r\n );\r\n }\r\n get Attach() {\r\n return getString(\"ATTACH\", \"Attach\");\r\n }\r\n get ChooseLibraryFiles() {\r\n return getString(\"CHOOSE_LIBRARY_FILES\", \"Choose files from your library.\");\r\n }\r\n get NothingToShowHere() {\r\n return getString(\"NOTHING_TO_SHOW_HERE\", \"Nothing to show here.\");\r\n }\r\n get NoCompanyDocuments() {\r\n return getString(\"NO_COMPANY_DOCUMENTS\", \"Nothing here yet. First upload files from your computer.\");\r\n }\r\n get NoFilesSelected() {\r\n return getString(\"NO_FILES_SELECTED\", \"No files selected\");\r\n }\r\n get AttachFromComputer() {\r\n return getString(\"ATTACH_FROM_COMPUTER\", \"Attach files from computer\");\r\n }\r\n get AddFilesToSharedDocuments() {\r\n return getString(\"ADD_FILES_TO_SHARED_DOCUMENTS\", \"Add files to Shared Documents\");\r\n }\r\n get UploadFromComputer() {\r\n return getString(\"UPLOAD_FROM_COMPUTER\", \"Upload from computer\");\r\n }\r\n get UploadAttachment() {\r\n return getString(\"UPLOAD_ATTACHMENT\", \"Upload attachment\");\r\n }\r\n get UploadingAttachments() {\r\n return getString(\"UPLOADING_ATTACHMENTS\", \"Uploading attachments...\");\r\n }\r\n get SelectUploadFile() {\r\n return getString(\"SELECT_UPLOAD_FILE\", \"Select files to upload\");\r\n }\r\n\r\n get Copy() {\r\n return getString(\"COPY\", \"Copy\");\r\n }\r\n\r\n get CopyAddress() {\r\n return getString(\"COPYADDRESS\", \"Copy address\");\r\n }\r\n\r\n get Or() {\r\n return getString(\"OR\", \"Or\");\r\n }\r\n\r\n get Verify() {\r\n return getString(\"VERIFY\", \"Verify\");\r\n }\r\n get Forwarding() {\r\n return getString(\"FORWARDING\", \"Forwarding\");\r\n }\r\n\r\n get Unassigned() {\r\n return getString(\"UNASSIGNED\", \"Unassigned\");\r\n }\r\n get Assigned() {\r\n return getString(\"ASSIGNED\", \"Assigned\");\r\n }\r\n get Assignee() {\r\n return getString(\"ASSIGNEE\", \"Assignee\");\r\n }\r\n get AssignTaskTo() {\r\n return getString(\"ASSIGN_TASK_TO\", \"Assign task to\");\r\n }\r\n get ChooseTeamMember() {\r\n return getString(\"CHOOSE_TEAM_MEMBER\", \"Choose team member\");\r\n }\r\n AutoAssignMessage(partnerType) {\r\n return formatString(\r\n getString(\"AUTO_ASSIGN_MESSAGE\", \"Assign a team member to receive messages for this {partnerType} by default.\"),\r\n { partnerType }\r\n );\r\n }\r\n get ChooseDefaultApprover() {\r\n return getString(\"CHOOSE_DEFAULT_APPROVER\", \"Choose default approver.\");\r\n }\r\n get Messages() {\r\n return getString(\"MESSAGES\", \"Messages\");\r\n }\r\n get AssignMessagesTo() {\r\n return getString(\"ASSIGN_MESSAGES_TO\", \"Assign messages to:\");\r\n }\r\n get SendApprovalRequestsTo() {\r\n return getString(\"SEND_APPROVAL_REQUESTS_TO\", \"Send approval requests to:\");\r\n }\r\n get Mine() {\r\n return getString(\"MINE\", \"Mine\");\r\n }\r\n get OutForApproval() {\r\n return getString(\"OUT_FOR_APPROVAL\", \"Out for Approval\");\r\n }\r\n get Closed() {\r\n return getString(\"CLOSED\", \"Closed\");\r\n }\r\n get Completed() {\r\n return getString(\"COMPLETED\", \"Completed\");\r\n }\r\n get Spam() {\r\n return getString(\"SPAM\", \"Spam\");\r\n }\r\n get NotSpam() {\r\n return getString(\"NOT_SPAM\", \"Not Spam\");\r\n }\r\n get MarkAsSpam() {\r\n return getString(\"MARK_AS_SPAM\", \"Mark as Spam\");\r\n }\r\n get MarkSenderAsSpam() {\r\n return getString(\"MARK_SENDER_AS_SPAM\", \"Mark Sender as Spam\");\r\n }\r\n get MessageSent() {\r\n return getString(\"MESSAGE_SENT\", \"Message sent\");\r\n }\r\n get MarkMessageAsSpam() {\r\n return getString(\"MARK_MESSAGE_AS_SPAM\", \"Mark Message as Spam\");\r\n }\r\n get MessageMarkedAsSpam() {\r\n return getString(\"MESSAGE_MARKED_AS_SPAM\", \"Message marked as spam\");\r\n }\r\n get SpamMapping() {\r\n return getString(\"SPAM_MAPPING\", \"Spam Mapping\");\r\n }\r\n get SpamSettingsDescription() {\r\n return getString(\r\n \"SPAM_SETTINGS_DESCRIPTION\",\r\n \"Mail from these domains or email addresses have been identified as Spam. Change this list to change what is considered spam.\"\r\n );\r\n }\r\n get AddSpamDescription() {\r\n return getString(\"ADD_SPAM_DESCRIPTION\", \"New mail coming from this domain or address will go to Spam.\");\r\n }\r\n get AddSpamPlaceholder() {\r\n return getString(\"ADD_SPAM_PLACEHOLDER\", \"mycompany.com, accounting@mycompany.com\");\r\n }\r\n ConfirmDeleteSpamAddress(address) {\r\n return formatString(\r\n getString(\"CONFIRM_DELETE_SPAM_ADDRESS\", \"Are you sure you want to remove {address} from the spam list?\"),\r\n { address }\r\n );\r\n }\r\n\r\n get Approved() {\r\n return getString(\"APPROVED\", \"Approved\");\r\n }\r\n get Rejected() {\r\n return getString(\"REJECTED\", \"Rejected\");\r\n }\r\n get Reject() {\r\n return getString(\"REJECT\", \"Reject\");\r\n }\r\n get OriginalDate() {\r\n return getString(\"ORIGINAL_DATE\", \"Original Date\");\r\n }\r\n\r\n get Anyone() {\r\n return getString(\"ANYONE\", \"Anyone\");\r\n }\r\n get NoOne() {\r\n return getString(\"N0_ONE\", \"No one\");\r\n }\r\n get Me() {\r\n return getString(\"ME\", \"Me\");\r\n }\r\n get You() {\r\n return getString(\"YOU\", \"You\");\r\n }\r\n get Yourself() {\r\n return getString(\"YOURSELF\", \"Yourself\");\r\n }\r\n\r\n get ApprovedInERP() {\r\n return getString(\"APPROVED_IN_ERP\", \"Approved In ERP\");\r\n }\r\n get Approval() {\r\n return getString(\"APPROVAL\", \"Approval\");\r\n }\r\n get Approvals() {\r\n return getString(\"APPROVALS\", \"Approvals\");\r\n }\r\n get New() {\r\n return getString(\"NEW\", \"New\");\r\n }\r\n get Note() {\r\n return getString(\"NOTE\", \"Note\");\r\n }\r\n get ContactAlreadyExistsError() {\r\n return getString(\r\n \"CONTACT_ALREADY_EXISTS_ERROR\",\r\n \"This contact email already exists. If it does not exist for this perspective and you would like to add it, please create a new contact.\"\r\n );\r\n }\r\n get ApprovalRequest() {\r\n return getString(\"APPROVAL_REQUEST\", \"Approval Request\");\r\n }\r\n get Approve() {\r\n return getString(\"APPROVE\", \"Approve\");\r\n }\r\n get YouDeletedConversation() {\r\n return getString(\"YOU_DELETED_CONVERSATION\", \"You deleted the conversation.\");\r\n }\r\n get YouDeletedTask() {\r\n return getString(\"YOU_DELETED_TASK\", \"You deleted the task.\");\r\n }\r\n get YouApproved() {\r\n return getString(\"YOU_APPROVED\", \"You approved.\");\r\n }\r\n get YouResponded() {\r\n return getString(\"YOU_RESPONDED\", \"You responded.\");\r\n }\r\n get YouRejected() {\r\n return getString(\"YOU_REJECTED\", \"You rejected.\");\r\n }\r\n get YouRequestedApproval() {\r\n return getString(\"YOU_REQUESTED_APPROVAL\", \"You sent approval request.\");\r\n }\r\n get Approver() {\r\n return getString(\"APPROVER\", \"Approver\");\r\n }\r\n get Approvers() {\r\n return getString(\"APPROVERS\", \"Approvers\");\r\n }\r\n get AddApprover() {\r\n return getString(\"ADD_APPROVER\", \"Add Approver\");\r\n }\r\n get EditApprover() {\r\n return getString(\"EDIT_APPROVER\", \"Edit Approver\");\r\n }\r\n get AddingApprover() {\r\n return getString(\"ADDING_APPROVER\", \"Adding contact as approver...\");\r\n }\r\n get ApprovalTask() {\r\n return getString(\"APPROVAL_TASK\", \"Approval Task: \");\r\n }\r\n ApprovalReassignedTo(assignee) {\r\n return formatString(getString(\"APPROVAL_ASSIGNED_TO\", \"Approval task for conversation reassigned to {assignee}\"), {\r\n assignee\r\n });\r\n }\r\n ResponseRequestReassignedTo(assignee) {\r\n return formatString(\r\n getString(\"RESPONSE_REQUEST_ASSIGNED_TO\", \"Response task for conversation reassigned to {assignee}\"),\r\n { assignee }\r\n );\r\n }\r\n AssignedApprovalTask(poster, assignee) {\r\n return formatString(getString(\"ASSIGNED_APPROVAL_TASK\", \"{poster} assigned this approval task to {assignee}.\"), {\r\n poster,\r\n assignee\r\n });\r\n }\r\n AssignedResponseTask(poster, assignee) {\r\n return formatString(getString(\"ASSIGNED_RESPONSE_TASK\", \"{poster} assigned this response task to {assignee}.\"), {\r\n poster,\r\n assignee\r\n });\r\n }\r\n get ForApproval() {\r\n return getString(\"FOR_APPROVAL\", \"For approval\");\r\n }\r\n get SendForApproval() {\r\n return getString(\"SEND_FOR_APPROVAL\", \"Send for Approval\");\r\n }\r\n get MarkAsApproved() {\r\n return getString(\"MARK_AS_APPROVED\", \"Mark as Approved\");\r\n }\r\n get MarkAsRejected() {\r\n return getString(\"MARK_AS_REJECTED\", \"Mark as Rejected\");\r\n }\r\n get ImportContactList() {\r\n return getString(\"IMPORT_CONTACT_LIST\", \"Import contact list\");\r\n }\r\n ConfirmDeleteContact(contact) {\r\n return formatString(\r\n getString(\"CONFIRM_DELETE_CONTACT\", \"Are you sure you want to remove {contact} as a contact?\"),\r\n { contact }\r\n );\r\n }\r\n ConfirmDeleteApprover(approver) {\r\n return formatString(\r\n getString(\"CONFIRM_DELETE_APPROVER\", \"Are you sure you want to remove {approver} as an approver?\"),\r\n { approver }\r\n );\r\n }\r\n\r\n get AddNewFile() {\r\n return getString(\"ADD_NEW_FILE\", \"Add new file\");\r\n }\r\n get AddedBy() {\r\n return getString(\"ADDED_BY\", \"Added by\");\r\n }\r\n get DateAdded() {\r\n return getString(\"DATE_ADDED\", \"Date added\");\r\n }\r\n get RenameFile() {\r\n return getString(\"RENAME_FILE\", \"Rename the file\");\r\n }\r\n get ReplaceFile() {\r\n return getString(\"REPLACE_THE_FILE\", \"Replace the file\");\r\n }\r\n get SharedDocuments() {\r\n return getString(\"SHARED_DOCUMENTS\", \"Shared Documents\");\r\n }\r\n ConfirmDeleteDocument(documentName) {\r\n return formatString(\r\n getString(\"CONFIRM_DELETE_DOCUMENT\", \"Are you sure you want to delete {documentName}?\"),\r\n { documentName }\r\n );\r\n }\r\n\r\n get SelectPerspective() {\r\n return getString(\"SELECT_PERSPECTIVE\", \"Select Perspective\");\r\n }\r\n get Perspective() {\r\n return getString(\"PERSPECTIVE\", \"Perspective\");\r\n }\r\n get SavedReplies() {\r\n return getString(\"SAVED_REPLIES\", \"Saved Replies\");\r\n }\r\n get InsertVariable() {\r\n return getString(\"INSERT_VARIABLE\", \"Insert variable...\");\r\n }\r\n get UseTemplate() {\r\n return getString(\"USE_TEMPLATE\", \"Use template\");\r\n }\r\n get Templates() {\r\n return getString(\"TEMPLATES\", \"Templates\");\r\n }\r\n get Template() {\r\n return getString(\"TEMPLATE\", \"Template\");\r\n }\r\n get CreateNewTemplate() {\r\n return getString(\"CREATE_NEW_TEMPLATE\", \"Create a new template\");\r\n }\r\n get AddTemplate() {\r\n return getString(\"ADD_TEMPLATE\", \"Add template\");\r\n }\r\n get EditTemplate() {\r\n return getString(\"EDIT_TEMPLATE\", \"Edit template\");\r\n }\r\n get CreateTemplateToSendReplies() {\r\n return getString(\r\n \"CREATE_TEMPLATE_TO_SEND_REPLIES\",\r\n \"Create a template to easily send frequent replies in your messages. You can share templates with your team or keep them private.\"\r\n );\r\n }\r\n get TemplateName() {\r\n return getString(\"TEMPLATE_NAME\", \"Template Name\");\r\n }\r\n get SaveAsTemplate() {\r\n return getString(\"SAVE_AS_TEMPLATE\", \"Save as template...\");\r\n }\r\n get SaveNewTemplate() {\r\n return getString(\"SAVE_NEW_TEMPLATE\", \"New template\");\r\n }\r\n get TemplateNameAlreadyExists() {\r\n return getString(\r\n \"TEMPLATE_NAME_ALREADY_EXISTS\",\r\n \"A template with this name already exits. Please rename this template.\"\r\n );\r\n }\r\n ConfirmDeleteTemplate(templateName) {\r\n return formatString(\r\n getString(\"CONFIRM_DELETE_TEMPLATE\", \"Are you sure you want to delete {templateName}?\"),\r\n { templateName }\r\n );\r\n }\r\n get UnableToPopulateMessage() {\r\n return getString(\"UNABLE_TO_POPULATE_MESSAGE\", \"We weren't able to populate the following values:\");\r\n }\r\n get PleaseFillManually() {\r\n return getString(\"PLEASE_FILL_MANUALLY\", \"Please fill them out manually before sending.\");\r\n }\r\n get SaveAsDraft() {\r\n return getString(\"SAVE_AS_DRAFT\", \"Save draft\");\r\n }\r\n get Body() {\r\n return getString(\"BODY\", \"Body\");\r\n }\r\n\r\n get BackToEmailSettings() {\r\n return getString(\"BACK_TO_EMAIL_SETTINGS\", \"Back to Email Settings\");\r\n }\r\n get CurrentEmailType() {\r\n return getString(\"CURRENT_EMAIL_TYPE\", \"Current Email Type\");\r\n }\r\n get ThisAddressNeedsToBeValidated() {\r\n return getString(\"THIS_ADDRESS_NEEDS_TO_BE_VALIDATED\", \"This Address needs to be validated.\");\r\n }\r\n get Why() {\r\n return getString(\"WHY\", \"Why\");\r\n }\r\n get SMTPSetupBlurb1() {\r\n return getString(\"SMTP_SETUP_BLURB_1\", \"We'll send an email to check if your redirection is working.\");\r\n }\r\n get SendEmail() {\r\n return getString(\"SEND_EMAIL\", \"Send Email\");\r\n }\r\n get Set() {\r\n return getString(\"SET\", \"Set\");\r\n }\r\n get CustomSMTP() {\r\n return getString(\"CUSTOM_SMTP\", \"Custom SMTP\");\r\n }\r\n get SMTPSetupBlurb2() {\r\n return getString(\"SMTP_SETUP_BLURB_2\", \"This server will be used to send outgoing emails\");\r\n }\r\n get SMTPSetupBlurb3() {\r\n return getString(\"SMTP_SETUP_BLURB_3\", \"Ensure that e-mail does not end up in spam folder\");\r\n }\r\n get TestConnection() {\r\n return getString(\"TEST_CONNECTION\", \"Test Connection\");\r\n }\r\n get Enable() {\r\n return getString(\"ENABLE\", \"Enable\");\r\n }\r\n get Disable() {\r\n return getString(\"DISABLE\", \"Disable\");\r\n }\r\n get SMTPConnectionFailed() {\r\n return getString(\"SMTP_CONNECTION_FAILED\", \"SMTP Connection Failed\");\r\n }\r\n get SignUp() {\r\n return getString(\"SIGN_UP\", \"Sign Up\");\r\n }\r\n get ConfirmPassword() {\r\n return getString(\"CONFIRM_PASSWORD\", \"Confirm Password\");\r\n }\r\n get InviteSignInToJoinTheNetwork() {\r\n return getString(\"INVITE_SIGN_IN_TO_JOIN_NETWORK\", \"Sign in to join Lockstep Network\");\r\n }\r\n get InviteSignInToJoinTheCompany() {\r\n return getString(\"INVITE_SIGN_IN_TO_JOIN_COMPANY\", \"Sign in to join the company\");\r\n }\r\n InvitePolicyLinks(terms, use, privacy) {\r\n return formatString(getString(\"INVITE_POLICY_LINKS\", \"{terms}, {use} and {privacy}\"), { terms, use, privacy });\r\n }\r\n\r\n get IAcceptPolicies() {\r\n return getString(\"I_ACCEPT_POLICIES\", \"I have read and accept the following policies:\");\r\n }\r\n get PleaseAcceptPolicies() {\r\n return getString(\"PLEASE_ACCEPT_POLICIES\", \"Please accept policies\");\r\n }\r\n get TermsOfService() {\r\n return getString(\"TERMS_OF_SERVICE\", \"Terms of Service\");\r\n }\r\n get TermsOfServiceUrl() {\r\n return getString(\r\n \"TERMS_OF_SERVICE_URL\",\r\n \"https://intercom.help/lockstep-network/lockstep-help-center/customer-terms-of-service\"\r\n );\r\n }\r\n get AcceptableUse() {\r\n return getString(\"ACCEPTABLE_USE\", \"Acceptable Use\");\r\n }\r\n get AcceptableUseUrl() {\r\n return getString(\r\n \"ACCEPTABLE_USE_URL\",\r\n \"https://intercom.help/lockstep-network/lockstep-help-center/acceptable-use-policy\"\r\n );\r\n }\r\n get Privacy() {\r\n return getString(\"PRIVACY\", \"Privacy\");\r\n }\r\n get PrivacyUrl() {\r\n return getString(\"PRIVACY_URL\", \"https://intercom.help/lockstep-network/lockstep-help-center/privacy-policy\");\r\n }\r\n\r\n InvitedWeNeedMoreDetails(email) {\r\n return formatString(getString(\"INVITED_WE_NEED_MORE_DETAILS\", \"Create a password for {email}\"), { email: email });\r\n }\r\n\r\n ConfirmRevokeInvite(email) {\r\n return formatString(getString(\"CONFIRM_REVOKE_INVITE\", \"Are you sure you want to revoke the invite for {email}?\"), {\r\n email\r\n });\r\n }\r\n get Invite() {\r\n return getString(\"INVITE\", \"Invite\");\r\n }\r\n get Pending() {\r\n return getString(\"PENDING\", \"Pending\");\r\n }\r\n get UnappliedAmount() {\r\n return getString(\"UNAPPLIED_AMOUNT\", \"Unapplied Amount\");\r\n }\r\n get PendingPayment() {\r\n return getString(\"PENDING_PAYMENT\", \"Pending payment\");\r\n }\r\n\r\n get PartialPayment() {\r\n return getString(\"PARTIAL_PAYMENT\", \"Partial payment\");\r\n }\r\n\r\n get PaymentPending() {\r\n return getString(\"PAYMENT_PENDING\", \"Payment pending\");\r\n }\r\n\r\n get PaymentInformation() {\r\n return getString(\"PAYMENT_INFORMATION\", \"Payment information\");\r\n }\r\n\r\n TotalUnappliedOrPendingPayments(total) {\r\n return formatString(\r\n getString(\r\n \"TOTAL_UNAPPLIED_OR_PENDING_PAYMENTS\",\r\n \"You have unapplied and/or pending payments totaling {total} contributing to your total account balance.\"\r\n ),\r\n {\r\n total\r\n }\r\n );\r\n }\r\n get Accepted() {\r\n return getString(\"ACCEPTED\", \"Accepted\");\r\n }\r\n get Message() {\r\n return getString(\"MESSAGE\", \"Message\");\r\n }\r\n get InviteToCompanyMessage() {\r\n return getString(\r\n \"INVITE_TO_COMPANY_MESSAGE\",\r\n `Welcome to the team!\r\n\r\nWe do all of our work via Lockstep. Log in or create your user profile and come join us.`\r\n );\r\n }\r\n\r\n get ApEmail() {\r\n return getString(\"AP_EMAIL\", \"AP department e-mail\");\r\n }\r\n get ArEmail() {\r\n return getString(\"AR_EMAIL\", \"AR department e-mail\");\r\n }\r\n get ApPhone() {\r\n return getString(\"AP_PHONE\", \"AP department phone\");\r\n }\r\n get ArPhone() {\r\n return getString(\"AR_PHONE\", \"AR department phone\");\r\n }\r\n get ArFax() {\r\n return getString(\"AR_FAX\", \"AR department fax (Optional)\");\r\n }\r\n get ApFax() {\r\n return getString(\"AP_FAX\", \"AP department fax (Optional)\");\r\n }\r\n get AP() {\r\n return getString(\"AP\", \"AP\");\r\n }\r\n get AR() {\r\n return getString(\"AR\", \"AR\");\r\n }\r\n get URL() {\r\n return getString(\"URL\", \"URL\");\r\n }\r\n\r\n get EntityType() {\r\n return getString(\"EntityType\", \"Entity type\");\r\n }\r\n get TIN() {\r\n return getString(\"TIN\", \"TIN - Tax id\");\r\n }\r\n\r\n get W9File() {\r\n return getString(\"W9_FILE\", \"If no TIN\");\r\n }\r\n get W8BenFile() {\r\n return getString(\"W8_BEN_FILE\", \"W8 BEN File\");\r\n }\r\n\r\n get AcceptProfileData() {\r\n return getString(\"ACCEPT_PROFILE_DATA\", \"Accept Profile Data\");\r\n }\r\n\r\n get Username() {\r\n return getString(\"USERNAME\", \"Username\");\r\n }\r\n get UsernameEmail() {\r\n return getString(\"USERNAME\", \"Username (email address)\");\r\n }\r\n get BackToLogin() {\r\n return getString(\"BACK_TO_LOGIN\", \"Back to Login\");\r\n }\r\n EnterNewPassword(username) {\r\n return formatString(getString(\"ENTER_NEW_PASSWORD\", \"Enter your new password for {username}\"), { username });\r\n }\r\n get ConfirmNewPassword() {\r\n return getString(\"CONFIRM_NEW_PASSWORD\", \"Confirm New Password\");\r\n }\r\n get ChangePassword() {\r\n return getString(\"CHANGE_PASSWORD\", \"Change my password\");\r\n }\r\n get CheckEmailResetPassword() {\r\n return getString(\r\n \"CHECK_EMAIL_RESERT_PASSWORD\",\r\n \"Check your email for a secure link to reset your password. If you don't see our email, check your spam folder.\"\r\n );\r\n }\r\n get FindYourAccount() {\r\n return getString(\"FIND_YOUR_ACCOUNT\", \"First, let's find your account\");\r\n }\r\n get FindAccount() {\r\n return getString(\"FIND_ACCOUNT\", \"Find account\");\r\n }\r\n get ResendLink() {\r\n return getString(\"RESEND_LINK\", \"Resend Link\");\r\n }\r\n get TryAnotherEmail() {\r\n return getString(\"TRY_ANOTHER_EMAIL\", \"Try another email\");\r\n }\r\n get ResetPasswordSuccess() {\r\n return getString(\"RESET_PASSWORD_SUCCESS\", \"Password Reset Successful!\");\r\n }\r\n get LinkExpired() {\r\n return getString(\"LINK_EXPIRED\", \"The link that you used is expired. Please try again.\");\r\n }\r\n\r\n get RememberMeFor30Days() {\r\n return getString(\"REMEMBER_ME_FOR_30_DAYS\", \"Remember me for 30 days\");\r\n }\r\n get ForgotPassword() {\r\n return getString(\"FORGOT_PASSWORD\", \"Forgot your password?\");\r\n }\r\n get YouAlreadyHaveAnAccount() {\r\n return getString(\"YOU_ALREADY_HAVE_AN_ACCOUNT\", \"You already have an account with us, login!\");\r\n }\r\n get LoginBlurb1() {\r\n return getString(\"LOGIN_BLURB_1\", \"Spend less time in email and more time on your books.\");\r\n }\r\n get LoginBlurb2() {\r\n return getString(\r\n \"LOGIN_BLURB_2\",\r\n \"Lockstep is an email solution designed for the way accounting professionals want to work.\"\r\n );\r\n }\r\n get DontHaveAnAccount() {\r\n return getString(\"DONT_HAVE_AN_ACCOUNT\", \"Don't have an account?\");\r\n }\r\n\r\n get ForwardFromMailbox() {\r\n return getString(\"FORWARD_FROM_MAILBOX\", \"Forward from your shared mailbox\");\r\n }\r\n get ConnectDirectlyToExchange() {\r\n return getString(\"CONNECT_DIRECTLY_TO_EXCHANGE\", \"Connect directly to your MS Exchange\");\r\n }\r\n get ConnectDirectlyToGmail() {\r\n return getString(\"CONNECT_DIRECTLY_TO_GMAIL\", \"Connect directly to your Gmail\");\r\n }\r\n get Sent() {\r\n return getString(\"SENT\", \"Sent\");\r\n }\r\n get SendAMessage() {\r\n return getString(\"SEND_A_MESSAGE\", \"Send a message\");\r\n }\r\n get SendingMessage() {\r\n return getString(\"SENDING_MESSAGE\", \"Sending message\");\r\n }\r\n get SentMessage() {\r\n return getString(\"SENT_MESSAGE\", \"Message sent\");\r\n }\r\n get SendMessageFailed() {\r\n return getString(\"SEND_MESSAGE_FAILED\", \"Sending the message failed\");\r\n }\r\n get Archive() {\r\n return getString(\"ARCHIVE\", \"Archive\");\r\n }\r\n get MoveToInbox() {\r\n return getString(\"MOVE_TO_INBOX\", \"Move to inbox\");\r\n }\r\n InboxCount(count) {\r\n return formatString(getString(\"INBOX_COUNT\", \"Inbox ({count})\"), { count });\r\n }\r\n get EmptyInboxActivities() {\r\n return getString(\"EMPTY_INBOX_ACTIVITIES\", \"You have no activities in this inbox.\");\r\n }\r\n get EmptyInboxMessages() {\r\n return getString(\"EMPTY_INBOX_MESSAGES\", \"You have no messages in this inbox.\");\r\n }\r\n get EmptyInboxDocuments() {\r\n return getString(\"EMPTY_INBOX_DOCUMENTS\", \"You have no documents in this inbox.\");\r\n }\r\n get EmptyStatements() {\r\n return getString(\"EMPTY_STATEMENTS\", \"There are no statements to show.\");\r\n }\r\n get EmptySequences() {\r\n return getString(\"EMPTY_SEQUENCES\", \"There are no sequences to show.\");\r\n }\r\n get NoWorkspaceAccess() {\r\n return getString(\"NO_WORKSPACE_ACCESS\", \"You don't have access to any workspaces for your default company:\");\r\n }\r\n get ContactAnAdministrator() {\r\n return getString(\"CONTACT_AN_ADMINISTRATOR\", \"Contact one of your account administrators to grant you access.\");\r\n }\r\n get WorkspaceEmailSettings() {\r\n return getString(\"WORKSPACE_EMAIL_SETTINGS\", \"Workspace E-mail Settings\");\r\n }\r\n get EmailAddressForWorkspace() {\r\n return getString(\"EMAIL_ADDRESS_FOR_WORKSPACE\", \"E-mail address for workspace\");\r\n }\r\n get EmailForwarding() {\r\n return getString(\"EMAIL_FORWARDING\", \"E-mail Forwarding\");\r\n }\r\n get EmailDelivery() {\r\n return getString(\"EMAIL_DELIVERY\", \"E-mail Delivery\");\r\n }\r\n get EditIncomingEmailDelivery() {\r\n return getString(\"EDIT_INCOMING_EMAIL_DELIVERY\", \"Edit incoming email delivery\");\r\n }\r\n get SendSPFDKIMHelpEmail() {\r\n return getString(\"SEND_SPF_DKIM_HELP_EMAIL\", \"Send SPF/DKIM Help Email\");\r\n }\r\n get AddingSPFDKIMRecordsForLockstep() {\r\n return getString(\"ADDING_SPF_DKIM_RECORDS_FOR_LOCKSTEP\", \"Adding SPF / DKIM records for Lockstep\");\r\n }\r\n get Hello() {\r\n return getString(\"HELLO\", \"Hello\");\r\n }\r\n FormattedTextCopyEmailForSPFDKIM(companyName) {\r\n return formatString(\r\n getString(\r\n \"FORMATTED_TEXT_COPY_EMAIL_FOR_SPF_DKIM\",\r\n \"Hello\\n\\nA user from {companyName} is in the process of setting up {companyName} to manage shared email addresses and we need your help with one small thing.\\n\\nTo improve email delivery rates and reduce the risk of emails being marked as spam, we need you to make this settings change. Can you please add these five SPF\\x2FDKIM records to your DNS? this change will authorize Lockstep to send emails on their behalf.\\n\\nDKIM: \\n\"\r\n ),\r\n { companyName: companyName }\r\n );\r\n }\r\n get SPFDKIMBlurb1() {\r\n return getString(\r\n \"SPF_DKIM_BLURB_1\",\r\n \"If you need help from your IT team to make the DNS change, we've prepared an email that you can send. Just fill out the To: field and hit Send.\"\r\n );\r\n }\r\n SPFDKIMBlurb2(companyName) {\r\n return formatString(\r\n getString(\r\n \"SPF_DKIM_BLURB_2\",\r\n \"A user from {companyName} is in the process of setting up {companyName} to manage shared email addresses and we need your help with one small thing.\"\r\n ),\r\n { companyName: companyName }\r\n );\r\n }\r\n get SPFDKIMBlurb3() {\r\n return getString(\r\n \"SPF_DKIM_BLURB_3\",\r\n \"To improve email delivery rates and reduce the risk of emails being marked as spam, we need you to make this settings change. Can you please add these five SPF/DKIM records to your DNS? This change will authorize Lockstep to send emails on their behalf.\"\r\n );\r\n }\r\n get SPFDKIMBlurb4() {\r\n return getString(\r\n \"SPF_DKIM_BLURB_4\",\r\n \"Adding SPF/DKIM records to your company's DNS will authorize Lockstep to send emails on your behalf. \"\r\n );\r\n }\r\n get SPFDKIMBlurb5() {\r\n return getString(\r\n \"SPF_DKIM_BLURB_5\",\r\n \"To improve e-mail delivery rates and reduce e-mails being marked as SPAM, an IT administrator needs to make these setting changes. \"\r\n );\r\n }\r\n get SPFDKIMConfigurations() {\r\n return getString(\"SPF_DKIM_CONFIGURATIONS\", \"Your SPF/DKIM Configurations\");\r\n }\r\n\r\n get SPFDKIMConfigBlurb() {\r\n return getString(\r\n \"SPFDKIMConfigBlurb\",\r\n \"Below are your SPF/DKIM configurations. To improve e-mail delivery rates and reduce e-mails being marked as SPAM, an IT administrator needs to make some setting changes. \"\r\n );\r\n }\r\n get ClickHere() {\r\n return getString(\"LearnMore\", \"Click here to learn more.\");\r\n }\r\n get LearnMore() {\r\n return getString(\"LearnMore\", \"Learn More\");\r\n }\r\n\r\n get Gmail() {\r\n return getString(\"GMAIL\", \"Gmail\");\r\n }\r\n get Outlook() {\r\n return getString(\"OUTLOOK\", \"Outlook\");\r\n }\r\n GmailForwardingSetup(emailAddress) {\r\n return formatString(\r\n getString(\r\n \"GMAIL_FORWARDING_SETUP\",\r\n \"

From your gmail account:

1. In the top right, click the cog menu and select Settings.
2. Click the Forwarding and POP/IMAP tab.
3. In the Forwarding section, click Add a forwarding address.
4. Enter the email address: {emailAddress}
5. Click Next and then Proceed and then OK.
6. A verification message will be sent to that address. Click the verification link in that message.
7. Go back to the settings page for the Gmail account you want to forward messages from, and refresh your browser.
8. Click the Forwarding and POP/IMAP tab.
9. In the Forwarding section, select Forward a copy of incoming mail to
10. Choose what you want to happen with the Gmail copy of your emails. We recommend Keep Gmail's copy in the Inbox.
11. At the bottom of the page, click Save Changes\"\r\n ),\r\n { emailAddress }\r\n );\r\n }\r\n OutlookForwardingSetup(emailAddress) {\r\n return formatString(\r\n getString(\r\n \"OUTLOOK_FORWARDING_SETUP\",\r\n \"NOTE: For emails at @outlook.com, @hotmail.com, @live.com, or @msn.com, you can log in at https://outlook.com. If you have an address at a custom domain, you will need to login into your company's webmail, e.g., \\\"https://mail.yourcompany.com\\\".

From your Microsoft Outlook Web Client:

1. Login into the account you want to forward.
2. In the top right, click Settings.
3. Click Options.
4. From the sidebar menu, under the Accounts heading, click Forwarding.
5. Select the Start Forwarding radio button.
6. Enter the email address {emailAddress} on the To line at the top of the window.
7. If you want to keep a copy of all your messages in your Microsoft account, check the Keep a copy of forwarded messages box.
8. Click the Save button to start forwarding your messages.\"\r\n ),\r\n { emailAddress }\r\n );\r\n }\r\n\r\n get InvalidEmail() {\r\n return getString(\"INVALID_EMAIL\", \"Invalid email\");\r\n }\r\n get InvalidEmailFormat() {\r\n return getString(\"INVALID_EMAIL_FORMAT\", \"Invalid email format\");\r\n }\r\n get ErrorEmailFormat() {\r\n return getString(\r\n \"ERROR_EMAIL_FORMAT\",\r\n \"The email address entered didn't match the expected pattern. Please adjust your entry and try again.\"\r\n );\r\n }\r\n get ErrorExistingUserInviteEmail() {\r\n return getString(\r\n \"ERROR_EXISTING_USER_INVITE_EMAIL\",\r\n \"The email address entered belongs to a user that is already added or invited.\"\r\n );\r\n }\r\n get ErrorFullNameRequired() {\r\n return getString(\"ERROR_FULLNAME_REQUIRED\", \"The full name is required. Please adjust your entry and try again.\");\r\n }\r\n get ErrorEmailRequired() {\r\n return getString(\"ERROR_EMAIL_REQUIRED\", \"Email is a required field. Please provide an email and try again.\");\r\n }\r\n get ErrorEmailInvalid() {\r\n return getString(\"ERROR_EMAIL_INVALID\", \"Please enter a valid email.\");\r\n }\r\n get UhOh() {\r\n return getString(\"UH_OH\", \"Uh Oh.\");\r\n }\r\n get SomethingWentWrong() {\r\n return getString(\"SOMETHING_WENT_WRONG\", \"Something went wrong on our side.\");\r\n }\r\n get OurEngineersHaveBeenNotified() {\r\n return getString(\"OUR_ENGINEERS_HAVE_BEEN_NOTIFIED\", \"Our engineers have been notified to fix this issue.\");\r\n }\r\n get TryAgainInAWhile() {\r\n return getString(\"TRY_AGAIN_IN_A_WHILE\", \"Try again in a little while or\");\r\n }\r\n get ReturnToHomePage() {\r\n return getString(\"RETURN_TO_HOME_PAGE\", \"return to home page.\");\r\n }\r\n\r\n get Enabled() {\r\n return getString(\"ENABLED\", \"Enabled\");\r\n }\r\n get Disabled() {\r\n return getString(\"DISABLED\", \"Disabled\");\r\n }\r\n get Type() {\r\n return getString(\"TYPE\", \"Type\");\r\n }\r\n get Unverified() {\r\n return getString(\"UNVERIFIED\", \"Unverified\");\r\n }\r\n get Verified() {\r\n return getString(\"VERIFIED\", \"Verified\");\r\n }\r\n\r\n get ImproveDeliveryRatesSPFDKIM() {\r\n return getString(\"IMPROVE_DELIVERY_RATES_SPF_DKIM\", \"Improve delivery rates - SPF/DKIM\");\r\n }\r\n get CopyInstructionsToEmailYourITAdmin() {\r\n return getString(\r\n \"COPY_INSTRUCTIONS_TO_EMAIL_YOUR_IT_ADMIN\",\r\n \" Click here to copy instructions to send to your IT administrator.\"\r\n );\r\n }\r\n get GetConfigurations() {\r\n return getString(\"GetConfigurations\", \"Get configurations\");\r\n }\r\n get CopyToClipboard() {\r\n return getString(\"COPY_TO_CLIPBOARD\", \"Copy To Clipboard\");\r\n }\r\n get CopiedToClipboard() {\r\n return getString(\"COPIED_TO_CLIPBOARD\", \"Copied to clipboard\");\r\n }\r\n get Copied() {\r\n return getString(\"COPIED\", \"Copied\");\r\n }\r\n get Domain() {\r\n return getString(\"DOMAIN\", \"Domain\");\r\n }\r\n get DNSRecord() {\r\n return getString(\"DNS_RECORD\", \"DNS Record\");\r\n }\r\n get DisableDNSSettings() {\r\n return getString(\"DISABLE_DNS_SETTINGS\", \"Disable DNS Settings\");\r\n }\r\n get SetDNSSettings() {\r\n return getString(\"SET_DNS_SETTINGS\", \"Set DNS Settings\");\r\n }\r\n\r\n get CheckDNSSettings() {\r\n return getString(\"CHECK_DNS_SETTINGS\", \"Check DNS Settings\");\r\n }\r\n\r\n get ConnectSMTP() {\r\n return getString(\"CONNECT_SMTP\", \"Connect SMTP\");\r\n }\r\n get DisableSMTPSettings() {\r\n return getString(\"DISABLE_SMTP_SETTINGS\", \"DisableSMTPSettings\");\r\n }\r\n ForwardCopyOfSharedEmail(perspective) {\r\n return formatString(\r\n getString(\"FORWARD_COPY_OF_SHARED_EMAIL\", \"Forward a copy of your shared {perspective} email address:\"),\r\n { perspective: perspective }\r\n );\r\n }\r\n\r\n get SendTestEmail() {\r\n return getString(\"SEND_TEST_EMAIL\", \"We will send a test email to make sure forwarding is working\");\r\n }\r\n get ToYourCompanySecureLockstepNetwork() {\r\n return getString(\"TO_YOUR_COMPANY_SECURE_LOCKSTEP_NETWORK\", \"To your company's secure Lockstep Network address\");\r\n }\r\n get StepByStepInstructions() {\r\n return getString(\"STEP_BY_STEP_INSTRUCTIONS\", \"Click here for step-by-step instructions.\");\r\n }\r\n SearchItemNotFound(searchItem) {\r\n return formatString(getString(\"SEARCH_ITEM_NOT_FOUND\", \"No search results found for {searchItem}\"), { searchItem });\r\n }\r\n get NoResultsFound() {\r\n return getString(\"NO_RESULTS_FOUND\", \"No search results found.\");\r\n }\r\n get SearchFailed() {\r\n return getString(\"SEARCH_FAILED\", \"Something went wrong, Search Failed.\");\r\n }\r\n get UpdateResults() {\r\n return getString(\"UPDATE_RESULTS\", \"Update results\");\r\n }\r\n get ClearFilters() {\r\n return getString(\"CLEAR_FILTERS\", \"Clear filters\");\r\n }\r\n get GoBack() {\r\n return getString(\"GO_BACK\", \"Go Back\");\r\n }\r\n get Back() {\r\n return getString(\"BACK\", \" Back\");\r\n }\r\n get PostalCode() {\r\n return getString(\"POSTAL_CODE\", \"Postal Code\");\r\n }\r\n get Region() {\r\n return getString(\"REGION\", \"Region\");\r\n }\r\n get StreetAddress() {\r\n return getString(\"STREET_ADDRESS\", \"Street Address\");\r\n }\r\n get LoadMore() {\r\n return getString(\"LOAD_MORE\", \"click here to load more\");\r\n }\r\n get UserSettings() {\r\n return getString(\"USER_SETTINGS\", \"User Settings\");\r\n }\r\n get UserProfile() {\r\n return getString(\"USER_PROFILE\", \"User Profile\");\r\n }\r\n get NotificationPreferencesSaved() {\r\n return getString(\"NOTIFICATION_PREFERENCES_SAVED\", \"Notification preferences saved.\");\r\n }\r\n get UserProfileSaved() {\r\n return getString(\"USER_PROFILE_SAVED\", \"User profile saved.\");\r\n }\r\n get User() {\r\n return getString(\"USER\", \"User\");\r\n }\r\n get Users() {\r\n return getString(\"USERS\", \"Users\");\r\n }\r\n get UserRole() {\r\n return getString(\"USER_ROLE\", \"User Role\");\r\n }\r\n get UserRoleAndAccess() {\r\n return getString(\"USER_ROLE_AND_ACCESS\", \"User Role and Access\");\r\n }\r\n get Invites() {\r\n return getString(\"INVITES\", \"Invites\");\r\n }\r\n get Administrator() {\r\n return getString(\"ADMIN\", \"Administrator\");\r\n }\r\n get Connector() {\r\n return getString(\"CONNECTOR\", \"Connector\");\r\n }\r\n get Unknown() {\r\n return getString(\"UNKNOWN\", \"Unknown\");\r\n }\r\n get Role() {\r\n return getString(\"ROLE\", \"Role\");\r\n }\r\n get Promote() {\r\n return getString(\"PROMOTE\", \"Promote\");\r\n }\r\n get Demote() {\r\n return getString(\"DEMOTE\", \"Demote\");\r\n }\r\n get Remove() {\r\n return getString(\"REMOVE\", \"Remove\");\r\n }\r\n get ResetPassword() {\r\n return getString(\"RESET_PASSWORD\", \"Reset Password\");\r\n }\r\n get Action() {\r\n return getString(\"ACTION\", \"Action\");\r\n }\r\n\r\n get YoureBack() {\r\n return getString(\"YOURE_BACK\", \"You're back!\");\r\n }\r\n get YoureOffline() {\r\n return getString(\"YOURE_OFFLINE\", \"You're offline. Results may not be up to date.\");\r\n }\r\n get NoNetworkMessage() {\r\n return getString(\"NO_NETWORK_MESSAGE\", \"Your computer seems to be offline. Check your network connection.\");\r\n }\r\n get ErrorDialogTitle() {\r\n return getString(\"ERROR_DIALOG_TITLE\", \"Whoops! Something went wrong!\");\r\n }\r\n get InviteUser() {\r\n return getString(\"INVITE_USER\", \"Invite User\");\r\n }\r\n get InviteNewUser() {\r\n return getString(\"INVITE_NEW_USER\", \"Invite new user\");\r\n }\r\n get AddUser() {\r\n return getString(\"ADD_USER\", \"Add User\");\r\n }\r\n ConfirmDeleteUser(username) {\r\n return formatString(\r\n getString(\"CONFIRM_DELETE_USER\", \"Are you sure you want to remove {username} from the company?\"),\r\n { username }\r\n );\r\n }\r\n\r\n get PasswordIsTooShortError() {\r\n return getString(\"PASSWORD_IS_TOO_SHORT_ERROR\", \"Password is too short.\");\r\n }\r\n get StandardLockstepDelivery() {\r\n return getString(\"STANDARD_LOCKSTEP_DELIVERY\", \"Standard Lockstep Delivery\");\r\n }\r\n\r\n get NotSuccessful() {\r\n return getString(\"NOT_SUCCESSFUL\", \"Not Successful\");\r\n }\r\n get Contact() {\r\n return getString(\"CONTACT\", \"Contact\");\r\n }\r\n get Contacts() {\r\n return getString(\"CONTACTS\", \"Contacts\");\r\n }\r\n get AddContacts() {\r\n return getString(\"ADD_CONTACTS\", \"Add contacts\");\r\n }\r\n get TryAgain() {\r\n return getString(\"TRY_AGAIN\", \"Try Again\");\r\n }\r\n get BackToLockstep() {\r\n return getString(\"BACK_TO_LOCKSTEP\", \"Back to Lockstep\");\r\n }\r\n get ThisMayTakeAWhile() {\r\n return getString(\"THIS_MAY_TAKE_A_WHILE\", \"This may take a while...\");\r\n }\r\n\r\n get RegisteredAccountingPackage() {\r\n return getString(\"REGISTERED_ACCOUNTING_PACKAGE\", \"Registered accounting package\");\r\n }\r\n get SelectAccountingSoftware() {\r\n return getString(\"SELECT_ACCOUNTING_SOFTWARE\", \"Select your accounting software package to connect to Lockstep:\");\r\n }\r\n get VoteForNextPackage() {\r\n return getString(\"VOTE_FOR_NEXT_PACKAGE\", \"Or vote for next accounting package to sync with Lockstep\");\r\n }\r\n get VoteForPackageSubtext() {\r\n return getString(\r\n \"VOTE_FOR_PACKAGE_SUBTEXT\",\r\n \"Select your accounting package and we will let you know when it's ready\"\r\n );\r\n }\r\n ERPConnectionSuccessMessage(erp) {\r\n return formatString(getString(\"ERP_CONNECTION_SUCCESS_MESSAGE\", \"Success, you're now connected to {erp}!\"), {\r\n erp\r\n });\r\n }\r\n SyncedWith(erp) {\r\n return formatString(getString(\"SYNCED_WITH\", \"Synced with {erp}\"), { erp });\r\n }\r\n get EnterPackageDetails() {\r\n return getString(\"ENTER_PACKAGE_DETAILS\", \"Enter details to connect with your accounting package.\");\r\n }\r\n\r\n get AccountId() {\r\n return getString(\"ACCOUNT_ID\", \"Account ID\");\r\n }\r\n get TokenId() {\r\n return getString(\"TOKEN_ID\", \"Token ID\");\r\n }\r\n get TokenSecret() {\r\n return getString(\"TOKEN_SECRET\", \"Token Secret\");\r\n }\r\n get Register() {\r\n return getString(\"REGISTER\", \"Register\");\r\n }\r\n get Registering() {\r\n return getString(\"REGISTERING\", \"Registering\");\r\n }\r\n get Registered() {\r\n return getString(\"REGISTERED\", \"Registered\");\r\n }\r\n get Unregister() {\r\n return getString(\"UNREGISTER\", \"Unregister\");\r\n }\r\n get YesRegister() {\r\n return getString(\"YES_REGISTER\", \"Yes, I want to register\");\r\n }\r\n get YesDisconnect() {\r\n return getString(\"YES_DISCONNECT\", \"Yes, I want to disconnect\");\r\n }\r\n get Vote() {\r\n return getString(\"VOTE\", \"Vote\");\r\n }\r\n VoteFor(connectorName) {\r\n return formatString(getString(\"VOTE_FOR\", \"Vote for {conncetorName}\"), {\r\n connectorName\r\n });\r\n }\r\n ThanksForVotingFor(connector) {\r\n return formatString(getString(\"THANKS_FOR_VOTING_FOR\", \"Thank you for voting for {connector}!\"), { connector });\r\n }\r\n get Warning() {\r\n return getString(\"WARNING\", \"Warning!\");\r\n }\r\n get Login() {\r\n return getString(\"LOGIN\", \"Login\");\r\n }\r\n get CustomersSynched() {\r\n return getString(\"CUSTOMERS_SYNCHED\", \"Customers Synched\");\r\n }\r\n get VendorsSynched() {\r\n return getString(\"VENDORS_SYNCHED\", \"Vendors Synched\");\r\n }\r\n get VendorSettingsSaved() {\r\n return getString(\"VENDOR_SETTINGS_SAVED\", \"Vendor settings saved\");\r\n }\r\n get VerifyInstallation() {\r\n return getString(\"VERIFY_INSTALLATION\", \"Verify Installation\");\r\n }\r\n get InstallationInstructions() {\r\n return getString(\"INSTALLATION_INSTRUCTIONS\", \"Installation Instructions\");\r\n }\r\n StartingViewBlurb1ERPSetupInstall(ERPName) {\r\n return formatString(\r\n getString(\r\n \"STARTING_VIEW_BLURB_1_ERP_SETUP_INSTALL\",\r\n \"In order for Lockstep to communicate with your implementation of {ERPName} --- the certified Lockstep {ERPName} bundle must be installed.\"\r\n ),\r\n { ERPName: ERPName }\r\n );\r\n }\r\n get StartingViewBlurb2ERPSetupInstall() {\r\n return getString(\r\n \"STARTING_VIEW_BLURB_2_ERP_SETUP_INSTALL\",\r\n \"After the Lockstep Bundle is installed, it must be verified and registered.\"\r\n );\r\n }\r\n get RegisterHere() {\r\n return getString(\"REGISTER_HERE\", \"Register Here\");\r\n }\r\n get MissingOne() {\r\n return getString(\"MISSING_ONE\", \"Missing one? Type name here\");\r\n }\r\n get LetsGetStarted() {\r\n return getString(\"LETS_GET_STARTED\", \"Get started with Lockstep!\");\r\n }\r\n ReturnToErp(connectorName) {\r\n return formatString(getString(\"RETURN_TO_ERP\", \"Return to {connectorName}\"), { connectorName });\r\n }\r\n ConnectorRegisterSuccess(connectorName) {\r\n return formatString(getString(\"CONNECTOR_REGISTER_SUCCESS\", \"Success, you're now connected to {connectorName}!\"), {\r\n connectorName\r\n });\r\n }\r\n ConnectorRegisterSuccessMessage(connectorName) {\r\n return formatString(\r\n getString(\r\n \"CONNECTOR_REGISTER_SUCCESS_MESSAGE\",\r\n \"Your {connectorName} account has been successfully connected to Lockstep.\"\r\n ),\r\n { connectorName }\r\n );\r\n }\r\n ConnectorRegisterWarning(connectorName) {\r\n return formatString(\r\n getString(\r\n \"CONNECTOR_REGISTER_WARNING\",\r\n \"You are about to register a new accounting package. This will unregister {connectorName} first.

Are you sure you want to register a new accounting package?\"\r\n ),\r\n { connectorName }\r\n );\r\n }\r\n ConnectorDisconnectWarning(connectorName) {\r\n return formatString(\r\n getString(\"CONNECTOR_DISCONNECT_WARNING\", \"Are you sure you want to disconnect {connectorName}?\"),\r\n { connectorName }\r\n );\r\n }\r\n get ConnectorCompanySelectionHeader() {\r\n return getString(\r\n \"CONNECTOR_COMPANY_SELECTION_HEADER\",\r\n \"We connect to your accounting software to synchronize your invoices and contracts.\"\r\n );\r\n }\r\n get ThisConnectorHasAlreadyBeenInstalled() {\r\n return getString(\r\n \"THIS_CONNECTOR_HAS_ALREADY_BEEN_INSTALLED\",\r\n \"This connector had already been installed and registered.\"\r\n );\r\n }\r\n\r\n get AutomatedTasks() {\r\n return getString(\"AUTOMATED_TASKS\", \"Automated tasks\");\r\n }\r\n get ManualTasks() {\r\n return getString(\"MANUAL_TASKS\", \"Manual tasks\");\r\n }\r\n get Tasks() {\r\n return getString(\"TASKS\", \"Tasks\");\r\n }\r\n get Team() {\r\n return getString(\"TEAM\", \"Team\");\r\n }\r\n get ApprovalAging() {\r\n return getString(\"APPROVAL_AGING\", \"Approval Aging\");\r\n }\r\n get TotalTasks() {\r\n return getString(\"TOTAL_TASKS\", \"Total Tasks\");\r\n }\r\n get Responses() {\r\n return getString(\"RESPONSES\", \"Responses\");\r\n }\r\n get AvgReviewTime() {\r\n return getString(\"AVG_REVIEW_TIME\", \"Avg. Review Time\");\r\n }\r\n get Resolutions() {\r\n return getString(\"RESOLUTIONS\", \"Resolutions\");\r\n }\r\n get AvgResolutionTime() {\r\n return getString(\"AVG_RESOLUTION_TIME\", \"Avg. Resolution Time\");\r\n }\r\n get AvgResponseTime() {\r\n return getString(\"AVG_RESPONSE_TIME\", \"Avg. Response Time\");\r\n }\r\n get TeamMember() {\r\n return getString(\"TEAM_MEMBER\", \"Team Member\");\r\n }\r\n get Percentage() {\r\n return getString(\"PERCENTAGE\", \"Percentage\");\r\n }\r\n get PercentResponses() {\r\n return getString(\"PERCENT_RESPONSES\", \"% Responses\");\r\n }\r\n get PercentResolutions() {\r\n return getString(\"PERCENT_RESOLUTIONS\", \"% Resolutions\");\r\n }\r\n get AvgFirstResponse() {\r\n return getString(\"AVG_FIRST_RESPONSE\", \"Avg. First Response\");\r\n }\r\n get TaskTitle() {\r\n return getString(\"TASK_TITLE\", \"Task Title\");\r\n }\r\n get Organization() {\r\n return getString(\"ORGANIZATION\", \"Organization\");\r\n }\r\n get ResolutionTime() {\r\n return getString(\"RESOLUTION_TIME\", \"Resolution Time\");\r\n }\r\n get FirstResponse() {\r\n return getString(\"FIRST_RESPONSE\", \"First Response\");\r\n }\r\n get ApprovalRequests() {\r\n return getString(\"APPROVAL_REQUESTS\", \"Approval Requests\");\r\n }\r\n get Outstanding() {\r\n return getString(\"OUTSTANDING\", \"Outstanding\");\r\n }\r\n get AvgApprovalTime() {\r\n return getString(\"AVG_APPROVAL_TIME\", \"Avg. Approval Time\");\r\n }\r\n get MaxApprovalTime() {\r\n return getString(\"MAX_APPROVAL_TIME\", \"Max Approval Time\");\r\n }\r\n get Requests() {\r\n return getString(\"REQUESTS\", \"Requests\");\r\n }\r\n get MaxOutstandingTime() {\r\n return getString(\"MAX_OUTSTANDING_TIME\", \"Max Outstanding Time\");\r\n }\r\n get CurrentlyAging() {\r\n return getString(\"CURRENTLY_AGING\", \"Currently Aging\");\r\n }\r\n get GreaterThanOrEqualTo() {\r\n return getString(\"GREATER_THAN_OR_EQUAL_TO\", \"Greater than or equal to\");\r\n }\r\n get AndLessThan() {\r\n return getString(\"AND_LESS_THAN\", \"and less than\");\r\n }\r\n get LessThanTwentyFourHours() {\r\n return getString(\"LESS_THAN_24_HOURS\", \"< 24 Hours\");\r\n }\r\n get TwentyFourToFourtyEightHours() {\r\n return getString(\"24_TO_48_HOURS\", \"24 - 48 Hours\");\r\n }\r\n get FourtyEightToSeventyTwoHours() {\r\n return getString(\"48_TO_72_HOURS\", \"48 - 72 Hours\");\r\n }\r\n get SeventyTwoPlusHours() {\r\n return getString(\"72_PLUS_HOURS\", \"72+ Hours\");\r\n }\r\n get MaxAgingTime() {\r\n return getString(\"MAX_AGING_TIME\", \"Max Aging Time\");\r\n }\r\n get Current() {\r\n return getString(\"CURRENT\", \"Current\");\r\n }\r\n get AgingLessThanTwentyFourH() {\r\n return getString(\"AGING_LESS_THAN_24_H\", \"Aging < 24h\");\r\n }\r\n get AgingTwentyFourToFourtyEightH() {\r\n return getString(\"AGING_24_TO_48_H\", \"Aging 24 - 48h\");\r\n }\r\n get AgingFourtyEightToSeventyTwoH() {\r\n return getString(\"AGING_48_TO_72_H\", \"Aging 48 - 72h\");\r\n }\r\n get AgingSeventyTwoPlusH() {\r\n return getString(\"AGING_72_PLUS_H\", \"Aging 72+ h\");\r\n }\r\n get FilterBy() {\r\n return getString(\"FILTER_BY\", \"Filter by\");\r\n }\r\n get TimeRange() {\r\n return getString(\"TIME_RANGE\", \"Time range\");\r\n }\r\n get AnyTime() {\r\n return getString(\"ANY_TIME\", \"Any time\");\r\n }\r\n get PastTwentyFourHours() {\r\n return getString(\"PAST_TWENTY_FOUR_HOURS\", \"Past 24 hours\");\r\n }\r\n get PastWeek() {\r\n return getString(\"PAST_WEEK\", \"Past week\");\r\n }\r\n get PastMonth() {\r\n return getString(\"PAST_MONTH\", \"Past month\");\r\n }\r\n get PastYear() {\r\n return getString(\"PAST_YEAR\", \"Past year\");\r\n }\r\n get CustomRange() {\r\n return getString(\"CUSTOM_RANGE\", \"Custom range...\");\r\n }\r\n get NumberOfDays() {\r\n return getString(\"NUMBER_OF_DAYS\", \"Number of days\");\r\n }\r\n get DayOfTheMonth() {\r\n return getString(\"DAY_OF_THE_MONTH\", \"Day of the month\");\r\n }\r\n get LastTwentyEightDays() {\r\n return getString(\"LAST_28_DAYS\", \"Last 28 Days\");\r\n }\r\n get LastTenDays() {\r\n return getString(\"LAST_10_DAYS\", \"Last 10 Days\");\r\n }\r\n get LastTwelveHours() {\r\n return getString(\"LAST_12_HOURS\", \"Last 12 Hours\");\r\n }\r\n get DailyWeekdays() {\r\n return getString(\"DAILY_WEEKDAYS\", \"Daily (weekdays only)\");\r\n }\r\n get WeeklyMondays() {\r\n return getString(\"WEEKLY_MONDAYS\", \"Weekly (on Mondays)\");\r\n }\r\n get Never() {\r\n return getString(\"NEVER\", \"Never\");\r\n }\r\n get TeamReport() {\r\n return getString(\"TEAM_REPORT\", \"Team Report\");\r\n }\r\n get TasksReport() {\r\n return getString(\"TASKS_REPORT\", \"Tasks Report\");\r\n }\r\n get ApproversReport() {\r\n return getString(\"APPROVERS_REPORT\", \"Approvers Report\");\r\n }\r\n get ApprovalAgingReport() {\r\n return getString(\"APPROVAL_AGING_REPORT\", \"Approval Aging Report\");\r\n }\r\n get AverageResolutionTimeByTeamMember() {\r\n return getString(\"AVERAGE_RESOLUTION_TIME_BY_TEAM_MEMBER\", \"Average resolution time by team member\");\r\n }\r\n get AverageApprovalTimeByApprover() {\r\n return getString(\"AVERAGE_APPROVAL_TIME_BY_APPROVER\", \"Average Approval Time by Approver\");\r\n }\r\n get MaxApprovalTimeByApprover() {\r\n return getString(\"MAX_APPROVAL_TIME_BY_APPROVER\", \"Max Approval Time by Approver\");\r\n }\r\n get NumberOfRequestsByApprover() {\r\n return getString(\"NUMBER_OF_REQUESTS_BY_APPROVER\", \"Number of Requests by Approver\");\r\n }\r\n get SlowestResolver() {\r\n return getString(\"SLOWEST_RESOLVER\", \"Slowest Resolver\");\r\n }\r\n get LastWeek() {\r\n return getString(\"LAST_WEEK\", \"Last Week\");\r\n }\r\n get ThisWeek() {\r\n return getString(\"THIS_WEEK\", \"This Week\");\r\n }\r\n get LastMonth() {\r\n return getString(\"LAST_MONTH\", \"Last Month\");\r\n }\r\n get ThisMonth() {\r\n return getString(\"THIS_MONTH\", \"This Month\");\r\n }\r\n get LastQuarter() {\r\n return getString(\"LAST_QUARTER\", \"Last Quarter\");\r\n }\r\n get ThisQuarter() {\r\n return getString(\"THIS_QUARTER\", \"This Quarter\");\r\n }\r\n\r\n get InvoiceSummary() {\r\n return getString(\"INVOICE_SUMMARY\", \"Invoice summary\");\r\n }\r\n get BillNumber() {\r\n return getString(\"BILL_NUMBER\", \"Bill #\");\r\n }\r\n get DateEntered() {\r\n return getString(\"DATE_ENTERED\", \"Date Entered\");\r\n }\r\n get RemainingPayment() {\r\n return getString(\"REMAINING_PAYMENT\", \"Remaining Payment\");\r\n }\r\n get Terms() {\r\n return getString(\"TERMS\", \"Terms\");\r\n }\r\n get CheckNumber() {\r\n return getString(\"CHECK_NUMBER\", \"Check Number\");\r\n }\r\n get CheckDate() {\r\n return getString(\"CHECK_DATE\", \"Check Date\");\r\n }\r\n get InvoiceNumber() {\r\n return getString(\"INVOICE_NUMBER\", \"Invoice Number\");\r\n }\r\n get NoStatementSearchResultsMessage() {\r\n return getString(\r\n \"NO_STATEMENT_SEARCH_RESULTS_MESSAGE\",\r\n \"Oops! We can't find what you're looking for. You can search for an invoice number.\"\r\n );\r\n }\r\n get NoMessageSearchResultsMessage() {\r\n return getString(\r\n \"NO_STATEMENT_SEARCH_RESULTS_MESSAGE\",\r\n \"Oops! We can't find what you're looking for. You can search for a subject or message content.\"\r\n );\r\n }\r\n SeeAllInvoiceResults(searchTerm) {\r\n return formatString(getString(\"SEE_ALL_INVOICE_RESULTS\", 'See all results for invoices with \"{searchTerm}\"'), {\r\n searchTerm\r\n });\r\n }\r\n SeeAllPaymentsResults(searchTerm) {\r\n return formatString(getString(\"SEE_ALL_PAYMENTS_RESULTS\", 'See all results for payments with \"{searchTerm}\"'), {\r\n searchTerm\r\n });\r\n }\r\n SeeAllMessageResults(searchTerm) {\r\n return formatString(getString(\"SEE_ALL_MESSAGES_RESULTS\", 'See all results for messages with \"{searchTerm}\"'), {\r\n searchTerm\r\n });\r\n }\r\n get TransactionId() {\r\n return getString(\"TRANSACTION_ID\", \"Transaction Id\");\r\n }\r\n get TransactionType() {\r\n return getString(\"TRANSACTION_TYPE\", \"Transaction Type\");\r\n }\r\n get NotEntered() {\r\n return getString(\"NOT_ENTERED\", \"Not Entered\");\r\n }\r\n get RemainingDollars() {\r\n return getString(\"REMAINING_DOLLARS\", \"Remaining $\");\r\n }\r\n get OriginalAmount() {\r\n return getString(\"ORIGINAL_AMOUNT\", \"Original Amount\");\r\n }\r\n get AmountDue() {\r\n return getString(\"AMOUNT_DUE\", \"Amount Due\");\r\n }\r\n get PaymentAmt() {\r\n return getString(\"PAYMENT_AMT\", \"Payment Amt\");\r\n }\r\n get UnappliedAmt() {\r\n return getString(\"UNAPPLED_AMT\", \"Unapplied Amt\");\r\n }\r\n UnappliedPaymentsAlert(count, total) {\r\n return formatString(\r\n getString(\r\n \"UNAPPLIED_PAYMENTS_ALERT\",\r\n \"You have {count} unapplied payments totaling {total} contributing to your total account balance.\"\r\n ),\r\n { count, total }\r\n );\r\n }\r\n get Account() {\r\n return getString(\"ACCOUNT\", \"Account\");\r\n }\r\n get AmountPaid() {\r\n return getString(\"AMOUNT_PAID\", \"Amount Paid\");\r\n }\r\n get InvoiceDate() {\r\n return getString(\"INVOICE_DATE\", \"Invoice Date\");\r\n }\r\n get EnteredOn() {\r\n return getString(\"ENTERED_ON\", \"Entered on\");\r\n }\r\n get Default() {\r\n return getString(\"DEFAULT\", \"Default\");\r\n }\r\n\r\n get Remap() {\r\n return getString(\"REMAP\", \"Remap\");\r\n }\r\n get EnterNewName() {\r\n return getString(\"ENTER_NEW_NAME\", \"Enter new name\");\r\n }\r\n get RenameCompanyProfile() {\r\n return getString(\"RENAME_COMPANY_PROFILE\", \"Rename company profile\");\r\n }\r\n get CompanyEmailIdentifiers() {\r\n return getString(\"COMPANY_EMAIL_IDENTIFIERS\", \"Company Email Identifiers\");\r\n }\r\n get ContactDetailsOptional() {\r\n return getString(\"CONTACT_DETAILS_OPTIONAL\", \"Contact Details - Optional\");\r\n }\r\n\r\n CompanyMarkedAsSpam(companyName) {\r\n return formatString(getString(\"COMPANY_MARKED_AS_SPAM\", \"{companyName} has been marked as spam\"), { companyName });\r\n }\r\n AddressMarkedAsSpam(address) {\r\n return formatString(getString(\"ADDRESS_MARKED_AS_SPAM\", \"{address} has been marked as spam\"), { address });\r\n }\r\n HasBeenRemaped(companyNameFrom, companyNameTo) {\r\n return formatString(\r\n getString(\"COMPANY_HAS_BEEN_REMAPED\", \"{companyNameFrom} has been remaped to {companyNameTo}\"),\r\n { companyNameTo, companyNameFrom }\r\n );\r\n }\r\n ChannelNameHasBeenChanged(oldCompanyName, newCompanyName) {\r\n return formatString(\r\n getString(\"CHANNEL_NAME_CHANGED\", \"Channel display name changed from {oldCompanyname} to {newCompanyName}\"),\r\n { oldCompanyName, newCompanyName }\r\n );\r\n }\r\n get NewCompanyMessage() {\r\n return getString(\"NEW_COMPANY_MESSAGE\", \"This conversation is with an unknown/new company\");\r\n }\r\n\r\n get RemapAndMergeTheEmailToAnExistingCompany() {\r\n return getString(\r\n \"REMAP_AND_MERGE_THE_EMAIL_TO_AN_EXISTING_COMPANY\",\r\n \"Remap and merge the email to an existing company.\"\r\n );\r\n }\r\n get ThisActionCannotBeUndone() {\r\n return getString(\"THIS_ACTION_CANNOT_BE_UNDONE\", \"This action cannot be undone\");\r\n }\r\n\r\n get Download() {\r\n return getString(\"DOWNLOAD\", \"Download\");\r\n }\r\n get DownloadAttachments() {\r\n return getString(\"DOWNLOAD_ATTACHMENTS\", \"Download attachments\");\r\n }\r\n get Document() {\r\n return getString(\"DOCUMENT\", \"Document\");\r\n }\r\n get Direction() {\r\n return getString(\"DIRECTION\", \"Direction\");\r\n }\r\n\r\n get Workflows() {\r\n return getString(\"WORKFLOWS\", \"Workflows\");\r\n }\r\n get CreateWorkflow() {\r\n return getString(\"CREATE_WORKFLOW\", \"Create workflow\");\r\n }\r\n get NewWorkflow() {\r\n return getString(\"NEW_WORKFLOW\", \"New Workflow\");\r\n }\r\n get Reminder() {\r\n return getString(\"REMINDER\", \"Reminder\");\r\n }\r\n get Reminders() {\r\n return getString(\"REMINDERS\", \"Reminders\");\r\n }\r\n get CustomWorkflow() {\r\n return getString(\"CUSTOM_FLOW\", \"Custom workflow\");\r\n }\r\n get EditingWorkflow() {\r\n return getString(\"EDITING_WORKFLOW\", \"Editing Workflow\");\r\n }\r\n get WorkflowType() {\r\n return getString(\"WORKFLOW_TYPE\", \"Workflow Type\");\r\n }\r\n SetReminderNameReminder(reminderName) {\r\n return formatString(getString(\"SET_REMINDER_NAME_REMINDER\", \"Set {reminderName} Reminder\"), { reminderName });\r\n }\r\n get SelectCustomDateAndTime() {\r\n return getString(\"SELECT_CUSTOM_DATE_AND_TIME\", \"Select custom date and time\");\r\n }\r\n get CustomDateRange() {\r\n return getString(\"CUSTOM_DATE_RANGE\", \"Custom date range\");\r\n }\r\n get Time() {\r\n return getString(\"TIME\", \"Time\");\r\n }\r\n get UseAsDefaultTemplateFor() {\r\n return getString(\"USE_AS_DEFAULT_TEMPLATE_FOR\", \"Use as default template for\");\r\n }\r\n get AssignTo() {\r\n return getString(\"ASSIGN_TO\", \"Assign to\");\r\n }\r\n ReminderNameSetForDate(reminderName, reminderDate) {\r\n return formatString(getString(\"REMINDER_NAME_SET_FOR_DATE\", \"Reminder {reminderName} set for {reminderDate}\"), {\r\n reminderName,\r\n reminderDate\r\n });\r\n }\r\n ActivitySnoozed(reminderDate) {\r\n return formatString(getString(\"ACTIVITY_SNOOZED\", \"Activity snoozed until {reminderDate}\"), {\r\n reminderDate\r\n });\r\n }\r\n get ReminderCanceled() {\r\n return getString(\"REMINDER_WAS_CANCELED\", \"Reminder was canceled\");\r\n }\r\n ReminderNameForDateReminded(reminderName, reminderDate) {\r\n return formatString(\r\n getString(\"REMINDER_NAME_FOR_DATE_REMINDED\", \"Reminder {reminderName} for {reminderDate} actiavted\"),\r\n {\r\n reminderName,\r\n reminderDate\r\n }\r\n );\r\n }\r\n\r\n get Tomorrow() {\r\n return getString(\"TOMORROW\", \"Tomorrow\");\r\n }\r\n get NextWeek() {\r\n return getString(\"NEXT_WEEK\", \"Next Week\");\r\n }\r\n get NextMonth() {\r\n return getString(\"NEXT_MONTH\", \"Next Month\");\r\n }\r\n get NextQuarter() {\r\n return getString(\"NEXT_QUARTER\", \"Next Quarter\");\r\n }\r\n get CustomDayTime() {\r\n return getString(\"CUSTOM_DAY_TIME\", \"Custom Day/Time\");\r\n }\r\n\r\n ReminderNameDueTime(reminderName, time) {\r\n return formatString(getString(\"REMINDER_NAME_DUE_TIME\", \"{reminderName} due {time}\"), {\r\n reminderName,\r\n time\r\n });\r\n }\r\n ReminderNameDueTimeAgo(reminderName, time) {\r\n return formatString(getString(\"REMINDER_NAME_DUE_TIME_AGO\", \"{reminderName} due {time} ago\"), {\r\n reminderName,\r\n time\r\n });\r\n }\r\n\r\n get ConnectDirectlyToYourIMAPServer() {\r\n return getString(\"CONNECT_DIRECTLY_TO_YOUR_IMAP_SERVER\", \"Connect directly to your IMAP server\");\r\n }\r\n\r\n get Activate() {\r\n return getString(\"ACTIVATE\", \"Activate\");\r\n }\r\n get Deactivate() {\r\n return getString(\"DEACTIVATE\", \"Deactivate\");\r\n }\r\n get Alias() {\r\n return getString(\"ALIAS\", \"Alias\");\r\n }\r\n get HostAddress() {\r\n return getString(\"HOST_ADDRESS\", \"Host Address\");\r\n }\r\n get HostAddressExample() {\r\n return getString(\"HOST_ADDRESS_EXAMPLE\", \"imap.domain.com\");\r\n }\r\n get Port() {\r\n return getString(\"PORT\", \"Port\");\r\n }\r\n get Active() {\r\n return getString(\"ACTIVE\", \"Active\");\r\n }\r\n get ValidEmailError() {\r\n return getString(\r\n \"VALID_EMAIL_ERROR\",\r\n \"We weren't able to process this email address. Double check and make sure that it's valid.\"\r\n );\r\n }\r\n get ForwardEmailsToYourWorkspace() {\r\n return getString(\"FORWARD_EMAILS_TO_YOUR_WORKSPACE\", \"Forward e-mails to your workspace\");\r\n }\r\n get ForwardAllEmailsFromInboxToSharedLedger() {\r\n return getString(\r\n \"FORWARD_ALL_EMAILS_FROM_INBOX_TO_SHARED_LEDGER\",\r\n \"Forward all emails from your email inbox to a specific workspace address.\"\r\n );\r\n }\r\n UseEmailForImapWorkspace(email) {\r\n return formatString(\r\n getString(\r\n \"USE_EMAIL_FOR_IMAP_WORSPACE\",\r\n \"Use your email account to securely deliver messages sent to {email} into this workspace.\"\r\n ),\r\n {\r\n email\r\n }\r\n );\r\n }\r\n get IncomingMailSettings() {\r\n return getString(\"INCOMING_MAIL_SETTINGS\", \"Incoming Mail Settings\");\r\n }\r\n get OutgoingMailSettings() {\r\n return getString(\"OUTGOING_MAIL_SETTINGS\", \"Outgoing Mail Settings\");\r\n }\r\n get DeleteEmailFromServerAfterImport() {\r\n return getString(\"DELETE_EMAIL_FROM_SERVER_AFTER_IMPORT\", \"Delete email from server after import?\");\r\n }\r\n get AddAlias() {\r\n return getString(\"ADD_ALIAS\", \"Add an alias\");\r\n }\r\n get RemoveAlias() {\r\n return getString(\"REMOVE_ALIAS\", \"Remove alias\");\r\n }\r\n get NumberOfDaysBackToImport() {\r\n return getString(\"NUMBER_OF_DAYS_BACK_TO_IMPORT\", \"Number of days back to import\");\r\n }\r\n get NotConnected() {\r\n return getString(\"NOT_CONNECTED\", \"Not Connected\");\r\n }\r\n get AliasAtDomain() {\r\n return getString(\"ALIAS_AT_DOMAIN\", \"alias@domain.com\");\r\n }\r\n get Day() {\r\n return getString(\"DAY\", \"Day\");\r\n }\r\n get Week() {\r\n return getString(\"WEEK\", \"Week\");\r\n }\r\n get Month() {\r\n return getString(\"MONTH\", \"Month\");\r\n }\r\n get Custom() {\r\n return getString(\"CUSTOM\", \"Custom\");\r\n }\r\n get ImportAllMailFromPast() {\r\n return getString(\"IMPORT_ALL_MAIL_FROM_PAST\", \"Import all mail from past\");\r\n }\r\n get Days() {\r\n return getString(\"DAYS\", \"Days\");\r\n }\r\n get EmailSettings() {\r\n return getString(\"EMAIL_SETTINGS\", \"Email Settings\");\r\n }\r\n get ShortestWaitingTime() {\r\n return getString(\"SHORTEST_WAITING_TIME\", \"Shortest Waiting Time\");\r\n }\r\n get LongestWaitingTime() {\r\n return getString(\"LONGEST_WAITING_TIME\", \"Longest Waiting Time\");\r\n }\r\n get NewestDate() {\r\n return getString(\"NEWEST_DATE\", \"Newest Date\");\r\n }\r\n get OldestDate() {\r\n return getString(\"OLDEST_DATE\", \"Oldest Date\");\r\n }\r\n get NextBusinessDay() {\r\n return getString(\"NEXT_BUSINESS_DAY\", \"Next Business Day\");\r\n }\r\n get MarkClosed() {\r\n return getString(\"MARK_CLOSED\", \"Mark closed\");\r\n }\r\n\r\n get WaitingResponse() {\r\n return getString(\"WAITING_RESPONSE\", \"Waiting response\");\r\n }\r\n get RequestResponse() {\r\n return getString(\"REQUEST_RESPONSE\", \"Request response\");\r\n }\r\n get ForwardAsRequest() {\r\n return getString(\"FORWARD_AS_REQUEST\", \"Forward as a request\");\r\n }\r\n get YouRequestedResponse() {\r\n return getString(\"YOU_REQUESTED_RESPONSE\", \"You requested a response\");\r\n }\r\n get SettingsSavedCheckBackInAMinute() {\r\n return getString(\r\n \"SETTINGS_SAVED_CHECK_BACK_IN_A_MINUTE\",\r\n \"Settings saved, please check back in a minute or two to verify successful connection.\"\r\n );\r\n }\r\n get CurrentChannelIs() {\r\n return getString(\"CURRENT_CHANNEL_IS\", \"Current channel is\");\r\n }\r\n get MoveThisConversationTo() {\r\n return getString(\"MOVE_THIS_CONVERSATION_TO\", \"Move this conversation to\");\r\n }\r\n get MoveTheseConversationsTo() {\r\n return getString(\"MOVE_THESE_CONVERSATIONS_TO\", \"Move these conversations to\");\r\n }\r\n get Channel() {\r\n return getString(\"CHANNEL\", \"Channel\");\r\n }\r\n get CompanySettings() {\r\n return getString(\"COMPANY_SETTINGS\", \"Company Settings\");\r\n }\r\n get BackToWorkspace() {\r\n return getString(\"BACK_TO_WORKSPACE\", \"Back to workspace\");\r\n }\r\n get AddComment() {\r\n return getString(\"ADD_COMMENT\", \"Add comment\");\r\n }\r\n get AddResponse() {\r\n return getString(\"ADD_RESPONSE\", \"Add response\");\r\n }\r\n get AddOptionalNote() {\r\n return getString(\"ADD_OPTIONAL_NOTE\", \"Add optional note\");\r\n }\r\n get PoweredByLockstep() {\r\n return getString(\r\n \"POWERED_BY_LOCKSTEP\",\r\n \"Powered by LOCKSTEP™. All your accounting workflows in one place.\"\r\n );\r\n }\r\n get WhoopsThatWasAMisstep() {\r\n return getString(\"WHOOPS_THAT_WAS_A_MISSTEP\", \"Whoops. That was a misstep.\");\r\n }\r\n get PageNotFoundMessage() {\r\n return getString(\r\n \"PAGE_NOT_FOUND\",\r\n \"The page is missing. The engineers will double check on their side. In the meantime, let's get back into Lockstep.\"\r\n );\r\n }\r\n get ReturnToYourWorkspace() {\r\n return getString(\"RETURN_TO_YOUR_WORKSPACE\", \"Return to your workspace\");\r\n }\r\n get AccountingDataSyncing() {\r\n return getString(\"ACCOUNTING_DATA_SYNCING\", \"Accounting data syncing...\");\r\n }\r\n get ThankYouForYourDecision() {\r\n return getString(\"THANK_YOU_FOR_YOUR_DECISION\", \"Thank you for your decision!\");\r\n }\r\n get YourComment() {\r\n return getString(\"YOUR_COMMENT\", \"Your comment\");\r\n }\r\n YouHaveActionThis(action) {\r\n return formatString(getString(\"YOU_HAVE_ACTION_THIS\", \"You have {action} this.\"), {\r\n action\r\n });\r\n }\r\n WeWillNotifyRequesterOfYourDecision(requester) {\r\n return formatString(\r\n getString(\"WE_WILL_NOTIFY_REQUESTER_OF_YOUR_DECISION\", \"We'll notify {requester} of your decision.\"),\r\n {\r\n requester\r\n }\r\n );\r\n }\r\n get HaveAWonderfulDayClosePage() {\r\n return getString(\"HAVE_A_WONDERFUL_DAY_CLOSE_PAGE\", \"Have a wonderful day! You can now close this page.\");\r\n }\r\n get CommentRequired() {\r\n return getString(\"COMMENT_REQUIRED\", \"A comment is required\");\r\n }\r\n get FailedToSendApprovalDecision() {\r\n return getString(\"FAILED_TO_SEND_APPROVAL_DECISION\", \"Failed to send approval decision (a comment is required)\");\r\n }\r\n get ConnectWithGmail() {\r\n return getString(\"CONNECT_WITH_GMAIL\", \"Connect with Gmail\");\r\n }\r\n get Syncing() {\r\n return getString(\"SYNCING\", \"Syncing\");\r\n }\r\n get DisconnectGmail() {\r\n return getString(\"DISCONNECT_GMAIL\", \"Disconnect Gmail\");\r\n }\r\n get ConnectYourGmailAccount() {\r\n return getString(\"CONNECT_YOUR_GMAIL_ACCOUNT\", \"Connect your Gmail Account\");\r\n }\r\n get ChooseGmailConnector() {\r\n return getString(\r\n \"CHOOSE_GMAIL_CONNECTOR\",\r\n \"Choose Gmail as your email provider. You will be asked to allow Lockstep to access your Google account.\"\r\n );\r\n }\r\n get ConnectToIMAPServer() {\r\n return getString(\"CONNECT_TO_IMAP_SERVER\", \"Connect to IMAP Server\");\r\n }\r\n get ChooseIMAPConnector() {\r\n return getString(\r\n \"CHOOSE_IMAP_CONNECTOR\",\r\n \"Use your email account to securely deliver messages into this workspace.\"\r\n );\r\n }\r\n get SetUpEmailForwarding() {\r\n return getString(\"SET_UP_EMAIL_FORWARDING\", \"Set up email forwarding\");\r\n }\r\n get ImapSettings() {\r\n return getString(\"IMAP_SETTINGS\", \"IMAP Settings\");\r\n }\r\n get ChangeIncomingEmailAccount() {\r\n return getString(\"CHANGE_INCOMING_EMAIL_ACCOUNT\", \"Change incoming e-mail account?\");\r\n }\r\n get ChangeIncomingEmailModalText() {\r\n return getString(\r\n \"CHANGE_INCOMING_EMAIL_MODAL_TEXT\",\r\n \"Connecting to a different e-mail account will disable your previously activated account for this workspace.\"\r\n );\r\n }\r\n get IncomingEmail() {\r\n return getString(\"INCOMING_EMAIL\", \"Incoming Email\");\r\n }\r\n get BillingAddress() {\r\n return getString(\"BILLING_ADDRESS\", \"Billing Address\");\r\n }\r\n get Connection() {\r\n return getString(\"CONNECTION\", \"Connection\");\r\n }\r\n get Connected() {\r\n return getString(\"CONNECTED\", \"Connected\");\r\n }\r\n get Connecting() {\r\n return getString(\"CONNECTING\", \"Connecting\");\r\n }\r\n get Disconnect() {\r\n return getString(\"DISCONNECT\", \"Disconnect\");\r\n }\r\n get Disconnected() {\r\n return getString(\"DISCONNECTED\", \"Disconnected\");\r\n }\r\n get Disconnecting() {\r\n return getString(\"DISCONNECTING\", \"Disconnecting\");\r\n }\r\n get ConfigurationRequired() {\r\n return getString(\"CONFIGURATION_REQUIRED\", \"Configuration Required\");\r\n }\r\n SynchronizingData(configProgress) {\r\n return formatString(\r\n getString(\"SYNCHRONIZING_DATA_PERCENT_COMPLETE\", \"Synchronizing Data...{configProgress}% complete\"),\r\n {\r\n configProgress\r\n }\r\n );\r\n }\r\n ConnectToConnector(connectorName) {\r\n return formatString(getString(\"CONNECT_TO_CONNECTOR\", \"Connect to {connectorName}\"), {\r\n connectorName\r\n });\r\n }\r\n get Synchronizes() {\r\n return getString(\"SYNCHRONIZES\", \"Synchronizes\");\r\n }\r\n get Reconnect() {\r\n return getString(\"RECONNECT\", \"Reconnect\");\r\n }\r\n DisconnectFromConnector(connectorName) {\r\n return formatString(getString(\"DISCONNECT_FROM_CONNECTOR\", \"Disconnect from {connectorName}\"), {\r\n connectorName\r\n });\r\n }\r\n get PrimaryContact() {\r\n return getString(\"PRIMARY_CONTACT\", \"Primary contact\");\r\n }\r\n get ContactEmail() {\r\n return getString(\"CONTACT_EMAIL\", \"Contact Email\");\r\n }\r\n get TaxID() {\r\n return getString(\"TAX_ID\", \"Tax ID\");\r\n }\r\n get AccountingPackageNotConnectedCompanyProfile() {\r\n return getString(\r\n \"ACCOUNTING_PACKAGE_NOT_CONNECTED_COMPANY_PROFILE\",\r\n \"Your accounting package isn't connected to Lockstep yet, so we can't show any profile data.\"\r\n );\r\n }\r\n get ConnectNow() {\r\n return getString(\"CONNECT_NOW\", \"Connect Now\");\r\n }\r\n get EmailMapping() {\r\n return getString(\"EMAIL_MAPPING\", \"Email Mapping\");\r\n }\r\n get EmailMappingExplanation() {\r\n return getString(\r\n \"EMAIL_MAPPING_EXPLANAITION\",\r\n \"Conversations from these email domains or email addresses will be mapped to this channel. Change this list to change what is mapped to this channel.\"\r\n );\r\n }\r\n\r\n get ProfileUpdateWelcome() {\r\n return getString(\r\n \"PROFILE_UPDATE_WELCOME\",\r\n \"Thanks for taking a few minutes to confirm your contact information with us! We use Lockstep to store and manage our customer contact information. We’ve prefilled the information we already have on file, would you mind verifying that information and filling in any blanks?\"\r\n );\r\n }\r\n\r\n get LinkedIn() {\r\n return getString(\"LINKED_IN\", \"LinkedIn URL\");\r\n }\r\n\r\n get HowIsMyDataUsed() {\r\n return getString(\"HOW_IS_MY_DATA_USED\", \"How is my data used and stored?\");\r\n }\r\n\r\n get ProfilePicture() {\r\n return getString(\"PROFILE_PICTURE\", \"Profile picture\");\r\n }\r\n\r\n get DomainOrAddress() {\r\n return getString(\"DOMAIN_OR_ADDRESS\", \"Domain or Address\");\r\n }\r\n get AddNewDomainOrEmail() {\r\n return getString(\"ADD_NEW_DOMAIN_OR_EMAIL\", \"Add New Domain or Email\");\r\n }\r\n get AddNew() {\r\n return getString(\"ADD_NEW\", \"Add New\");\r\n }\r\n get NewEmailDomainsToAdd() {\r\n return getString(\"NEW_EMAIL_DOMAINS_TO_ADD\", \"New Email domains or addresses to be displayed in this channel\");\r\n }\r\n get VendorDataSynchronizedWith() {\r\n return getString(\"VENDOR_DATA_SYNCHRONIZED_WITH\", \"Vendor data synchronized with\");\r\n }\r\n get CustomerDataSynchronizedWith() {\r\n return getString(\"CUSTOMER_DATA_SYNCHRONIZED_WITH\", \"Customer data synchronized with\");\r\n }\r\n get Phone() {\r\n return getString(\"PHONE\", \"Phone\");\r\n }\r\n get Mobile() {\r\n return getString(\"MOBILE\", \"Mobile\");\r\n }\r\n ChannelIsNotLinkedToAConnectorCompany(connectorName) {\r\n return formatString(\r\n getString(\r\n \"CHANNEL_IS_NOT_LINKED_TO_A_CONNECTOR_COMPANY\",\r\n \"The email address for this channel isn't linked to a vendor/customer in {connectorName}. You can leave it as is or take one of the actions below.\"\r\n ),\r\n {\r\n connectorName\r\n }\r\n );\r\n }\r\n get LockstepActions() {\r\n return getString(\"LOCKSTEP_ACTIONS\", \"Lockstep Actions\");\r\n }\r\n get RemapEmailToExistingCompany() {\r\n return getString(\"REMAP_EMAIL_TO_EXISTING_COMPANY\", \"Remap email to existing company\");\r\n }\r\n CreateVendorCustomerProfileHelperText(connectorName) {\r\n return formatString(\r\n getString(\r\n \"CREATE_VENDOR_CUSTOMER_PRFOLIE_HELPER_TEXT\",\r\n \"To get profile data, you can create a new vendor/customer in {connectorName} and then remap this company into your newly created company from {connectorName}.\"\r\n ),\r\n {\r\n connectorName\r\n }\r\n );\r\n }\r\n get NotifyRespondentViaEmail() {\r\n return getString(\"NOTIFY_RESPONDENT_VIA_EMAIL\", \"Notify Respondent via Email\");\r\n }\r\n get CancelRequestWithoutSendingAnEmail() {\r\n return getString(\"CANCEL_REQUEST_WITHOUT_SENDING_AN_EMAIL\", \"Cancel request without sending an email\");\r\n }\r\n get CancelApprovalRequestWithoutSendingAnEmail() {\r\n return getString(\r\n \"CANCEL_APPROVAL_REQUEST_WITHOUT_SENDING_AN_EMAIL\",\r\n \"Cancel approval request without sending an email\"\r\n );\r\n }\r\n get ResponseRequired() {\r\n return getString(\"RESPONSE_REQUIRED\", \"Response Required\");\r\n }\r\n get YouCanceledTheResponseRequest() {\r\n return getString(\"YOU_CANCELED_THE_RESPONSE_REQUEST\", \"You canceled the Response Request\");\r\n }\r\n PosterCanceledTheApprovalRequest(posterName) {\r\n return formatString(\r\n getString(\"POSTER_CANCELED_THE_APPROVAL_REQUEST\", \"{posterName} canceled the Approval Request\"),\r\n { posterName }\r\n );\r\n }\r\n get UserList() {\r\n return getString(\"USER_LIST\", \"User List\");\r\n }\r\n get UserListDescription() {\r\n return getString(\r\n \"USER_LIST_DESCRIPTION\",\r\n \"You deserve some help. Add and manage team members here. Each team member can belong to one or more workspaces. You can also grant admin privileges to others if want a sidekick.\"\r\n );\r\n }\r\n get InvalidInviteMessage() {\r\n return getString(\r\n \"INVALID_INVITE_MESSAGE\",\r\n \" This invitation is no longer valid. It may have been revoked by a company admin.\"\r\n );\r\n }\r\n get InviteList() {\r\n return getString(\"INVITE_LIST\", \"Invite List\");\r\n }\r\n get InviteListDescription() {\r\n return getString(\"INVITE_LIST_DESCRIPTION\", \"These are invites that we’ve sent out.\");\r\n }\r\n get ApproverList() {\r\n return getString(\"APPROVER_LIST\", \"Approver List\");\r\n }\r\n get ApproverListDescription() {\r\n return getString(\r\n \"APPROVER_LIST_DESCRIPTION\",\r\n \"Approvers are external collaborators that are responsible for authorizing transactions such as payments and credits. You can add them now or dynamically when sending out approval requests.\"\r\n );\r\n }\r\n get WorkflowList() {\r\n return getString(\"WORKFLOW_LIST\", \"Workflow List\");\r\n }\r\n get WorkflowListDescription() {\r\n return getString(\r\n \"WORKFLOW_LIST_DESCRIPTION\",\r\n \"Workflows are automation steps that team members can use to make work easier for everyone.\"\r\n );\r\n }\r\n get TemplateList() {\r\n return getString(\"TEMPLATE_LIST\", \"Template List\");\r\n }\r\n get TemplateListDescription() {\r\n return getString(\r\n \"TEMPLATE_LIST_DESCRIPTION\",\r\n \"Ensure consistent communications. This is a list of templates that team members can use to accelerate response and resolutions.\"\r\n );\r\n }\r\n get SharedDocumentList() {\r\n return getString(\"SHARED_DOCUMENT_LIST\", \"Shared Document List\");\r\n }\r\n get SharedDocumentListDescription() {\r\n return getString(\r\n \"SHARED_DOCUMENT_LIST_DESCRIPTION\",\r\n \"You can make business-critical documents easy to access. Store your W-9, proof-of-insurance, or tax exemption certificate here.\"\r\n );\r\n }\r\n get ContactList() {\r\n return getString(\"CONTACT_LIST\", \"Contact List\");\r\n }\r\n get ContactListDescription() {\r\n return getString(\r\n \"CONTACT_LIST_DESCRIPTION\",\r\n \"We’re tracking all the contact your working with. You can import some too.\"\r\n );\r\n }\r\n get MoveChannel() {\r\n return getString(\"MOVE_CHANNEL\", \"Move channel\");\r\n }\r\n get StripOutInternalActivityInForwardedMessage() {\r\n return getString(\r\n \"STRIP_OUT_INTERNAL_ACTIVITY_IN_FORWARDED_MESSAGE\",\r\n \"Strip out internal activity in forwarded message\"\r\n );\r\n }\r\n get InvalidEmailIdentifier() {\r\n return getString(\r\n \"INVALID_EMAIL_IDENTIFIER\",\r\n \"Must be a domain (example.com) or an email address (test@example.com)\"\r\n );\r\n }\r\n get ChangeDeliveryMethod() {\r\n return getString(\"CHANGE_DELIVERY_METHOD\", \"Change delivery method?\");\r\n }\r\n get ChangingDeliveryFromGmailWarning() {\r\n return getString(\r\n \"CHANGING_DELIVERY_FROM_GMAIL_WARNING\",\r\n \"Changing delivery settings will disable email delivery from your connected Gmail account. Do you still want to change?\"\r\n );\r\n }\r\n get YesChange() {\r\n return getString(\"YES_CHANGE\", \"Yes, change\");\r\n }\r\n get ConnectedGmailAccount() {\r\n return getString(\"CONNECTED_GMAIL_ACCOUNT\", \"Connected Gmail Account\");\r\n }\r\n get PutFutureEmailsFromSenderInSelectedChannel() {\r\n return getString(\r\n \"PUT_FUTURE_EMAILS_FROM_SENDER_IN_SELECTED_CHANNEL\",\r\n \"Put future emails from this sender in the selected channel\"\r\n );\r\n }\r\n get PutFutureEmailsFromSendersInSelectedChannel() {\r\n return getString(\r\n \"PUT_FUTURE_EMAILS_FROM_SENDER_IN_SELECTED_CHANNEL\",\r\n \"Put future emails from these senders in the selected channel\"\r\n );\r\n }\r\n get NameDescending() {\r\n return getString(\"NAME_DESCENDING\", \"Name (A-Z)\");\r\n }\r\n get NameAscending() {\r\n return getString(\"NAME_ASCENDING\", \"Name (Z-A)\");\r\n }\r\n get LargestActiveCount() {\r\n return getString(\"LARGEST_ACTIVE_COUNT\", \"Largest Active Count\");\r\n }\r\n get SmallestActiveCount() {\r\n return getString(\"SMALLEST_ACTIVE_COUNT\", \"Smallest Active Count\");\r\n }\r\n get NewestToOldest() {\r\n return getString(\"NEWEST_TO_OLDEST\", \"Newest to Oldest\");\r\n }\r\n get OldestToNewest() {\r\n return getString(\"OLDEST_TO_NEWEST\", \"Oldest to Newest\");\r\n }\r\n get MergeWithExistingChannel() {\r\n return getString(\"MERGE_WITH_EXISTING_CHANNEL\", \"Merge With Existing Channel\");\r\n }\r\n get NotificationApprovalRequestCancelation() {\r\n return getString(\"NOTIFICATION_APPROVAL_REQUEST_CANCELATION\", \"Notification - Approval Request Cancelation\");\r\n }\r\n get SendAndRequestResponse() {\r\n return getString(\"SEND_AND_REQUEST_RESPONSE\", \"Send and Request Response\");\r\n }\r\n get Hidden() {\r\n return getString(\"HIDDEN\", \"Hidden\");\r\n }\r\n get HideChannel() {\r\n return getString(\"HIDE_CHANNEL\", \"Hide Channel\");\r\n }\r\n get UnhideChannel() {\r\n return getString(\"UNHIDE_CHANNEL\", \"Unhide Channel\");\r\n }\r\n get ConfirmHideChannelMessage() {\r\n return getString(\r\n \"CONFIRM_HIDE_CHANNEL_MODAL\",\r\n \"Hiding this channel will close all active items. Would you still like to hide this channel?\"\r\n );\r\n }\r\n get YesHideChannel() {\r\n return getString(\"YES_HIDE_CHANNEL\", \"Yes, Hide Channel\");\r\n }\r\n get ChangeDisplayNameForChannel() {\r\n return getString(\"CHANGE_DISPLAY_NAME_FOR_CHANNEL\", \"Change the Display Name for This Channel\");\r\n }\r\n WorkspaceSettings(workspaceName) {\r\n return formatString(getString(\"WORKSPACE_SETTINGS\", \"{workspaceName} Settings\"), { workspaceName });\r\n }\r\n get Icon() {\r\n return getString(\"ICON\", \"Icon\");\r\n }\r\n get ForCollaborationWith() {\r\n return getString(\"FOR_COLLABORATION_WITH\", \"For collaboration with\");\r\n }\r\n get ConnectEmailAccountToSendAndReceiveMailFromWorkspace() {\r\n return getString(\r\n \"CONNECT_EMAIL_ACCOUNT_TO_SEND_AND_RECEIVE_MAIL_FROM_WORKSPACE\",\r\n \"Connect an email account to send and receive emails from your workspace.\"\r\n );\r\n }\r\n get DeliveryPreference() {\r\n return getString(\"DELIVERY_PREFERENCE\", \"Delivery preference\");\r\n }\r\n get DeliveryPreferences() {\r\n return getString(\"DELIVERY_PREFERENCES\", \"Delivery preferences\");\r\n }\r\n\r\n get TestIncomingEmail() {\r\n return getString(\"TestIncomingEmail\", \"Test incoming email\");\r\n }\r\n\r\n get SSLProtocol() {\r\n return getString(\"SSLProtocol\", \"SSL protocol\");\r\n }\r\n\r\n get TestOutgoingEmail() {\r\n return getString(\"TestOutgoingEmail\", \"Test outgoing email\");\r\n }\r\n get WorkspaceAddress() {\r\n return getString(\"WORKSPACE_ADDRESS\", \"Workspace address: \");\r\n }\r\n get GmailAccount() {\r\n return getString(\"GMAIL_ACCOUNT\", \"Gmail account\");\r\n }\r\n get ImapServer() {\r\n return getString(\"IMAP_SERVER\", \"Imap server\");\r\n }\r\n get IMAPMethod() {\r\n return getString(\"ImapMethod\", \"Complete the form below to setup IMAP delivery for incoming emails.\");\r\n }\r\n get SMTPMethod() {\r\n return getString(\"SMTPMethod\", \"Complete the form below to setup SMPT delivery for incoming emails.\");\r\n }\r\n get RequiredFields() {\r\n return getString(\"RequiredFields\", \"Required fields\");\r\n }\r\n get Inactive() {\r\n return getString(\"INACTIVE\", \"Inactive\");\r\n }\r\n get RemoteEmailPlaceholder() {\r\n return getString(\"REMOTE_EMAIL_PLACEHOLDER\", \"Inbound email for this workspace - e.g. finance@mycompany.com\");\r\n }\r\n get Fax() {\r\n return getString(\"FAX\", \"Fax\");\r\n }\r\n get MailingAddress() {\r\n return getString(\"MAILING_ADDRESS\", \"Mailing Address\");\r\n }\r\n get Notes() {\r\n return getString(\"NOTES\", \"Notes\");\r\n }\r\n get NotesOptional() {\r\n return getString(\"NOTES_OPTIONAL\", \"Notes (optional)\");\r\n }\r\n get ContactUs() {\r\n return getString(\"CONTACT_US\", \"Contact Us\");\r\n }\r\n get YourInformation() {\r\n return getString(\"YOUR_INFORMATION\", \"Your Information\");\r\n }\r\n get NoContactInfoYet() {\r\n return getString(\"NO_CONTACT_INFO_YET\", \"No contact info yet.\");\r\n }\r\n get AddYourInformationSoWeKnowBestWayToReachYou() {\r\n return getString(\r\n \"ADD_YOUR_INFORMATION_SO_WE_KNOW_BEST_WAY_TO_REACH_YOU\",\r\n \"Add your information so we know the best way to reach you.\"\r\n );\r\n }\r\n get AddNewContact() {\r\n return getString(\"ADD_NEW_CONTACT\", \"Add a new contact\");\r\n }\r\n get Pay() {\r\n return getString(\"PAY\", \"Pay\");\r\n }\r\n get SendMessage() {\r\n return getString(\"SEND_MESSAGE\", \"Send message\");\r\n }\r\n get Dispute() {\r\n return getString(\"DISPUTE\", \"Dispute\");\r\n }\r\n get PromiseToPay() {\r\n return getString(\"PROMISE_TO_PAY\", \"Promise to pay\");\r\n }\r\n get Export() {\r\n return getString(\"EXPORT\", \"Export\");\r\n }\r\n get MarkAsRead() {\r\n return getString(\"MARK_AS_READ\", \"Mark as read\");\r\n }\r\n get MarkAsUnread() {\r\n return getString(\"MARK_AS_UNREAD\", \"Mark as unread\");\r\n }\r\n get Due_Date() {\r\n return getString(\"DUE_DATE\", \"Due date\");\r\n }\r\n get TransactionDate() {\r\n return getString(\"TRANSACTION_DATE\", \"Transaction date\");\r\n }\r\n get Owner() {\r\n return getString(\"OWNER\", \"Owner\");\r\n }\r\n get DateUploaded() {\r\n return getString(\"DATE_UPLOADED\", \"Date uploaded\");\r\n }\r\n ShowNItems(numItems) {\r\n return formatString(getString(\"SHOW_N_ITEMS\", \"Show {numItems} items\"), { numItems });\r\n }\r\n get DocumentUploading() {\r\n return getString(\"DOCUMENT_UPLOADING\", \"Document uploading\");\r\n }\r\n get DocumentUploaded() {\r\n return getString(\"DOCUMENT_UPLOADED\", \"Document uploaded\");\r\n }\r\n get DocumentFailedToUpload() {\r\n return getString(\"DOCUMENT_FAILED_TO_UPLOAD\", \"Document failed to upload\");\r\n }\r\n get ZeroInvoices() {\r\n return getString(\"ZERO_INVOICES\", \"0 Invoices\");\r\n }\r\n get DisputeInvoices() {\r\n return getString(\"DISPUTE_INVOICES\", \"Dispute invoices\");\r\n }\r\n get Reason() {\r\n return getString(\"REASON\", \"Reason\");\r\n }\r\n get MessageOptional() {\r\n return getString(\"MESSAGE_OPTIONAL\", \"Message (optional)\");\r\n }\r\n get InvoicesSelectedForDispute() {\r\n return getString(\"INVOICES_SELECTED_FOR_DISPUTE\", \"Invoices selected for dispute\");\r\n }\r\n get IncorrectInformation() {\r\n return getString(\"INCORRECT_IFORMATION\", \"Incorrect information\");\r\n }\r\n get MissingInformation() {\r\n return getString(\"MISSING_INFORMATION\", \"Missing information\");\r\n }\r\n get IncorrectPriceOrCharges() {\r\n return getString(\"INCORRECT_PRICE_OR_CHARGES\", \"Incorrect price or charges\");\r\n }\r\n get DuplicateCharge() {\r\n return getString(\"DUPLICATE_CHARGE\", \"Duplicate charge\");\r\n }\r\n get OrderCanceledOrIncomplete() {\r\n return getString(\"ORDER_CANCELED_OR_INCOMPLETE\", \"Order canceled or incomplete\");\r\n }\r\n get OrderDamagedOrMissing() {\r\n return getString(\"ORDER_DAMAGED_OR_MISSING\", \"Order damaged or missing\");\r\n }\r\n get Other() {\r\n return getString(\"OTHER\", \"Other\");\r\n }\r\n get ExpectedPaymentDate() {\r\n return getString(\"EXPECTED_PAYMENT_DATE\", \"Expected payment date\");\r\n }\r\n get PaymentSuccessfulMessage() {\r\n return getString(\"PAYMENT_SUCCESSFUL_MESSAGE\", \"Nice work, payment successful!\");\r\n }\r\n get PaymentFailureMessage() {\r\n return getString(\"PAYMENT_FAILURE_MESSAGE\", \"Oops, something's not right!\");\r\n }\r\n YourTransactionIdIs(transactionId) {\r\n return formatString(\r\n getString(\r\n \"YOUR_TRANSACTION_ID_IS\",\r\n \"Your transaction ID is {transactionId}. If this opened a new window, you may close it.\"\r\n ),\r\n {\r\n transactionId\r\n }\r\n );\r\n }\r\n PaymentErrorIs(message) {\r\n message = decodeURLQueryString(message);\r\n return formatString(\r\n getString(\"PAYMENT_ERROR_IS\", \"It looks like {message}. Please go back and re-enter your payment information.\"),\r\n { message }\r\n );\r\n }\r\n get YourPaymentMethodWasAddedSuccessfully() {\r\n return getString(\r\n \"PAYMENT_METHOD_SUCCESSFUL\",\r\n \"Your payment method was added successfully. If this opened a new window, you may close it.\"\r\n );\r\n }\r\n get InvoicesSelected() {\r\n return getString(\"INVOICES_SELECTED\", \"Invoices selected\");\r\n }\r\n InvoicesPaid(num) {\r\n return formatString(getString(\"INVOICES_PAID\", \"Invoices paid ({num})\"), { num });\r\n }\r\n InvoicesSelectedFor(num) {\r\n return formatString(getString(\"INVOICES_SELECTED_FOR\", \"Invoices selected ({num})\"), { num });\r\n }\r\n get PastDue() {\r\n return getString(\"PAST_DUE\", \"Past due\");\r\n }\r\n get ExportingTable() {\r\n return getString(\"EXPORTING_TABLE\", \"Exporting table\");\r\n }\r\n get ExportComplete() {\r\n return getString(\"EXPORT_COMPLETE\", \"Export complete\");\r\n }\r\n get ExportTableFailed() {\r\n return getString(\"EXPORT_TABLE_FAILED\", \"Export of table failed\");\r\n }\r\n get PhoneNumber() {\r\n return getString(\"PHONE_NUMBER\", \"Phone number\");\r\n }\r\n get MakePrimaryContact() {\r\n return getString(\"MAKE_PRIMARY_CONTACT\", \"Make primary contact\");\r\n }\r\n get ContactIsBusiness() {\r\n return getString(\"CONTACT_IS_BUSINESS\", \"Contact is business\");\r\n }\r\n get Person() {\r\n return getString(\"PERSON\", \"Person\");\r\n }\r\n get Business() {\r\n return getString(\"BUSINESS\", \"Business\");\r\n }\r\n get WereOnIt() {\r\n return getString(\"WERE_ON_IT\", \"We're on it!\");\r\n }\r\n get OurSiteIsExperiencingSomeIssues() {\r\n return getString(\r\n \"OUR_SITE_IS_EXPERIENCING_SOME_ISSUES\",\r\n \"Our site is currently experiencing some issues and we are working hard to fix them.\"\r\n );\r\n }\r\n get ConnectedBy() {\r\n return getString(\"CONNECTED_BY\", \"connected by\");\r\n }\r\n get Disputed() {\r\n return getString(\"DISPUTED\", \"Disputed\");\r\n }\r\n get Promised() {\r\n return getString(\"PROMISED\", \"Promised\");\r\n }\r\n get ReasonForDispute() {\r\n return getString(\"REASON_FOR_DISPUTE\", \"Reason for dispute\");\r\n }\r\n get SubmittingPromiseToPay() {\r\n return getString(\"SUBMITTING_PROMISE_TO_PAY\", \"Submitting promise to pay\");\r\n }\r\n get PromiseToPaySubmitted() {\r\n return getString(\"PROMISE_TO_PAY_SUBMITTED\", \"Promise to pay submitted\");\r\n }\r\n get FailedSubmittingPromiseToPay() {\r\n return getString(\"FAILED_SUBMITTING_PROMISE_TO_PAY\", \"Failed to submit promise to pay\");\r\n }\r\n get SubmittingDispute() {\r\n return getString(\"SUBMITTING_DISPUTE\", \"Submitting dispute\");\r\n }\r\n get DisputeSubmitted() {\r\n return getString(\"DISPUTE_SUBMITTED\", \"Dispute submitted\");\r\n }\r\n get FailedSubmittingDispute() {\r\n return getString(\"FAILED_SUBMITTING_DISPUTE\", \"Failed to submit dispute\");\r\n }\r\n get Primary() {\r\n return getString(\"PRIMARY\", \"Primary\");\r\n }\r\n get DownloadInProgress() {\r\n return getString(\"DOWNLOAD_IN_PROGRESS\", \"Download in progress\");\r\n }\r\n get DownloadComplete() {\r\n return getString(\"PRIMARY\", \"Download complete\");\r\n }\r\n get DownloadFailed() {\r\n return getString(\"PRIMARY\", \"Download failed\");\r\n }\r\n get ContactSubmitting() {\r\n return getString(\"CONTACT_SUBMITTING\", \"Contact submitting\");\r\n }\r\n get ContactSubmitted() {\r\n return getString(\"CONTACT_SUBMITTED\", \"Contact submitted\");\r\n }\r\n get ContactSubmitFailed() {\r\n return getString(\"CONTACT_SUBMIT_FAILED\", \"Contact submit failed\");\r\n }\r\n get ContactDeleting() {\r\n return getString(\"CONTACT_DELETING\", \"Contact deleting\");\r\n }\r\n get ContactDeleted() {\r\n return getString(\"CONTACT_DELETED\", \"Contact deleted\");\r\n }\r\n get ContactDeleteFailed() {\r\n return getString(\"CONTACT_DELETE_FAILED\", \"Contact delete failed\");\r\n }\r\n get Reset() {\r\n return getString(\"RESET\", \"Reset\");\r\n }\r\n NTransactions(n) {\r\n return formatString(getString(\"N_TRANSACTIONS\", \"{n} transactions\"), { n });\r\n }\r\n NApplications(n) {\r\n return formatString(getString(\"N_APPLICATIONS\", \"{n} applications\"), { n });\r\n }\r\n get Apply() {\r\n return getString(\"APPLY\", \"Apply\");\r\n }\r\n get ApplyToInvoice() {\r\n return getString(\"APPLY_TO_INVOICE\", \"Apply to invoice\");\r\n }\r\n SelectInvoicesForPaymentApplication(paymentId) {\r\n return formatString(\r\n getString(\"SELECT_INVOICES_FOR_PAYMENT_APPLICATION\", \"Select invoices to apply to payment {paymentId}\"),\r\n { paymentId }\r\n );\r\n }\r\n get OneApplication() {\r\n return getString(\"ONE_APPLICATION\", \"1 application\");\r\n }\r\n InvoiceNAttachments(n) {\r\n return formatString(getString(\"INVOICE_N_ATTACHMENTS\", \"Invoice {n} - Attachments\"), { n });\r\n }\r\n get InvoiceAttachments() {\r\n return getString(\"INVOICE_ATTACHMENTS\", \"Invoice attachments\");\r\n }\r\n get CompanyStreetAddress() {\r\n return getString(\"COMPANY_STREET_ADDRESS\", \"Company street address\");\r\n }\r\n get JobTitle() {\r\n return getString(\"JOB_TITLE\", \"Job title\");\r\n }\r\n get StateRegion() {\r\n return getString(\"STATE_REGION\", \"State/region\");\r\n }\r\n get ZipCode() {\r\n return getString(\"ZIP_CODE\", \"Zip code\");\r\n }\r\n get CommunicationTemplates() {\r\n return getString(\"COMMUNICATION_TEMPLATES\", \"Communication templates\");\r\n }\r\n get EmptyCommunicationTemplates() {\r\n return getString(\"EMPTY_COMMUNICATION_TEMPLATES\", \"There are no communication templates to show\");\r\n }\r\n get EditedBy() {\r\n return getString(\"EDITED_BY\", \"Edited by\");\r\n }\r\n get LastEdited() {\r\n return getString(\"LAST_EDITED\", \"Last edited\");\r\n }\r\n get FailedGetCommunicationTemplates() {\r\n return getString(\"FAILED_GET_COMMUNICATION_TEMPLATES\", \"Failed to get communication templates. Please try again.\");\r\n }\r\n get FailedGetCommunicationTemplate() {\r\n return getString(\"FAILED_POST_COMMUNICATION_TEMPLATE\", \"Failed to save communication template. Please try again.\");\r\n }\r\n get FailedDeleteCommunicationTemplate() {\r\n return getString(\r\n \"FAILED_DELETE_COMMUNICATION_TEMPLATE\",\r\n \"Failed to delete communication template. Please try again.\"\r\n );\r\n }\r\n get FailedGetCommunicationTemplateDestinations() {\r\n return getString(\r\n \"FAILED_GET_COMMUNICATION_TEMPLATE_DESTINATIONS\",\r\n \"Failed to get communication template destinations. Please try again.\"\r\n );\r\n }\r\n get FailedGetCommunicationTemplateSnippets() {\r\n return getString(\r\n \"FAILED_GET_COMMUNICATION_TEMPLATE_SNIPPETS\",\r\n \"Failed to get communication template snippets. Please try again.\"\r\n );\r\n }\r\n get Voice() {\r\n return getString(\"VOICE\", \"Voice\");\r\n }\r\n get Sequences() {\r\n return getString(\"SEQUENCES\", \"Sequences\");\r\n }\r\n get SequenceName() {\r\n return getString(\"SEQUENCE_NAME\", \"Sequence name\");\r\n }\r\n get Overview() {\r\n return getString(\"OVERVIEW\", \"Overview\");\r\n }\r\n get CreateANewSequence() {\r\n return getString(\"CREATE_A_NEW_SEQUENCE\", \"Create a new sequence\");\r\n }\r\n get ViewAndEditSequence() {\r\n return getString(\"VIEW_AND_EDIT_SEQUENCE\", \"View and edit sequence\");\r\n }\r\n get CreateASequence() {\r\n return getString(\"CREATE_A_SEQUENCE\", \"Create a sequence\");\r\n }\r\n get CreateMyOwn() {\r\n return getString(\"CREATE_MY_OWN\", \"Create my own\");\r\n }\r\n get CustomSequenceMessage() {\r\n return getString(\"CUSTOM_SEQUENCE_MESSAGE\", \"Don't see what you're looking for? Create your own custom sequence.\");\r\n }\r\n get RecentlyTriggeredSequenceSteps() {\r\n return getString(\"RECENTLY_TRIGGERED_SEQUENCE_STEPS\", \"Recently triggered sequence steps\");\r\n }\r\n get Steps() {\r\n return getString(\"STEPS\", \"Steps\");\r\n }\r\n get AddAStep() {\r\n return getString(\"ADD_A_STEP\", \"Add a step\");\r\n }\r\n get ActiveSequences() {\r\n return getString(\"ACTIVE_SEQUENCES\", \"Active sequences\");\r\n }\r\n get Trigger() {\r\n return getString(\"TRIGGER\", \"Trigger\");\r\n }\r\n get CustomerGroupsAssigned() {\r\n return getString(\"CUSTOMER_GROUPS_ASSIGNED\", \"Customer groups assigned\");\r\n }\r\n get ManageCustomerGroups() {\r\n return getString(\"MANAGE_CUSTOMER_GROUPS\", \"Manage customer groups\");\r\n }\r\n get PhoneCall() {\r\n return getString(\"PHONE_CALL\", \"Phone call\");\r\n }\r\n get TextMessage() {\r\n return getString(\"TEXT_MESSAGE\", \"Text message\");\r\n }\r\n get CustomerGroups() {\r\n return getString(\"CUSTOMER_GROUPS\", \"Customer Groups\");\r\n }\r\n get CreateNewGroup() {\r\n return getString(\"CREATE_NEW_GROUP\", \"Create a new group\");\r\n }\r\n get GroupName() {\r\n return getString(\"GROUP_NAME\", \"Group Name\");\r\n }\r\n get FailedGetAccountGroups() {\r\n return getString(\"FAILED_GET_ACCOUNT_GROUPS\", \"Failed to get account groups. Please try again.\");\r\n }\r\n get FailedSaveAccountGroup() {\r\n return getString(\"FAILED_SAVE_ACCOUNT_GROUPS\", \"Failed to save account group. Please try again.\");\r\n }\r\n get FailedDeleteAccountGroup() {\r\n return getString(\"FAILED_DELETE_ACCOUNT_GROUPS\", \"Failed to delete account group. Please try again.\");\r\n }\r\n get FailedGetAccountGroupFilters() {\r\n return getString(\"FAILED_GET_ACCOUNT_GROUP_FILTERS\", \"Failed to get account group filters. Please try again.\");\r\n }\r\n get EmptyCustomerGroups() {\r\n return getString(\"EMPTY_CUSTOMER_GROUPS\", \"There are no customer groups to show\");\r\n }\r\n get NoCustomerGroupsSearchResultsMessage() {\r\n return getString(\r\n \"NO_CUSTOMER_GROUPS_SEARCH_RESULTS_MESSAGE\",\r\n \"Oops! We can't find what you're looking for. You can search for a group name.\"\r\n );\r\n }\r\n get NoTemplatesSearchResultsMessage() {\r\n return getString(\r\n \"NO_TEMPLATES_SEARCH_RESULTS_MESSAGE\",\r\n \"Oops! We can't find what you're looking for. You can search for a template name.\"\r\n );\r\n }\r\n SeeAllResultsFor(searchTerm) {\r\n return formatString(getString(\"SEE_ALL_RESULTS_FOR\", 'See all results for \"{searchTerm}\"'), {\r\n searchTerm\r\n });\r\n }\r\n get ViewAndEditGroup() {\r\n return getString(\"VIEW_AND_EDIT_GROUP\", \"View and edit group\");\r\n }\r\n get FailedGetCustomers() {\r\n return getString(\"FAILED_GET_CUSTOMERS\", \"Failed to get customers. Please try again.\");\r\n }\r\n get CustomerId() {\r\n return getString(\"CUSTOMER_ID\", \"Customer id\");\r\n }\r\n get CustomerName() {\r\n return getString(\"CUSTOMER_NAME\", \"Customer name\");\r\n }\r\n get SalesPerson() {\r\n return getString(\"SALES_PERSON\", \"Sales person\");\r\n }\r\n get TotalAging() {\r\n return getString(\"TOTAL_AGING\", \"Total aging\");\r\n }\r\n get Static() {\r\n return getString(\"STATIC\", \"Static\");\r\n }\r\n get Dynamic() {\r\n return getString(\"DYNAMIC\", \"Dynamic\");\r\n }\r\n get GroupType() {\r\n return getString(\"GROUP_TYPE\", \"Group type\");\r\n }\r\n get Filters() {\r\n return getString(\"FILTERS\", \"Filters\");\r\n }\r\n get AddFilter() {\r\n return getString(\"ADD_FILTER\", \"Add a filter\");\r\n }\r\n get EmptyCustomers() {\r\n return getString(\"EMPTY_CUSTOMERS\", \"There are no customers to show.\");\r\n }\r\n get AccountGroupsInfo() {\r\n return getString(\r\n \"ACCOUNT_GROUPS_INFO\",\r\n `

\r\n An account can only be assigned to one group.\r\n

\r\n

If an account is specified in a static group, then the account will be assigned to the static group.

\r\n

\r\n If not in a static group but is in multiple dynamic groups, then the account will be assigned to the dynamic\r\n group that was created first\r\n

`\r\n );\r\n }\r\n get Equal() {\r\n return getString(\"EQUAL\", \"Equal\");\r\n }\r\n get GreaterThan() {\r\n return getString(\"GREATER_THAN\", \"Greater than\");\r\n }\r\n get LessThan() {\r\n return getString(\"LESS_THAN\", \"Less than\");\r\n }\r\n get AutomaticPaymentsAreOn() {\r\n return getString(\"AUTOMATIC_PAYMENTS_ARE_ON\", \"Automatic payments are on\");\r\n }\r\n get AutomaticPaymentsAreOff() {\r\n return getString(\"AUTOMATIC_PAYMENTS_ARE_OFF\", \"Automatic payments are off\");\r\n }\r\n get WeWillPayAllOpenInvoicesOnTheirGivenPaymentDates() {\r\n return getString(\r\n \"WE_WILL_PAY_ALL_OPEN_INVOICES_ON_THEIR_GIVEN_PAYMENT_DATE\",\r\n \"We will pay all open invoices on their given payment dates.\"\r\n );\r\n }\r\n get WhenEnabledWeWillPayAllOpenInvoicesOnTheirGivenPaymentDates() {\r\n return getString(\r\n \"WHEN_ENABLED_WE_WILL_PAY_ALL_OPEN_INVOICES_ON_THEIR_GIVEN_PAYMENT_DATE\",\r\n \"When enabled, we will pay all open invoices on their given payment dates.\"\r\n );\r\n }\r\n get ManageAutomaticPayments() {\r\n return getString(\"MANAGE_AUTOMATIC_PAYMENTS\", \"Manage automatic payments\");\r\n }\r\n get WhenPaymentIsMadeHowWouldYouLikeToBeNotified() {\r\n return getString(\r\n \"WHEN_PAYMENT_IS_MADE_HOW_WOULD_YOU_LIKE_TO_BE_NOTIFIED\",\r\n \"When a payment is made, how would you like to be notified?\"\r\n );\r\n }\r\n get PortalMessage() {\r\n return getString(\"PORTAL_MESSAGE\", \"Portal message\");\r\n }\r\n get EmailDefaultAddressOnFile() {\r\n return getString(\"EMAIL_DEFAULT_ADDRESS_ON_FILE\", \"Email (default address on file)\");\r\n }\r\n get AutomaticPayments() {\r\n return getString(\"AUTOMATIC_PAYMENTS\", \"Automatic payments\");\r\n }\r\n get AutoPayConfigurationError() {\r\n return getString(\"AUTO_PAY_CONFIG_ERROR\", \"There was a problem saving your auto pay settings. Please try again.\");\r\n }\r\n get WeWillPayAllOpenInvoicesOnTheirGivenDueDateUsingThePaymentMethodSelectedAbove() {\r\n return getString(\r\n \"WE_WILL_PAY_ALL_OPNE_INVOICES_ON_THEIR_GIVEN_DUE_DATE_USING_THE_PAYMENT_METHOD_SELECTED_ABOVE\",\r\n \"We will pay all open invoices on their given due date using the payment method selected above.\"\r\n );\r\n }\r\n get CheckingForUnappliedPayments() {\r\n return getString(\"CHECKING_FOR_UNAPPLIED_PAYMENTS\", \"Checking for unapplied payments...\");\r\n }\r\n get PortalClosedInvoicesEmpty() {\r\n return getString(\"PORTAL_CLOSED_INVOICES_EMPTY\", \"Once you've closed an invoice it will show up here.\");\r\n }\r\n get PortalClosedInvoicesEmptyNew() {\r\n return getString(\r\n \"PORTAL_CLOSED_INVOICES_EMPTY_NEW\",\r\n \"You don't have any closed invoices, once an invoice is closed it will show up here.\"\r\n );\r\n }\r\n get NothingToSeeHere() {\r\n return getString(\"NOTHING_TO_SEE_HERE\", \"Nothing to see here!\");\r\n }\r\n get NiceWorkYoureAllCaughtUp() {\r\n return getString(\"NICE_WORK_YOURE_ALL_CAUGHT_UP\", \"Nice work, you're all caught up!\");\r\n }\r\n get PortalOpenInvoicesEmpty() {\r\n return getString(\"PORTAL_OPEN_INVOICES_EMPTY\", \"You have 0 open invoices.\");\r\n }\r\n\r\n get PortalOpenInvoicesEmptyNew() {\r\n return getString(\r\n \"PORTAL_OPEN_INVOICES_EMPTY_NEW\",\r\n \"You don’t have any open invoices. Once you have open invoices to pay, they will show up here. You can use the navigation bar above to see closed invoices, payments, and more.\"\r\n );\r\n }\r\n get PortalDocumentsEmpty() {\r\n return getString(\r\n \"PORTAL_DOCUMENTS_EMPTY\",\r\n \"Upload documents like your W9 so you can keep everything in one place.\"\r\n );\r\n }\r\n get ConnectionHasNoDocuments() {\r\n return getString(\r\n \"CONNECTION_HAS_NO_DOCUMENTS\",\r\n \"This connection has not uploaded any documents.\"\r\n );\r\n }\r\n get PortalPaymentsEmpty() {\r\n return getString(\"PORTAL_PAYMENTS_EMPTY\", \"Once you've made a payment it will show up here.\");\r\n }\r\n get PortalPaymentsEmptyNew() {\r\n return getString(\r\n \"PORTAL_PAYMENTS_EMPTY_NEW\",\r\n \"You haven't made any payments, once a payment is made it will show up here.\"\r\n );\r\n }\r\n get YourInboxIsEmpty() {\r\n return getString(\"YOUR_INBOX_IS_EMPTY\", \"Your inbox is empty!\");\r\n }\r\n get ThisInboxIsEmpty() {\r\n return getString(\"THIS_INBOX_IS_EMPTY\", \"This inbox is empty!\");\r\n }\r\n get Communications() {\r\n return getString(\"COMMUNICATIONS\", \"Communications\");\r\n }\r\n get TotalUnappliedPaymentAmount() {\r\n return getString(\"TOTAL_UNAPPLIED_PAYMENT_AMOUNT\", \"Total unapplied payment amount\");\r\n }\r\n HelloCompanyNameWelcomeBack(companyName) {\r\n return formatString(getString(\"HELLO_COMPANY_NAME_WELCOME_BACK\", \"Hello {companyName}, welcome back.\"), {\r\n companyName\r\n });\r\n }\r\n HelloCompanyNameIdWelcomeBack(companyName, companyId) {\r\n return formatString(\r\n getString(\"HELLO_COMPANY_NAME_ID_WELCOME_BACK\", \"Hello {companyName} ({companyId}), welcome back.\"),\r\n { companyName, companyId }\r\n );\r\n }\r\n get YourSessionHasExpired() {\r\n return getString(\"YOUR_SESSION_HAS_EXPIRED\", \"Your session has expired.\");\r\n }\r\n get PortalSessionExpired() {\r\n return getString(\r\n \"PORTAL_SESSION_EXPIRED\",\r\n \"For security purposes, we end a session after 12 hours. Please click the link in your email to start a new session.\"\r\n );\r\n }\r\n get MakePaymentFlyoutFilteredOutCreditMemo() {\r\n return getString(\r\n \"MAKE_PAYMENT_FLYOUT_FILTERED_OUT_CREDIT_MEMO\",\r\n \"We noticed you selected a credit memo for this payment. Payments on credit memos cannot be made, so that selection is not shown here.\"\r\n );\r\n }\r\n get NA() {\r\n return getString(\"NA\", \"N/A\");\r\n }\r\n get PreviewAccounts() {\r\n return getString(\"PREVIEW_ACCOUNTS\", \"Preview accounts\");\r\n }\r\n get DynamicGroupsExplanation() {\r\n return getString(\r\n \"DYNAMIC_GROUPS_EXPLANATION\",\r\n \"Dynamic groups are updated daily to include accounts that meet the below filter criteria.\"\r\n );\r\n }\r\n get StaticGroupsExplanation() {\r\n return getString(\r\n \"STATIC_GROUPS_EXPLANATION\",\r\n \"Static groups are set based on the acccounts you select from the table below.\"\r\n );\r\n }\r\n get CreateANewAccountGroup() {\r\n return getString(\"CREATE_A_NEW_ACCOUNT_GROUP\", \"Create a new account group\");\r\n }\r\n get AccountGroups() {\r\n return getString(\"ACCOUNT_GROUPS\", \"Account Groups\");\r\n }\r\n get AccountGroupPreview() {\r\n return getString(\"ACCOUNT_GROUP_PREVIEW\", \"Account Group Preview\");\r\n }\r\n get PreviewGroup() {\r\n return getString(\"PREVIEW_GROUP\", \"Preview group\");\r\n }\r\n get SaveGroup() {\r\n return getString(\"SAVE_GROUP\", \"Save group\");\r\n }\r\n get DeleteGroup() {\r\n return getString(\"DELETE_GROUP\", \"Delete group\");\r\n }\r\n get AccountGroupPreviewEmpty() {\r\n return getString(\"ACCOUNT_GROUP_PREVIEW_EMPTY\", \"We can't find any accounts that match your filter criteria.\");\r\n }\r\n get OopsThereIsAnIssueAccessingYourAccount() {\r\n return getString(\r\n \"OOPS_THERE_IS_AN_ISSUE_ACCESSING_YOUR_ACCOUNT\",\r\n \"Oops! There's an issue with accessing your account.\"\r\n );\r\n }\r\n get OopsYourAccountHasMissingData() {\r\n return getString(\r\n \"OOPS_YOUR_ACCOUNT_HAS_MISSING_DATA\",\r\n \"Oops! It looks like you are using an invalid account.\"\r\n );\r\n }\r\n get LogInAsADifferentUser() {\r\n return getString(\r\n \"LOG_IN_AS_A_DIFFERENT_USER\",\r\n \"The account you are trying to access is missing important data. Please go back and try another account or contact our support team at support@lockstep.io.\"\r\n );\r\n }\r\n get PleaseContactSupportToReportThisError() {\r\n return getString(\r\n \"PLEASE_CONTACT_SUPPORT_TO_REPORT_THIS_ERROR\",\r\n \"Please contact support@lockstep.io to report this error and get it fixed.\"\r\n );\r\n }\r\n GetLanguageFailure(languageCode) {\r\n return formatString(\r\n getString(\r\n \"GET_LANGUAGE_FAILURE\",\r\n \"Oops! There was an issue getting language {languageCode}. Please refresh the page. If this issue persist, please contact us at support@lockstep.io.\"\r\n ),\r\n { languageCode }\r\n );\r\n }\r\n get GetLanguagesFailure() {\r\n return getString(\r\n \"GET_LANGUAGES_FAILURE\",\r\n \"Oops! There was an issue getting all languages. Please refresh the page. If this issue persist, please contact us at support@lockstep.io.\"\r\n );\r\n }\r\n\r\n get GetDisputeCodeFailure() {\r\n return getString(\r\n \"GET_DISPUTECODE_FAILURE\",\r\n \"Oops! There was an issue getting all disputecodes. Please refresh the page. If this issue persist, please contact us at support@lockstep.io.\"\r\n );\r\n }\r\n\r\n get Language() {\r\n return getString(\"LANGUAGE\", \"Language\");\r\n }\r\n get InternalContacts() {\r\n return getString(\"INTERNAL_CONTACTS\", \"Internal Contacts\");\r\n }\r\n get ExternalContacts() {\r\n return getString(\"EXTERNAL_CONTACTS\", \"External Contacts\");\r\n }\r\n get ContactSettings() {\r\n return getString(\"CONTACT_SETTINGS\", \"Contact Settings\");\r\n }\r\n get AccountSettings() {\r\n return getString(\"ACCOUNT_SETTINGS\", \"Account Settings\");\r\n }\r\n get OpenOnboardingRequests() {\r\n return getString(\"OPEN_ONBOARDING_REQUESTS\", \"Open onboarding requests\");\r\n }\r\n get OpenProfileUpdateRequests() {\r\n return getString(\"OPEN_PROFILE_UPDATE_REQUESTS\", \"Open profile update requests\");\r\n }\r\n get NetworkActivity() {\r\n return getString(\"NETWORK_ACTIVITY\", \"Network Activity\");\r\n }\r\n get TotalNumberOfAccounts() {\r\n return getString(\"TOTAL_NUMBER_OF_ACCOUNTS\", \"Total number of accounts\");\r\n }\r\n get LockstepMemberAccounts() {\r\n return getString(\"LOCKSTEP_MEMBER_ACCOUNTS\", \"Lockstep member accounts\");\r\n }\r\n get LockstepVerifiedAccounts() {\r\n return getString(\"LOCKSTEP_VERIFIED_ACCOUNTS\", \"Lockstep verified accounts\");\r\n }\r\n get UnverifiedAccounts() {\r\n return getString(\"UNVERIFIED_ACCOUNTS\", \"Unverified accounts\");\r\n }\r\n get LastUpdated() {\r\n return getString(\"LAST_UPDATED\", \"Last updated\");\r\n }\r\n LastUpdatedDate(date) {\r\n return formatString(getString(\"LAST_UPDATED_DATE\", \"Last updated {date}\"), { date });\r\n }\r\n get TotalNumberOfContacts() {\r\n return getString(\"TOTAL_NUMBER_OF_CONTACTS\", \"Total number of contacts\");\r\n }\r\n get LockstepMemberContacts() {\r\n return getString(\"LOCKSTEP_MEMBER_CONTACTS\", \"Lockstep member contacts\");\r\n }\r\n get LockstepVerifiedContacts() {\r\n return getString(\"LOCKSTEP_VERIFIED_CONTACTS\", \"Lockstep verified contacts\");\r\n }\r\n get UnverifiedContacts() {\r\n return getString(\"UNVERIFIED_CONTACTS\", \"Unverified contacts\");\r\n }\r\n get MyNetwork() {\r\n return getString(\"MY_NETWORK\", \"My network\");\r\n }\r\n get Open() {\r\n return getString(\"OPEN\", \"Open\");\r\n }\r\n get AttachPromiseToPayInvoices() {\r\n return getString(\"ATTACH_PROMISE_TO_PAY_INVOICES\", \"Attach promise to pay invoices\");\r\n }\r\n get AttachDisputedInvoices() {\r\n return getString(\"ATTACH_DISPUTED_INVOICES\", \"Attach disputed invoices\");\r\n }\r\n get OpenRequests() {\r\n return getString(\"OPEN_REQUESTS\", \"Open requests\");\r\n }\r\n get Onboarding() {\r\n return getString(\"ONBOARDING\", \"Onboarding\");\r\n }\r\n get InitialRequest() {\r\n return getString(\"INITIAL_REQUEST\", \"Initial request\");\r\n }\r\n get LatestReminder() {\r\n return getString(\"LATEST_REMINDER\", \"Latest reminder\");\r\n }\r\n get NextReminder() {\r\n return getString(\"NEXT_REMINDER\", \"Next reminder\");\r\n }\r\n get AccountProfiles() {\r\n return getString(\"ACCOUNT_PROFILES\", \"Account profiles\");\r\n }\r\n get SeeAll() {\r\n return getString(\"SEE_ALL\", \"See all\");\r\n }\r\n SearchResultsNum(numSearchResults) {\r\n return formatString(getString(\"SEARCH_RESULTS_NUM\", \"Search results ({numSearchResults})\"), { numSearchResults });\r\n }\r\n get RequestProfileUpdate() {\r\n return getString(\"REQUEST_PROFILE_UPDATE\", \"Request profile update\");\r\n }\r\n get NoProfileSearchResultsMessage() {\r\n return getString(\r\n \"NO_PROFILE_SEARCH_RESULTS_MESSAGE\",\r\n \"Oops! We can't find what you're looking for. You can search for any profile name.\"\r\n );\r\n }\r\n get SendingProfileUpdateRequest() {\r\n return getString(\"SENDING_PROFILE_UPDATE_REQUEST\", \"Sending profile update request\");\r\n }\r\n get ProfileUpdateRequestSent() {\r\n return getString(\"PROFILE_UPDATE_REQUEST_SENT\", \"Profile update request sent\");\r\n }\r\n get FailedToSendProfileUpdateRequest() {\r\n return getString(\"FAILED_TO_SEND_PROFILE_UPDATE_REQUEST\", \"Failed to send profile update request\");\r\n }\r\n UpdatedDate(date) {\r\n return formatString(getString(\"UPDATED_DATE\", \"Updated {date}\"), { date });\r\n }\r\n get LoadingDisputeCodes() {\r\n return getString(\"LOADING_DISPUTECODES\", \"Loading Dispute Codes...\");\r\n }\r\n get SeeMore() {\r\n return getString(\"SEE_MORE\", \"See more\");\r\n }\r\n get ProfileUpdateThanks() {\r\n return getString(\r\n \"PROFILE_UPDATE_THANKS\",\r\n \"Thanks for taking a few minutes to confirm your profile information with us! How does everything look?\"\r\n );\r\n }\r\n ProfileUpdateContacts(companyName) {\r\n return formatString(\r\n getString(\"PROFILE_UPDATE_CONTACTS\", \"Great, do all of these contacts still work for {companyName}?\"),\r\n {\r\n companyName\r\n }\r\n );\r\n }\r\n get ProfileUpdateDocuments() {\r\n return getString(\"PROFILE_UPDATE_DOCUMENTS\", \"Last question, are the documents we have on file up-to-date?\");\r\n }\r\n get ProfileUpdateSuccess() {\r\n return getString(\"PROFILE_UPDATE_SUCESS\", \"Nice work, thanks for confirming your information!\");\r\n }\r\n get GetAccountListFailure() {\r\n return getString(\r\n \"GET_ACCOUNTLIST_FAILURE\",\r\n \"Oops! There was an issue getting the account list. Please refresh the page. If this issue persist, please contact us at support@lockstep.io.\"\r\n );\r\n }\r\n get GetContactListFailure() {\r\n return getString(\r\n \"GET_CONTACTLIST_FAILURE\",\r\n \"Oops! There was an issue getting the contact list. Please refresh the page. If this issue persist, please contact us at support@lockstep.io.\"\r\n );\r\n }\r\n get PrefilledInfo() {\r\n return getString(\r\n \"PREFILLED_INFO\",\r\n \"We've prefilled the information we have on file, edit and save anything that is out of date.\"\r\n );\r\n }\r\n get DocumentType() {\r\n return getString(\"DOCUMENT_TYPE\", \"Document Type\");\r\n }\r\n get File() {\r\n return getString(\"FILE\", \"Files\");\r\n }\r\n get LockstepSucess() {\r\n return getString(\"LOCKSTEP_SUCESS\", \"Nice work, thanks for confirming your information!\");\r\n }\r\n get ein() {\r\n return getString(\"EIN\", \"EIN\");\r\n }\r\n get EntityClassification() {\r\n return getString(\"ENTITY_CLASSIFICATION\", \"Entity classification\");\r\n }\r\n get Logo() {\r\n return getString(\"LOGO\", \"Company Logo\");\r\n }\r\n get BillToStreet() {\r\n return getString(\"BILL_STREET\", \"Bill-to street address\");\r\n }\r\n get SameAsBilling() {\r\n return getString(\"SAME_AS_BILLING\", \"Same as billing address\");\r\n }\r\n get ShipToStreet() {\r\n return getString(\"SHIP_STREET\", \"Ship-to street address\");\r\n }\r\n get AddContactsMessage() {\r\n return getString(\r\n \"ADD_CONTACTS\",\r\n \"Next, can you please verify who the primary and secondary contacts are on your team? Feel free to add additional important contacts if you’d like.\"\r\n );\r\n }\r\n get SecondaryContact() {\r\n return getString(\"SECONDARY_CONTACT\", \"Secondary contact\");\r\n }\r\n get DocumentUploadForm() {\r\n return getString(\r\n \"DOCUMENT_UPLOAD_MESSAGE\",\r\n \"Last step! We’d like to be sure we have your most up to date documents on file. Please upload the documents listed below, you may upload multiple files per document type.\"\r\n );\r\n }\r\n ProfileUpdateRequestFlyoutPreview(amountProfiles) {\r\n return formatString(\r\n getString(\r\n \"PROFILE_UPDATE_REQUEST_FLYOUT_PREVIEW\",\r\n \"Here is a preview of the request that will go out to the {amountProfiles} profiles you’ve selected. If you are an admin user, you can change the button color and logo in the profile and settings section.\"\r\n ),\r\n {\r\n amountProfiles\r\n }\r\n );\r\n }\r\n get SendRequests() {\r\n return getString(\"SEND_REQUESTS\", \"Send Requests\");\r\n }\r\n get UseSSL() {\r\n return getString(\"UseSSL\", \"Use SSL\");\r\n }\r\n get StartTLS() {\r\n return getString(\"StartTLS\", \"Start TLS\");\r\n }\r\n get AboutSendRequets() {\r\n return getString(\r\n \"ABOUT_SEND\",\r\n \"Woohoo! You’re about to send your first batch of profile update requests. Soon you’ll have a complete set of community sourced master data that is as accurate as possible.\"\r\n );\r\n }\r\n get JustStartingOutMessage() {\r\n return getString(\r\n \"JUST_STARTING_OUT\",\r\n \"Since you are just starting out with Lockstep we recommend you send a profile update request to all of the email addresses we have on file. Once you select the profiles you’d like updates from, we will show you a preview of the email they will recieve.\"\r\n );\r\n }\r\n ProfileUpdateToAll(amountProfiles) {\r\n return formatString(\r\n getString(\r\n \"PROFILE_UPDATE_TO_ALL\",\r\n \"We will send a profile update request to the {amountProfiles} profiles we have on file.\"\r\n ),\r\n {\r\n amountProfiles\r\n }\r\n );\r\n }\r\n ProfileUpdateHeader(name) {\r\n return formatString(getString(\"PROFILE_UPDATE_HEADER\", \"Hello {name}, welcome!\"), {\r\n name\r\n });\r\n }\r\n get ProfileUpdateToSome() {\r\n return getString(\r\n \"PROFILE_UPDATE_TO_SOME\",\r\n \"We will send a profile update request to the profiles you select from the table below.\"\r\n );\r\n }\r\n get homeViewEmptyMessage() {\r\n return getString(\r\n \"HOME_VIEW_EMPTY_MESSAGE\",\r\n \"You’ll see your network activity here when profile updates are made. We recommend sending all of your customers a profile update request to get started.\"\r\n );\r\n }\r\n AccountProfilesNum(num) {\r\n return formatString(getString(\"ACCOUNT_PROFILES_NUM\", \"Account profiles ({num})\"), {\r\n num\r\n });\r\n }\r\n ContactProfilesNum(num) {\r\n return formatString(getString(\"CONTACT_PROFILES_NUM\", \"Contact profiles ({num})\"), {\r\n num\r\n });\r\n }\r\n LastGeneratedDate(date) {\r\n return formatString(getString(\"LAST_GENERATED_DATE\", \"Last generated {date}\"), {\r\n date\r\n });\r\n }\r\n get NewActivity() {\r\n return getString(\"NEW_ACTIVITY\", \"New activity\");\r\n }\r\n\r\n get AdditionalContacts() {\r\n return getString(\"ADDITIONAL_CONTACTS\", \"Additional contacts\");\r\n }\r\n\r\n TransactionsAppliedToInvoice(invoice) {\r\n return formatString(getString(\"TRANSACTIONS_APPLIED_TO_INVOICE\", \"Transactions applied to invoice #{invoice}\"), {\r\n invoice\r\n });\r\n }\r\n\r\n InvoicesAppliedToPayment(payment) {\r\n return formatString(getString(\"INVOICES_APPLIED_TO_PAYMENT\", \"Invoices applied to payment {payment}\"), {\r\n payment\r\n });\r\n }\r\n get GetCurrenciesFailure() {\r\n return getString(\r\n \"GET_CURRENCIES_FAILURE\",\r\n \"Oops! There was an issue getting currencies. Please refresh the page. If this issue persist, please contact us at support@lockstep.io.\"\r\n );\r\n }\r\n\r\n ProfileUpdateWelcomeFromATC(name) {\r\n return formatString(\r\n getString(\r\n \"PROFILE_UPDATE_ATC_WECLOME\",\r\n \"Hi {name} welcome to Lockstep! Lockstep is your one-stop shop for everything contact and document managment related.\"\r\n ),\r\n {\r\n name\r\n }\r\n );\r\n }\r\n get WeAreExcitedToHaveYou() {\r\n return getString(\"WE_ARE_EXCITED\", \"We are excited to have your as a member of our network, ready to get going?\");\r\n }\r\n get RequestProfileUpdates() {\r\n return getString(\"REQUEST_PROFILE_UPDATES\", \"Request profile updates\");\r\n }\r\n get YesLetsDoIt() {\r\n return getString(\"YES_EXCITED\", \"Yes, let's do it!\");\r\n }\r\n get ARDepartmentStreet() {\r\n return getString(\"AR_DEPARTMENT_STREET\", \"AR department street address\");\r\n }\r\n get PrimaryButtonColor() {\r\n return getString(\"PRIMARY_BUTTON_COLOR\", \"Primary button color\");\r\n }\r\n get INeedToUpdateContacts() {\r\n return getString(\"I_NEED_TO_UPDATE_CONTACTS\", \"I need to update these contacts\");\r\n }\r\n DoAllTheseContactsStillWorkFor(companyName) {\r\n return formatString(\r\n getString(\r\n \"DO_ALL_THESE_COMPANIES_STILL_WORK_FOR\",\r\n \"Great, do all of these contacts still work for {companyName}?\"\r\n ),\r\n {\r\n companyName\r\n }\r\n );\r\n }\r\n get ShareProfile() {\r\n return getString(\"SHARE_PROFILE\", \"Share profile\");\r\n }\r\n get EditProfile() {\r\n return getString(\"EDIT_PROFILE\", \"Edit profile\");\r\n }\r\n get NoDocumentsHaveBeenAddedYet() {\r\n return getString(\"NO_DOCUMENTS_HAVE_BEEN_ADDED_YET\", \"No documents have been added yet.\");\r\n }\r\n get NoContactsHaveBeenAddedYet() {\r\n return getString(\"NO_CONTACTS_HAVE_BEEN_ADDED_YET\", \"No contacts have been added yet.\");\r\n }\r\n get RequestProfileUpdateToHaveAccountAddDocumentsToProfile() {\r\n return getString(\r\n \"REQUEST_PROFILE_UPDATE_TO_HAVE_ACCOUNT_ADD_DOCUMENTS_TO_PROFILE\",\r\n \"Request a profile update to have this account add documents to their profile.\"\r\n );\r\n }\r\n get RequestProfileUpdateToHaveAccountAddContactsToProfile() {\r\n return getString(\r\n \"REQUEST_PROFILE_UPDATE_TO_HAVE_ACCOUNT_ADD_CONTACTS_TO_PROFILE\",\r\n \"Request a profile update to have this account add contacts to their profile.\"\r\n );\r\n }\r\n get Finance() {\r\n return getString(\"FINANCE\", \"Finance\");\r\n }\r\n SentContactUpdateRequests(name, count) {\r\n return formatString(\r\n getString(\"NAME_SENT_COUNT_CONTACT_UPDATE_REQUESTS\", \"{name} sent {count} contact update requests.\"),\r\n {\r\n name,\r\n count\r\n }\r\n );\r\n }\r\n SentContactUpdateRequest(name) {\r\n return formatString(getString(\"NAME_SENT_CONTACT_UPDATE_REQUEST\", \"{name} sent a contact update request.\"), {\r\n name\r\n });\r\n }\r\n SentProfileUpdateRequests(name, count) {\r\n return formatString(\r\n getString(\"NAME_SENT_COUNT_PROFILE_UPDATE_REQUESTS\", \"{name} sent {count} profile update requests.\"),\r\n {\r\n name,\r\n count\r\n }\r\n );\r\n }\r\n SentProfileUpdateRequest(name) {\r\n return formatString(getString(\"NAME_SENT_PROFILE_UPDATE_REQUEST\", \"{name} sent a profile update request.\"), {\r\n name\r\n });\r\n }\r\n UpdatedContactInfo(name) {\r\n return formatString(getString(\"NAME_UPDATED_CONTACT_INFO\", \"{name} updated their contact information.\"), {\r\n name\r\n });\r\n }\r\n UpdatedProfileInfo(name) {\r\n return formatString(getString(\"NAME_UPDATED_PROFILE_INFO\", \"{name} updated their profile information.\"), {\r\n name\r\n });\r\n }\r\n get InvalidActivityType() {\r\n return getString(\"INVALID_ACTIVITY_TYPE\", \"Invalid activity type\");\r\n }\r\n get InvalidPhoneNumber() {\r\n return getString(\"INVALID_PHONE_NUMBER\", \"Invalid phone number\");\r\n }\r\n get InvalidFaxNumber() {\r\n return getString(\"INVALID_FAX_NUMBER\", \"Invalid fax number\");\r\n }\r\n get InvalidEIN() {\r\n return getString(\"INVALID_EIN\", \"Invalid EIN\");\r\n }\r\n get InvalidDomain() {\r\n return getString(\"INVALID_DOMAIN\", \"Invalid domain\");\r\n }\r\n get InvalidZipCode() {\r\n return getString(\"INVALID_ZIP_CODE\", \"Invalid zip code\");\r\n }\r\n get PleaseEnsureCompanyNameAndEmailAddrFilledOut() {\r\n return getString(\r\n \"PLEAE_ENSURE_COMPANY_NAME_AND_EMAIL_FILLED_OUT\",\r\n \"Please ensure that the Company Name and AR Department E-mail fields are filled out.\"\r\n );\r\n }\r\n get PleaseEnsureNameEmailAndRoleFilledOut() {\r\n return getString(\r\n \"PLEASE_ENSURE_NAME_EMAIL_AND_ROLE_FILLED_OUT\",\r\n \"Please ensure that the Contact Name and Email fields are both filled out for all contacts you wish to add.\"\r\n );\r\n }\r\n get YouHaveInvalidDataPleaseEnsureAllFieldsValid() {\r\n return getString(\r\n \"YOU_HAVE_INVALID_DATA_PLEASE_ENSURE_ALL_FIELDS_VALID\",\r\n \"You have invalid data, please ensure all fields are valid before submitting.\"\r\n );\r\n }\r\n PleaseEnsureFormsFilledOut(form) {\r\n return formatString(\r\n getString(\"PLEAE_ENSURE_NAME_AND_EMAIL_FILLED_OUT\", \"Please ensure that the {form} fields are filled out\"),\r\n {\r\n form: form\r\n }\r\n );\r\n }\r\n PleaseEnsureFormFilledOut(form) {\r\n return formatString(\r\n getString(\"PLEAE_ENSURE_NAME_AND_EMAIL_FILLED_OUT\", \"Please ensure that the {form} field is filled out\"),\r\n {\r\n form: form\r\n }\r\n );\r\n }\r\n get ViewProfile() {\r\n return getString(\"VIEW_PROFILE\", \"View profile\");\r\n }\r\n get ViewOpenRequests() {\r\n return getString(\"VIEW_OPEN_REQUESTS\", \"View open requests\");\r\n }\r\n get UpdatedYourContactInfo() {\r\n return getString(\"YOU_UPDATED_YOUR_CONTACT_INFO\", \"You updated your contact information.\");\r\n }\r\n get GettingLink() {\r\n return getString(\"GETTING_LINK\", \"Getting link\");\r\n }\r\n get LinkCopied() {\r\n return getString(\"LINK_COPIED\", \"Link copied\");\r\n }\r\n get FailedCopyLink() {\r\n return getString(\"FAILED_COPY_LINK\", \"Failed to copy link\");\r\n }\r\n get SendInMessage() {\r\n return getString(\"SEND_IN_MESSAGEE\", \"Send in message\");\r\n }\r\n get CopyLink() {\r\n return getString(\"COPY_LINK\", \"Copy link\");\r\n }\r\n get UploadingDocument() {\r\n return getString(\"UPLOADING_DOCUMENT\", \"Uploading document\");\r\n }\r\n get UploadedDocument() {\r\n return getString(\"UPLOADED_DOCUMENT\", \"Uploaded document\");\r\n }\r\n get UploadDocumentFailed() {\r\n return getString(\"UPLOAD_FAILED_DOCUMENT\", \"Uploading document failed\");\r\n }\r\n get UploadingImage() {\r\n return getString(\"UPLOADING_IMAGE\", \"Uploading image\");\r\n }\r\n get UploadedImage() {\r\n return getString(\"UPLOADED_IMAGE\", \"Uploaded image\");\r\n }\r\n get UploadingImageFailed() {\r\n return getString(\"UPLOAD_FAILED_IMAGE\", \"Uploading image failed\");\r\n }\r\n get FailedGetCustContact() {\r\n return getString(\"FAILED_GET_CUST_CONTACT\", \"Failed to get customer contact\");\r\n }\r\n get FailedPostCustContact() {\r\n return getString(\"FAILED_POST_CUST_CONTACT\", \"Failed to post customer contact\");\r\n }\r\n get FailedGetCustAccount() {\r\n return getString(\"FAILED_GET_CUST_ACCOUNT\", \"Failed to get account information\");\r\n }\r\n get FailedPostCustAccount() {\r\n return getString(\"FAILED_POST_CUST_ACCOUNT\", \"Failed to post account information\");\r\n }\r\n get FailedGetCustAccountDocuments() {\r\n return getString(\"FAILED_GET_ACCOUNT_DOCUMENTS\", \"Getting account documents failed\");\r\n }\r\n get FailedGetCustAccountContacts() {\r\n return getString(\"FAILED_GET_CUST_ACCOUNT_CONTACTS\", \"Getting account contacts failed\");\r\n }\r\n get FailedGetNotes() {\r\n return getString(\"FAILED_GET_NOTES\", \"Failed to get notes\");\r\n }\r\n get FailedPostNotes() {\r\n return getString(\"FAILED_POST_NOTES\", \"Failed to post notes\");\r\n }\r\n get FailedDeleteNote() {\r\n return getString(\"FAILED_DELETE_NOTE\", \"Failed delete note\");\r\n }\r\n get FailedGetShareFlyout() {\r\n return getString(\"FAILED_GET_SHARE_FLYOUT\", \"Failed to get share information\");\r\n }\r\n get FailedSendMessage() {\r\n return getString(\"FAILED_SEND_MESSAGE\", \"Failed to send message\");\r\n }\r\n get FailedGetShareLink() {\r\n return getString(\"FAILED_GET_SHARE_LINK\", \"Failed to get shareable link\");\r\n }\r\n get FailedGetSubsidiaryList() {\r\n return getString(\"FAILED_GET_SUBSIDIARY_LIST\", \"Failed to get the list of subsidiaries\");\r\n }\r\n IfYourVARIABLEIsDifferentContactUsAtEMAIL(variable, email) {\r\n return formatString(\r\n getString(\r\n \"IF_YOUR_VARIABLE_IS_DIFFERENT_CONTACT_US_AT_EMAIL\",\r\n \"If your {variable} is different from what's listed here please contact us\"\r\n ),\r\n {\r\n variable: variable,\r\n email: email\r\n }\r\n );\r\n }\r\n FieldMustBeLessThanN(n) {\r\n return formatString(getString(\"FIELD_MUST_BE_LESS_THAN_N\", \"The field must be {n} characters or less\"), {\r\n n: n\r\n });\r\n }\r\n get BillTo() {\r\n return getString(\"BILL_TO\", \"Bill-to\");\r\n }\r\n get ShipTo() {\r\n return getString(\"SHIP_TO\", \"Ship-to\");\r\n }\r\n get NothingToSeeHereNotes() {\r\n return getString(\r\n \"NOTHING_TO_SEE_HERE_NOTES\",\r\n \"Nothing to see here yet! Add a note about this profile for you and your team to see.\"\r\n );\r\n }\r\n get FormFields() {\r\n return getString(\"FORM_FIELDS\", \"Form fields\");\r\n }\r\n FormFieldsDescription(sequenceType) {\r\n return formatString(\r\n getString(\r\n \"THESE_ARE_THE_FIELDS_THAT_YOUR_CUSTOMER_WILL_BE_ASKED_TO_FILL_OUT_FOR_SEQUENCETYPE\",\r\n \"These are the fields that your customer will be asked to fill out in the {sequenceType} request\"\r\n ),\r\n {\r\n sequenceType: sequenceType\r\n }\r\n );\r\n }\r\n\r\n get FieldName() {\r\n return getString(\"FIELD_NAME\", \"Field Name\");\r\n }\r\n\r\n get Required() {\r\n return getString(\"REQUIRED\", \"required\");\r\n }\r\n\r\n get FreeformText() {\r\n return getString(\"FREEFORM_TEST\", \"Freeform text\");\r\n }\r\n\r\n get DropdownSelection() {\r\n return getString(\"DROPDOWN_SELECTION\", \"Dropdown selection\");\r\n }\r\n\r\n get FileUpload() {\r\n return getString(\"FILE_UPLOAD\", \"File upload\");\r\n }\r\n\r\n get CompanyLogo() {\r\n return getString(\"COMPANY_LOGO\", \"Company logo\");\r\n }\r\n\r\n get PrimaryContactName() {\r\n return getString(\"PRIMARY_CONTACT_NAME\", \"Primary contact name\");\r\n }\r\n get PrimaryContactRole() {\r\n return getString(\"PRIMARY_CONTACT_ROLE\", \"Primary contact role\");\r\n }\r\n get PrimaryContactEmail() {\r\n return getString(\"PRIMARY_CONTACT_EMAIL\", \"Primary contact email\");\r\n }\r\n get PrimaryContactPhone() {\r\n return getString(\"PRIMARY_CONTACT_PHONE\", \"Primary contact phone\");\r\n }\r\n get SecondaryContactName() {\r\n return getString(\"SECONDARY_CONTACT_NAME\", \"Secondary contact name\");\r\n }\r\n get SecondaryContactRole() {\r\n return getString(\"SECONDARY_CONTACT_ROLE\", \"Secondary contact role\");\r\n }\r\n get SecondaryContactEmail() {\r\n return getString(\"SECONDARY_CONTACT_EMAIL\", \"Secondary contact email\");\r\n }\r\n get SecondaryContactPhone() {\r\n return getString(\"SECONDARY_CONTACT_PHONE\", \"Secondary contact phone\");\r\n }\r\n get CreditApplication() {\r\n return getString(\"CREDIT_APPLICATION\", \"Credit application\");\r\n }\r\n get ProofOfInsurance() {\r\n return getString(\"PROOF_OF_INSURANCE\", \"Proof of insurance\");\r\n }\r\n get TaxExemptionCertificate() {\r\n return getString(\"TAX_EXEMPTION_CERTIFICATE\", \"Tax exemption certificate\");\r\n }\r\n get BillToAddress() {\r\n return getString(\"BILL_TO_ADDRESS\", \"Bill to address\");\r\n }\r\n get ShipToAddress() {\r\n return getString(\"SHIP_TO_ADDRESS\", \"Ship to address\");\r\n }\r\n get AllAccountsAndContacts() {\r\n return getString(\"ALL_ACCOUNTS_AND_CONTACTS\", \"All accounts and contacts\");\r\n }\r\n get SignaturesExplanation() {\r\n return getString(\r\n \"SIGNATURES_EXPLANATION\",\r\n \"Your personal user signature will automatically be added to the bottom of every activity you make inside Lockstep and ATC.\"\r\n );\r\n }\r\n get ProfileName() {\r\n return getString(\"PROFILE_NAME\", \"Profile name\");\r\n }\r\n get Contains() {\r\n return getString(\"CONTAINS\", \"Contains\");\r\n }\r\n get LockstepVerified() {\r\n return getString(\"LOCKSTEP_VERIFIED\", \"Lockstep verified\");\r\n }\r\n get ClearAll() {\r\n return getString(\"CLEAR_ALL\", \"Clear all\");\r\n }\r\n get JustNow() {\r\n return getString(\"JUST_NOW\", \"just now\");\r\n }\r\n get MarkAsPrivate() {\r\n return getString(\"MARK_AS_PRIVATE\", \"Mark as private\");\r\n }\r\n get MarkAsPublic() {\r\n return getString(\"MARK_AS_PUBLIC\", \"Mark as public\");\r\n }\r\n get Private() {\r\n return getString(\"PRIVATE\", \"Private\");\r\n }\r\n get LockstepVerifiedInformation() {\r\n return getString(\r\n \"LOCKSTEP_VERIFIED_INFORMATION\",\r\n \"Lockstep verified profiles have been validated by the person that owns the profile. This means the information in these profiles is current and up to date.\"\r\n );\r\n }\r\n get INeedToUpdateThisProfile() {\r\n return getString(\"I_NEED_TO_UPDATE_THIS_PROFILE\", \"I need to update this profile\");\r\n }\r\n get LooksGood() {\r\n return getString(\"LOOKS_GOOD_!\", \"Looks good!\");\r\n }\r\n get INeedToUpdateTheseDocuments() {\r\n return getString(\"I_NEED_TO_UPDATE_THESE_DOCUMENTS\", \"I need to update these documents\");\r\n }\r\n get LastQuestionDocumentsOnFileUpToDate() {\r\n return getString(\r\n \"LAST_QUESTION_DOCUMENTS_ON_FILE_UP_TO_DATE\",\r\n \"Last question, are the documents on file up to date?\"\r\n );\r\n }\r\n get YesTheyDo() {\r\n return getString(\"YES_THEY_DO\", \"Yes they do!\");\r\n }\r\n get YesTheyAre() {\r\n return getString(\"YES_THEY_ARE\", \"Yes they are!\");\r\n }\r\n IncorporatedInStateDate(state, date) {\r\n return formatString(getString(\"INCORPORATED_IN_STATE_DATE\", \"Incorporated in {state}, {date}\"), {\r\n state: state,\r\n date: date\r\n });\r\n }\r\n IncorporatedInState(state) {\r\n return formatString(getString(\"INCORPORATED_IN_STATE\", \"Incorporated in {state}\"), {\r\n state: state\r\n });\r\n }\r\n IncorporatedDate(date) {\r\n return formatString(getString(\"INCORPORATED_DATE\", \"Incorporated {date}\"), {\r\n date: date\r\n });\r\n }\r\n get Snooze() {\r\n return getString(\"SNOOZE\", \"Snooze\");\r\n }\r\n get AssigningConversations() {\r\n return getString(\"ASSIGNING_CONVERSATIONS\", \"Assigning conversations\");\r\n }\r\n get AssignedConversations() {\r\n return getString(\"ASSIGNED_CONVERSATIONS\", \"Assigned conversations\");\r\n }\r\n get FailedToAssignConversations() {\r\n return getString(\"FAILED_TO_ASSIGN_CONVERSATIONS\", \"Failed to assign conversations\");\r\n }\r\n AssignedToName(name) {\r\n return formatString(getString(\"ASSIGNED_TO_NAME\", \"Assigned to {name}\"), {\r\n name: name\r\n });\r\n }\r\n get MarkingConversationsRead() {\r\n return getString(\"MARKING_CONVERSATION_READ\", \"Marking conversations read\");\r\n }\r\n get MarkedConversationsRead() {\r\n return getString(\"MARKED_CONVERSATION_READ\", \"Marked conversations read\");\r\n }\r\n get FailedToMarkConversationsRead() {\r\n return getString(\"FAILED_TO_MARK_CONVERSATION_READ\", \"Failed to mark conversations read\");\r\n }\r\n get MarkingConversationsUnread() {\r\n return getString(\"MARKING_CONVERSATION_UNREAD\", \"Marking conversations unread\");\r\n }\r\n get MarkedConversationsUnread() {\r\n return getString(\"MARKED_CONVERSATION_UNREAD\", \"Marked conversations unread\");\r\n }\r\n get FailedToMarkConversationsUnread() {\r\n return getString(\"FAILED_TO_MARK_CONVERSATION_UNREAD\", \"Failed to mark conversations unread\");\r\n }\r\n get ClosingConversations() {\r\n return getString(\"CLOSING_CONVERSATIONS\", \"Closing conversations\");\r\n }\r\n get ClosedConversations() {\r\n return getString(\"CLOSED_CONVERSATIONS\", \"Closed conversations\");\r\n }\r\n get FailedToCloseConversations() {\r\n return getString(\"FAILED_TO_CLOSE_CONVERSATIONS\", \"Failed to close conversations\");\r\n }\r\n get ActivatingConversaions() {\r\n return getString(\"ACTIVATING_CONVERSATIONS\", \"Activating conversations\");\r\n }\r\n get ActivatedConversations() {\r\n return getString(\"ACTIVATED_CONVERSATIONS\", \"Activated conversations\");\r\n }\r\n get FailedToActivateConversations() {\r\n return getString(\"FAILED_TO_ACTIVATE_CONVERSATIONS\", \"Failed to activate conversations\");\r\n }\r\n get MarkingConversationAsSpam() {\r\n return getString(\"MARKING_CONVERSATION_AS_SPAM\", \"Marking conversation as spam\");\r\n }\r\n get MarkedConversationAsSpam() {\r\n return getString(\"MARKED_CONVERSATION_AS_SPAM\", \"Marked conversation as spam\");\r\n }\r\n get FailedToMarkConversationAsSpam() {\r\n return getString(\"FAILED_TO_MARK_CONVERSATION_AS_SPAM\", \"Failed to mark conversation as spam\");\r\n }\r\n get SomeAddressesAreInvalid() {\r\n return getString(\r\n \"SOME_ADDRESSES_ARE_INVALID\",\r\n \"Some of email addreses are invalid. Please review addresses highlighted with red.\"\r\n );\r\n }\r\n\r\n get CompanyLinkedIn() {\r\n return getString(\"COMPANY_LINKED_IN\", \"Company LinkedIn URL\");\r\n }\r\n get SequenceContactPrivateMessage() {\r\n return getString(\r\n \"SEQUENCE_CONTACT_PRIVATE_MESSAGE\",\r\n \"All contacts (excluding private contacts) associated with an account profile are included in the account profile update request.\"\r\n );\r\n }\r\n get MissingEmailAddress() {\r\n return getString(\"MISSING_EMAIL_ADDRESS\", \"Missing email address\");\r\n }\r\n get NoSubsidiariesErrorMessage() {\r\n return getString(\r\n \"NO_SUBSIDIARIES_IN_LIST\",\r\n \"You cannot edit the company profile because there is no profile to edit\"\r\n );\r\n }\r\n get UpdatingContactPrivacy() {\r\n return getString(\"UPDATING_CONTACT_PRIVACY_STATUS\", \"Updating contact privacy status\");\r\n }\r\n get UpdatedContactPrivacy() {\r\n return getString(\"CONTACT_PRIVACY_STATUS_UPDATED\", \"Contact privacy status updated\");\r\n }\r\n get FailedUpdateContactPrivacy() {\r\n return getString(\"FAILED_UPDATE_CONTACT_PRVIACY\", \"Failed to update contact privacy\");\r\n }\r\n get LockstepPrivateInformation() {\r\n return getString(\"LOCKSTEP_PRIVATE_CONTACT_INFO\", \"Private contacts are only viewable by you and your teammates.\");\r\n }\r\n get Friday() {\r\n return getString(\"FRIDAY\", \"Friday\");\r\n }\r\n get CustomDate() {\r\n return getString(\"CUSTOM_DATE\", \"Custom date\");\r\n }\r\n get ChooseACustomDateToSnoozeThisActivityUntil() {\r\n return getString(\r\n \"CHOOSE_A_CUSTOM_DATE_TO_SNOOZE_THIS_ACTIVITY_UNTIL\",\r\n \"Choose a custom date to snooze this activity until\"\r\n );\r\n }\r\n get SnoozingActivity() {\r\n return getString(\"SNOOZING_ACTIVITY\", \"Snoozing activity\");\r\n }\r\n get SnoozedActivity() {\r\n return getString(\"SNOOZED_ACTIVITY\", \"Snoozed activity\");\r\n }\r\n get FailedToSnoozeActivity() {\r\n return getString(\"FAILED_TO_SNOOZE_ACTIVITY\", \"Failed to snooze activity\");\r\n }\r\n get UntilTomorrow() {\r\n return getString(\"UNTIL_TOMORROW\", \"Until tomorrow\");\r\n }\r\n get UntilFriday() {\r\n return getString(\"UNTIL_FRIDAY\", \"Until friday\");\r\n }\r\n get UntilNextWeek() {\r\n return getString(\"UNTIL_NEXT_WEEK\", \"Until next week\");\r\n }\r\n get UntilNextMonth() {\r\n return getString(\"UNTIL_NEXT_MONTH\", \"Until next month\");\r\n }\r\n get CreateUsernamePasswordHeading() {\r\n return getString(\r\n \"CREATE_USERNAME_PASSWORD_HEADING\",\r\n \"First let’s create a username and password and select which department will be collaborating on Lockstep. You can always add an additional department to your workspace later. \"\r\n );\r\n }\r\n get RecomendUsingCompanyEmail() {\r\n return getString(\r\n \"RECOMEND_USING_COMPANY_EMAIL\",\r\n \"We recommend using your company email address for your username.\"\r\n );\r\n }\r\n get CreateUserContactInfo() {\r\n return getString(\r\n \"CREATE_USER_CONTACT_INFO\",\r\n \"Next, please list the primary and secondary contacts on your team (one of them may be yourself). This will ensure that your network knows who exactly to contact for important escalations and issues. Once you’ve added contacts we will send them invites to join Lockstep.\"\r\n );\r\n }\r\n get Department() {\r\n return getString(\"DEPARTMENT\", \"Department\");\r\n }\r\n get CreateUserProfileInfo() {\r\n return getString(\r\n \"CREATE_USER_PROFILE_INFO\",\r\n \"To get you up and running we need to gather some information for your company’s profile. This information will be used to seamlessly collaborate with your accounting network. You can include extra details like communication preferences in the notes section.\"\r\n );\r\n }\r\n get CreateUserMyProfileInfo() {\r\n return getString(\"CREATE_USER_PROFILE_INFO\", \"Finally, let’s add some more detail to your profile!\");\r\n }\r\n get CreateUserMyContactProfileInfo() {\r\n return getString(\r\n \"CREATE_USER_PROFILE_CONTACT_INFO\",\r\n \"Next please take a minute to confirm your profile information with us! How does everything look?\"\r\n );\r\n }\r\n get AddANewContact() {\r\n return getString(\"ADD_A_NEW_CONTACT\", \"Add a new contact\");\r\n }\r\n get SaveAndSendUpdate() {\r\n return getString(\"SAVE_AND_SEND_UPDATE\", \"Save and request profile update\");\r\n }\r\n get Snoozed() {\r\n return getString(\"SNOOZED\", \"Snoozed\");\r\n }\r\n get UpdatedYourProfileInfo() {\r\n return getString(\"YOU_UPDATED_YOUR_PROFILE_INFO\", \"You updated your profile information\");\r\n }\r\n get AddingContact() {\r\n return getString(\"ADDING_CONTACT\", \"Adding contact\");\r\n }\r\n get AddedContact() {\r\n return getString(\"ADDED_CONTACT\", \"Contact added\");\r\n }\r\n get FailedAddContact() {\r\n return getString(\"FAILED_ADD_CONTACT\", \"Failed to add contact\");\r\n }\r\n get AddingContactAndSendingRequest() {\r\n return getString(\"ADDING_CONTACT_AND_SENDING_REQUEST\", \"Adding contact and sending request\");\r\n }\r\n get AddedContactAndSentRequest() {\r\n return getString(\"ADDED_CONTACT_AND_SENT_REQUEST\", \"Contact added and request sent\");\r\n }\r\n get MarkAsPrimary() {\r\n return getString(\"MARK_AS_PRIMARY\", \"Mark as primary\");\r\n }\r\n get MarkingContactPrimary() {\r\n return getString(\"MARKING_CONTACT_PRIMARY\", \"Marking contact primary\");\r\n }\r\n get MarkedContactPrimary() {\r\n return getString(\"MARKED_CONTACT_PRIMARY\", \"Marked contact as primary\");\r\n }\r\n get FailedMarkContactPrimary() {\r\n return getString(\"FAILED_MARK_CONTACT_PRIMARY\", \"Failed mark contact as primary\");\r\n }\r\n get DocumentName() {\r\n return getString(\"DOCUMENT_NAME\", \"Document name\");\r\n }\r\n get AddDocument() {\r\n return getString(\"ADD_DOCUMENT\", \"Add document\");\r\n }\r\n\r\n get EmailFieldIsEmpty() {\r\n return getString(\"EMAIL_FIELD_IS_EMPTY\", \"Email field is empty\");\r\n }\r\n get ArchivedAccounts() {\r\n return getString(\"ARCHIVED_ACCOUNTS\", \"Archived accounts\");\r\n }\r\n get TotalNumberOfArchivedContacts() {\r\n return getString(\"TOTAL_NUMBER_ARCHIVED_CONTACTS\", \"Total number of archived contacts\");\r\n }\r\n get ArchivedContacts() {\r\n return getString(\"ARCHIVED_CONTACTS\", \"Archived contacts\");\r\n }\r\n get TotalNumberOfArchivedAccounts() {\r\n return getString(\"TOTAL_NUMBER_OF_ARCHIVED_ACCOUNTS\", \"Total number of archived accounts\");\r\n }\r\n get LockstepVerifiedArchivedAccounts() {\r\n return getString(\"LOCKSTEP_VERIFIED_ARCHIVED_ACCOUNTS\", \"Lockstep verified archived accounts\");\r\n }\r\n get UnverifiedArchivedAccounts() {\r\n return getString(\"UNVERIFIED_ARCHIVED_ACCOUNTS\", \"Unverified archived accounts\");\r\n }\r\n get Unarchive() {\r\n return getString(\"UNARCHIVE\", \"Unarchive\");\r\n }\r\n get ArchivingAccount() {\r\n return getString(\"ARCHIVING_ACCOUNT\", \"Archiving account\");\r\n }\r\n get AccountArchived() {\r\n return getString(\"ACCOUNT_ARCHIVED\", \"Account archived\");\r\n }\r\n get FailedArchiveAccount() {\r\n return getString(\"FAILED_ARCHIVE_ACCOUNT\", \"Failed to archive account\");\r\n }\r\n get RestoringAccount() {\r\n return getString(\"RESTORING_ACCOUNT\", \"Restoring account\");\r\n }\r\n get AccountRestored() {\r\n return getString(\"ACCOUNT_RESTORED\", \"Account restored\");\r\n }\r\n get FailedRestoreAccount() {\r\n return getString(\"FAILED_RESTORE_ACCOUNT\", \"Failed to restore account\");\r\n }\r\n get ArchivingContact() {\r\n return getString(\"ARCHIVING_CONTACT\", \"Archiving contact\");\r\n }\r\n get ArchivedContact() {\r\n return getString(\"ARCHIVED_CONTACT\", \"Archived contact\");\r\n }\r\n get FailedToArchiveContact() {\r\n return getString(\"FAILED_TO_ARCHIVE_CONTACT\", \"Failed to archive contact\");\r\n }\r\n get RestoringContact() {\r\n return getString(\"RESTORING_CONTACT\", \"Restoring contact\");\r\n }\r\n get RestoredContact() {\r\n return getString(\"RESTORED_CONTACT\", \"Restored contact\");\r\n }\r\n get FailedToRestoreContact() {\r\n return getString(\"FAILED_TO_RESTORE_CONTACT\", \"Failed to restore contact\");\r\n }\r\n get Archived() {\r\n return getString(\"ARCHIVED\", \"Archived\");\r\n }\r\n get LockstepArchivedInfo() {\r\n return getString(\"LOCKSTEP_ARCHIVED_INFO\", \"Archived contacts are only visible to you and your team\");\r\n }\r\n get ToggleArchived() {\r\n return getString(\"TOGGLE_ARCHIVED\", \"Toggle archived\");\r\n }\r\n get UpdatingContactStatus() {\r\n return getString(\"UPDATING_CONTACT_STATUS\", \"Updating contact status\");\r\n }\r\n get ContactStatusUpdated() {\r\n return getString(\"CONTACT_STATUS_UPDATED\", \"Contact status updated\");\r\n }\r\n get FailedToUpdateContactStatus() {\r\n return getString(\"FAILED_TO_UPDATE_CONTACT_STATUS\", \"Failed to update contact status\");\r\n }\r\n get YouAreTryingToArchiveAPrimaryContact() {\r\n return getString(\"YOU_ARE_TRYING_TO_ARCHIVE_A_PRIMARY_CONTACT\", \"You are trying to archive a primary contact\");\r\n }\r\n PrimaryContactArchiveMessage(name, companyname) {\r\n return formatString(\r\n getString(\r\n \"PRIMARY_CONTACT_ARCHIVE_MESSAGE_NAME_COMPANY_NAME\",\r\n \"{name} is the primary contact for {companyname}. Please select a new primary contact for {companyname} from the table below.\"\r\n ),\r\n {\r\n name: name,\r\n companyname: companyname\r\n }\r\n );\r\n }\r\n get YourOneStepCloserToOptimizing() {\r\n return getString(\r\n \"YOUR_ONE_STEP_CLOSER_TO_OPTIMIZING\",\r\n \"You're one step closer to optimizing your accounting workflow.\"\r\n );\r\n }\r\n get UnsupportedBrowser() {\r\n return getString(\"UNSUPPORTED_BROWSER\", \"Oops! It looks like you are using an unsupported browser.\");\r\n }\r\n get UnsupportedBrowserText() {\r\n return getString(\r\n \"UNSUPPORTED_BROWSER_TEXT\",\r\n \"Our team is working hard to support Safari but right now our site won’t work properly on this browser. We recommend switching to Chrome or Firefox so you can access the full experience.\"\r\n );\r\n }\r\n get ConfirmCompanyInfoProfile() {\r\n return getString(\r\n \"CONFIRM_COMPANY_INFO_PROFILE\",\r\n \"Confirm your company's profile information below to ensure seamless collaboration with network.\"\r\n );\r\n }\r\n get GreatWhoGetsInvite() {\r\n return getString(\"GREAT_WHO_GETS_INVITE\", \"Great, who from your team should get an invitation to join lockstep\");\r\n }\r\n get FinallyLetsAddSomeDetail() {\r\n return getString(\r\n \"FINALLY_LETS_ADD_SOME_DETAILS\",\r\n \"Finally, let’s add some more detail to your profile. We recommend adding things like communication preferences or fun facts to your profile too! If you’re in a hurry you can do this later.\"\r\n );\r\n }\r\n get ClaimYourProfile() {\r\n return getString(\"CLAIM_YOUR_PROFILE\", \"Claim your profile\");\r\n }\r\n get AUserWithThisEmailAlreadyExists() {\r\n return getString(\"A_USER_WITH_THIS_EMAIL_ALREADY_EXISTS\", \"A user with this email already exists\");\r\n }\r\n get FetchingPopulatedTemplate() {\r\n return getString(\"FETCHING_POPULATED_TEMPLATE_NAME\", \"Fetching template\");\r\n }\r\n get EmailAttachments() {\r\n return getString(\"EMAIL_ATTACHMENTS\", \"Email attachments\");\r\n }\r\n get ProfileDocuments() {\r\n return getString(\"PROFILE_DOCUMENTS\", \"Profile documents\");\r\n }\r\n get WhatDocumentTypeShouldWeSetTheseTo() {\r\n return getString(\"WHAT_DOCUMENT_TYPE_SHOULD_WE_SET_THESE_TO\", \"What type should we assign these documents?\");\r\n }\r\n get YesIAmSure() {\r\n return getString(\"YES_I_AM_SURE\", \"Yes, I am sure\");\r\n }\r\n get OnceYouDeleteDocumentYouCannotRecover() {\r\n return getString(\r\n \"ONCE_YOU_DELETE_YOU_CANNOT_RECOVER\",\r\n \"Once a document is deleted it can never be accessed again.\"\r\n );\r\n }\r\n get AddContact() {\r\n return getString(\"ADD_CONTACT\", \"Add contact\");\r\n }\r\n get PleaseEnsureAllFileNamesShorterThanOneHundred() {\r\n return getString(\r\n \"PLEASE_ENSURE_ALL_FILE_NAMES_LESS_THAN_ONE_HUNDRED\",\r\n \"Please make sure that all file names are less then 100 characters in length\"\r\n );\r\n }\r\n get ThisProfileIsMarkedPrivateMessage() {\r\n return getString(\r\n \"THIS_PROFILE_IS_MARKED_PRIVATE_MESSAGE\",\r\n \"This profile is marked as private. If you send a profile update request to this profile it will no longer be marked as private.\"\r\n );\r\n }\r\n get AreYouSure() {\r\n return getString(\"ARE_YOU_SURE\", \"Are you sure?\");\r\n }\r\n get DeletingDocumens() {\r\n return getString(\"DELETING_DOCUMENTS\", \"Deleting documents\");\r\n }\r\n get DeletedDocument() {\r\n return getString(\"DELETED_DOCUMENTS\", \"Documents deleted\");\r\n }\r\n get FailedDeleteDocuments() {\r\n return getString(\"FAILED_DELETE_DOCUMENTS\", \"Failed to delete documents\");\r\n }\r\n get WNine() {\r\n return getString(\"W_NINE\", \"W9\");\r\n }\r\n get BankVerification() {\r\n return getString(\"BANK_VERIFICATION\", \"Bank Verification\");\r\n }\r\n get CFO() {\r\n return getString(\"CFO\", \"CFO\");\r\n }\r\n get Controller() {\r\n return getString(\"CONTROLLER\", \"Controller\");\r\n }\r\n get SalesRepresentitive() {\r\n return getString(\"SALES_REP\", \"Sales representitive\");\r\n }\r\n get Manager() {\r\n return getString(\"MANAGER\", \"Manager\");\r\n }\r\n get Specialist() {\r\n return getString(\"SPECIALIST\", \"Specialist\");\r\n }\r\n OnboardingCount(number) {\r\n return formatString(getString(\"ONBOARDING_COUNT\", \"Onboarding ({number})\"), {\r\n number: number\r\n });\r\n }\r\n ProfileCount(number) {\r\n return formatString(getString(\"PROFILE_COUNT\", \"Profile Update ({number})\"), {\r\n number: number\r\n });\r\n }\r\n get YouCannotSendUpdateRequestWithoutEmail() {\r\n return getString(\r\n \"NO_REQUEST_WITHOUT_EMAIL\",\r\n \"You cannot send a profile update request to a profile with no email address.\"\r\n );\r\n }\r\n\r\n get IncomingDeliveryPreference() {\r\n return getString(\"IncomingDeliveryPreference\", \"Incoming Delivery Preference\");\r\n }\r\n\r\n get OutgoingDeliveryPreference() {\r\n return getString(\"OutgoingDeliveryPreference\", \"Outgoing Delivery Preference\");\r\n }\r\n\r\n get ServerName() {\r\n return getString(\"ServerName\", \"Server Name\");\r\n }\r\n\r\n get OptionalFields() {\r\n return getString(\"OptionalFields\", \"Optional fields\");\r\n }\r\n\r\n get UserDomain() {\r\n return getString(\"userDomain\", \"User domain\");\r\n }\r\n\r\n get InboxFolder() {\r\n return getString(\"InboxFolder\", \"Inbox folder\");\r\n }\r\n\r\n get SentItemsFolder() {\r\n return getString(\"SentItemsFolder\", \"Sent items folder\");\r\n }\r\n\r\n get ConnectionSecurity() {\r\n return getString(\"ConnectionSecurity\", \"Connection security\");\r\n }\r\n\r\n get AuthenticationMethod() {\r\n return getString(\"AuthenticationMethod\", \"Authentication method\");\r\n }\r\n\r\n get ConnectionTimeout() {\r\n return getString(\"ConnectionTimeout\", \"Connection timeout\");\r\n }\r\n\r\n get RetrievalTimeout() {\r\n return getString(\"RetrievalTimeout\", \"Retrieval timeout\");\r\n }\r\n\r\n get DefaultSendAsEmail() {\r\n return getString(\"DefaultSendAsEmail\", \"Default send as email\");\r\n }\r\n\r\n get IncomingMail() {\r\n return getString(\"IncomingMail\", \"Incoming Mail\");\r\n }\r\n get OutgoingMail() {\r\n return getString(\"OutgoingMail\", \"Outgoing Mail\");\r\n }\r\n get TestEmailConfiguration() {\r\n return getString(\"TEST_EMAIL_CONFIGURATION\", \"Test email configuration\");\r\n }\r\n TestingEmailConfigurationForName(name) {\r\n return formatString(getString(\"TESTING_EMAIL_CONFIGURATION_FOR_NAME\", \"Testing email configuration for {name}\"), {\r\n name: name\r\n });\r\n }\r\n CompletedTestingEmailConfigurationForName(name) {\r\n return formatString(\r\n getString(\"COMPLETED_TESTING_EMAIL_CONFIGURATION_FOR_NAME\", \"Completed testing email configuration for {name}\"),\r\n {\r\n name: name\r\n }\r\n );\r\n }\r\n get ShowConfig() {\r\n return getString(\"SHOW_CONFIG\", \"Show config\");\r\n }\r\n get HideConfig() {\r\n return getString(\"HIDE_CONFIG\", \"Hide config\");\r\n }\r\n get SuccessfullyConnected() {\r\n return getString(\"SUCCESSFULLY_CONNECTED\", \"Successfully connected\");\r\n }\r\n get FailedToConnect() {\r\n return getString(\"FAILED_TO_CONNECT\", \"Failed to connect\");\r\n }\r\n get SuccessfullyAuthorized() {\r\n return getString(\"SUCCESSFULLY_AUTHENTICATED\", \"Successfully authenticated\");\r\n }\r\n get FailedToAuthenticate() {\r\n return getString(\"FAILED_TO_AUTHENTICATE\", \"Failed to authenticate\");\r\n }\r\n get SmtpConnectionStatus() {\r\n return getString(\"SMTP_CONNECTION_ESTABLISHED\", \"SMTP connection established\");\r\n }\r\n get SmtpAuthentication() {\r\n return getString(\"SMTP_AUTHENTICATION\", \"SMTP authentication\");\r\n }\r\n get SmtpConfigUsed() {\r\n return getString(\"SMTP_CONFIG_USED\", \"SMTP config used\");\r\n }\r\n get SmtpConfigTestResults() {\r\n return getString(\"SMTP_CONFIG_TEST_RESULTS\", \"SMTP config test results\");\r\n }\r\n get ImapConnectionStatus() {\r\n return getString(\"IMAP_CONNECTION_ESTABLISHED\", \"IMAP connection established\");\r\n }\r\n get ImapAuthentication() {\r\n return getString(\"IMAP_AUTHENTICATION\", \"IMAP authentication\");\r\n }\r\n get ImapConfigUsed() {\r\n return getString(\"IMAP_CONFIG_USED\", \"IMAP config used\");\r\n }\r\n get ImapConfigTestResults() {\r\n return getString(\"IMAP_CONFIG_TEST_RESULTS\", \"IMAP config test results\");\r\n }\r\n get SuccessfullyFoundRecords() {\r\n return getString(\"SUCCESSFULLY_FOUND_RECORDS\", \"Successfully found records\");\r\n }\r\n get FailedToFindRecords() {\r\n return getString(\"FAILED_TO_FIND_RECORDS\", \"Failed to find records\");\r\n }\r\n get DkimRecordsStatus() {\r\n return getString(\"DKIM_RECORDS_STATUS\", \"DKIM records status\");\r\n }\r\n get DkimDomain() {\r\n return getString(\"DKIM_DOMAIN\", \"DKIM domain\");\r\n }\r\n get DkimConfigTestResults() {\r\n return getString(\"DKIM_CONFIG_TEST_RESULTS\", \"DKIM config test results\");\r\n }\r\n get Activity() {\r\n return getString(\"ACTIVITY\", \"Activity\");\r\n }\r\n get Received() {\r\n return getString(\"RECEIVED\", \"Received\");\r\n }\r\n get ErrorMessage() {\r\n return getString(\"ERROR_MESSAGE\", \"Error message\");\r\n }\r\n get CustomerID() {\r\n return getString(\"CUSTOMER_ID\", \"Customer ID\");\r\n }\r\n get ForwardActivity() {\r\n return getString(\"FORWARD_ACTIVITY\", \"Forward activity\");\r\n }\r\n get SelectMessageTemplate() {\r\n return getString(\"SELECT_MESSAGE_TEMPLATE\", \"Select message template\");\r\n }\r\n get ViewFull() {\r\n return getString(\"VIEW_FULL\", \"View full\");\r\n }\r\n get VendorID() {\r\n return getString(\"VENDOR_ID\", \"Vendor ID\");\r\n }\r\n get CompanyProfiles() {\r\n return getString(\"COMPANY_PROFILES\", \"Company profiles\");\r\n }\r\n get YourOpenActivities() {\r\n return getString(\"YOUR_OPEN_ACTIVITIES\", \"Your open activities\");\r\n }\r\n get UnassignedOpenActivities() {\r\n return getString(\"UNASSIGNED_OPEN_ACTIVITIES\", \"Unassigned open activites\");\r\n }\r\n ConvoStartedByName(name) {\r\n return formatString(getString(\"NAME_STARTED_THE_CONVERSATION\", \"This conversation was started by {name}\"), {\r\n name: name\r\n });\r\n }\r\n get ShowOriginal() {\r\n return getString(\"SHOW_ORIGINAL\", \"Show Original\");\r\n }\r\n get ForwardingMessage() {\r\n return getString(\"FORWARDING_MESSAGE\", \"Forwarding message\");\r\n }\r\n get ForwardedMessage() {\r\n return getString(\"FORWARDED_MESSAGE\", \"Forwarded message\");\r\n }\r\n get FailedForwardMessage() {\r\n return getString(\"FAILED_TO_FORWARD_MESSAGE\", \"Failed to forward message\");\r\n }\r\n\r\n get SignInAndSecurity() {\r\n return getString(\"SIGN_IN_AND_SECURITY\", \"Sign-in and security\");\r\n }\r\n get ChangeYourPassword() {\r\n return getString(\"CHANGE_YOUR_PASSWORD\", \"Change your password.\");\r\n }\r\n get ActivitySummaryEmails() {\r\n return getString(\"ACTIVITY_SUMMARY_EMAILS\", \"Activity summary emails\");\r\n }\r\n get ChooseActivitySummmaryEmailsFrequency() {\r\n return getString(\r\n \"CHOOSE_ACTIVITY_SUMMMARY_EMAILS_FREQUENCY\",\r\n \"Choose the frequency at which you receive activity summary emails from Lockstep.\"\r\n );\r\n }\r\n get WorkspacePreferences() {\r\n return getString(\"WORKSPACE_PREFERENCES\", \"Workspace preferences\");\r\n }\r\n get WorkspacePreferencesSaving() {\r\n return getString(\"WORKSPACE_PREFERENCES_SAVING\", \"Saving workspace preferences.\")\r\n }\r\n get WorkspacePreferencesSaved() {\r\n return getString(\"WORKSPACE_PREFERENCES_SAVED\", \"Workspace preferences saved successfully.\")\r\n }\r\n get WorkspacePreferencesFailed() {\r\n return getString(\"WORKSPACE_PREFERENCES_FAILED\", \"Saving workspace preferences failed.\")\r\n }\r\n get CustomizeWorkspaceNames() {\r\n return getString(\"CUSTOMIZE_WORKSPACE_NAMES\", \"Customize workspace names and select your default workspace.\");\r\n }\r\n get EmailSettingsV2() {\r\n return getString(\"EMAIL_SETTINGS\", \"E-mail settings\");\r\n }\r\n get ManageEmailSetupAndDelivery() {\r\n return getString(\"MANAGE_EMAIL_SETUP_AND_DELIVERY\", \"Manage email setup and delivery for your workspaces.\");\r\n }\r\n get ManageUsersAndPermissions() {\r\n return getString(\"MANAGE_USERS_AND_PERMISSIONS\", \"Manage users and permissions for your workspaces.\");\r\n }\r\n get AccountingSoftwareSettings() {\r\n return getString(\"ACCOUNTING_SOFTWARE_SETTINGS\", \"Accounting software settings\");\r\n }\r\n get ManageConnectionsToAccountingSoftware() {\r\n return getString(\"MANAGE_CONNECTIONS_TO_ACCOUNTING_SOFTWARE\", \"Manage connections to your accounting software.\");\r\n }\r\n get WorkspaceName() {\r\n return getString(\"WORKSPACE_NAME\", \"Workspace name\");\r\n }\r\n get AddVendors() {\r\n return getString(\"ADD_VENDORS\", \"Add vendors\");\r\n }\r\n get RequestToAddVendorsSubmitted() {\r\n return getString(\"REQUEST_TO_ADD_VENDORS_SUBMITTED\", \"Request to add vendors submitted\");\r\n }\r\n get MVPConversionHeader() {\r\n return getString(\r\n \"MVP_CONVERSION_HEADER\",\r\n \"Nice work, thanks for confirming your information! Would you like to collect and share profiles this way with all of your vendors? Sign up for free now.\"\r\n );\r\n }\r\n ViewCompanyNamesProfile(companyName) {\r\n return formatString(getString(\"VIEW_COMPANY_NAMES_PROFILE\", \"View {companyName}'s profile\"), {\r\n companyName: companyName\r\n });\r\n }\r\n get ViewYourProfile() {\r\n return getString(\"VIEW_YOUR_PROFILE\", \"View your profile\");\r\n }\r\n get TermsAndConditions() {\r\n return getString(\"TERMS_AND_CONDITIONS\", \"Terms & Conditions\");\r\n }\r\n get PrivacyPolicy() {\r\n return getString(\"PRIVACY_POLICY\", \"Privacy Policy\");\r\n }\r\n get And() {\r\n return getString(\"AND\", \"and\");\r\n }\r\n get BySignuingUpYourAreAgreeingTo() {\r\n return getString(\"BY_SIGNING_UP_YOU_ARE_AGREEING_TO\", \"By signing up you are agreeing to the\");\r\n }\r\n get YourEmailAddress() {\r\n return getString(\"YOUR_EMAIL_ADDRESS\", \"Your email address\");\r\n }\r\n get WhichAccountingSystem() {\r\n return getString(\"WHICH_ACCOUNTING_SYSTEM_DO_YOU_USE\", \"Which accounting system do you use?\");\r\n }\r\n get NeverFillOutAFormAgain() {\r\n return getString(\"NEVER_FILL_OUT_A_FORM_AGAIN\", \"Never fill out a vendor form again.\");\r\n }\r\n get SecurelyCollectAndStoreVendorProfiles() {\r\n return getString(\"SECURELY_COLLECT_AND_STORE\", \"Securely collect and store vendors profiles.\");\r\n }\r\n get AutomaticallyKeepVendorDataUpToDate() {\r\n return getString(\"AUTOMATICALLY_KEEP_DATA_UP_TO_DATE\", \"Automatically keep your vendor data up to date.\");\r\n }\r\n get ConvertSuccessMessage() {\r\n return getString(\r\n \"CONVER_SUCCESS_MESSAGE\",\r\n \"Wohoo! You're one step closer to better vendor and customer collaboration. Your profile has been saved and a member of our team will be in touch within 24 hours to complete your account set up\"\r\n );\r\n }\r\n get ExploreOurFeatures() {\r\n return getString(\"EXPLORE_OUR_FEATURES\", \"Explore our features\");\r\n }\r\n get APDepartmentEmailAddress() {\r\n return getString(\"AP_DEPARTMENT_EMAIL\", \"AP department email address\");\r\n }\r\n get ARDepartmentEmailAddress() {\r\n return getString(\"AR_DEPARTMENT_EMAIL\", \"AR department email address\");\r\n }\r\n get GoToForwardedItem() {\r\n return getString(\"GO_TO_FORWARDED_ITEM\", \"Go to forwarded item\");\r\n }\r\n get AssignmentUnknown() {\r\n return getString(\"ASSIGNMENT_UNKOWN\", \"Assignment unknown\");\r\n }\r\n get TheFollowingValidationErrorsOccurred() {\r\n return getString(\"THE_FOLLOWING_VALIDATION_ERRORS_OCCURRED\", \"The following validation errors occurred:\");\r\n }\r\n get ShowFolders() {\r\n return getString(\"SHOW_FOLDERS\", \"Show folders\");\r\n }\r\n get HideFolders() {\r\n return getString(\"HIDE_FOLDERS\", \"Hide folders\");\r\n }\r\n get ImapSpecialFolders() {\r\n return getString(\"IMAP_SPECIAL_FOLDERS\", \"Imap special folders\");\r\n }\r\n get ImapFolders() {\r\n return getString(\"IMAP_FOLDERS\", \"Imap folders\");\r\n }\r\n\r\n get AllOpen() {\r\n return getString(\"ALL_OPEN\", \"All open\");\r\n }\r\n get JoinLockstep() {\r\n return getString(\"JOIN_LOCKSTEP\", \"Join Lockstep\");\r\n }\r\n get ProcessMoreInvoices() {\r\n return getString(\"PROCESS_MORE_INVOICECS\", \"Process more invoices\");\r\n }\r\n\r\n get NewPassword() {\r\n return getString(\"NEW_PASSWORD\", \"New password\");\r\n }\r\n get ReenterPassword() {\r\n return getString(\"REENTER_PASSWORD\", \"Re-enter new password\");\r\n }\r\n get EmailAddressRegistered() {\r\n return getString(\"EMAIL_ADDRESS_REGISTERED\", \"The email address registered with your account is \");\r\n }\r\n get ToUpdateEmail() {\r\n return getString(\"TO_UPDATE_EMAIL\", \"To update your email address go to \");\r\n }\r\n get SelectAnAutoPayOption() {\r\n return getString(\"SELECT_AN_AUTO_PAY_OPTION\", \"Select an auto pay option\");\r\n }\r\n get PayAllInvoicesOnTheirGivenDueDates() {\r\n return getString(\"PAY_ALL_INVOICES_ON_THEIR_GIVEN_DUE_DATES\", \"Pay all open invoices on their given due dates\");\r\n }\r\n get PayTheTotalOpenBalanceOnThe() {\r\n return getString(\"PAY_THE_TOTAL_OPEN_BALANCE_ON_THE\", \"Pay the total open balance on the\");\r\n }\r\n get DayOfEveryMonth() {\r\n return getString(\"DAY_OF_EVERY_MONTH\", \"Day of every month\");\r\n }\r\n get OopsPaymentMethodWasDeclined() {\r\n return getString(\r\n \"OOPS_PAYMENT_METHOD_WAS_DECLINED\",\r\n \"Oops! Payment method was declined, please select a different payment method.\"\r\n );\r\n }\r\n get GiveFeedback() {\r\n return getString(\"GIVE_FEEDBACK\", \"Give feedback\");\r\n }\r\n get YourPaymentMethodWasDeclined() {\r\n return getString(\"YOUR_PAYMENT_METHOD_WAS_DECLINED\", \"Your payment method was declined\");\r\n }\r\n get SendTestEmailViaSMTP() {\r\n return getString(\"SEND_TEST_EMAIL_VIA_SMTP\", \"Send test email via SMTP\");\r\n }\r\n get Sending() {\r\n return getString(\"SENDING\", \"Sending\");\r\n }\r\n get EmailStatus() {\r\n return getString(\"EMAIL_STATUS\", \"Email status\");\r\n }\r\n\r\n get SavingNote() {\r\n return getString(\"SAVING_NOTE\", \"Saving note\");\r\n }\r\n get NoteSaved() {\r\n return getString(\"NOTE_SAVED\", \"Note saved\");\r\n }\r\n get SavingNoteFailed() {\r\n return getString(\"SAVING_NOTE_FAILED\", \"Saving note failed\");\r\n }\r\n get DeletingTemplate() {\r\n return getString(\"DELETING_TEMPLATE\", \"Deleting template\");\r\n }\r\n get DeletedTemplate() {\r\n return getString(\"DELETED_TEMPLATE\", \"Deleted template\");\r\n }\r\n get FailedDeleteTemplate() {\r\n return getString(\"FAILED_DELETE_TEMPLATE\", \"Failed delete template\");\r\n }\r\n get SelectOkToConfirmPayment() {\r\n return getString(\"SELECT_OK_TO_CONFIRM_PAYMENT\", \"We noticed you selected a credit memo for this payment. Payments with credit memo applications cannot be made when on All Accounts. Select Ok to continue without the credit memo selected or select cancel to select an individual account for the credit memo application.\");\r\n }\r\n getString(name) {\r\n return getString(name.toUpperCase(), `[${name}]`);\r\n }\r\n get AssignedTo() {\r\n return getString(\"ASSIGNED_TO\", \"Assigned to\");\r\n }\r\n YouSelectedNumberofInvoices(numOfSelectedKeys, selectedType) {\r\n return formatString(\r\n getString(\r\n \"YOU_SELECTED_NUMBER_OF_INVOICES\",\r\n \"All {numOfSelectedKeys} {selectedType} on this page are selected.\"\r\n ),\r\n { numOfSelectedKeys, selectedType }\r\n );\r\n }\r\n SelectAllInvoicesInPage(pageName, maxRows, selectedType) {\r\n return formatString(\r\n getString(\"SELECT_ALL_INVOICES_IN_PAGE\", \"Select all {maxRows} {selectedType} in {pageName}.\"),\r\n {\r\n pageName,\r\n maxRows,\r\n selectedType\r\n }\r\n );\r\n }\r\n get ClearSelection() {\r\n return getString(\"CLEAR_SELECTION\", \"Clear selection.\")\r\n }\r\n AllOpenInvoicesSelected(numOfSelectedKeys, pageName, selectedType) {\r\n return formatString(\r\n getString(\"ALL_OPEN_INVOICES_SELECTED\", \"All {numOfSelectedKeys} {selectedType} in {pageName} are selected.\"),\r\n {\r\n numOfSelectedKeys,\r\n pageName,\r\n selectedType\r\n }\r\n )\r\n }\r\n get DeleteAutoPayMethodConfirm() {\r\n return getString(\r\n \"DELETE_AUTO_PAY_METHOD_CONFIRM\",\r\n \"Are you sure? This payment method is used for automatic payments. If you delete this payment method then we will turn off automatic payments.\"\r\n );\r\n }\r\n get TruncateLimit() {\r\n return getString(\"TRUNCATE_STRING_LIMIT\", 68)\r\n }\r\n get MissingPaymentMethod() {\r\n return getString(\"MISSING_PAYMENT_METHOD\", \"Please select a payment method.\");\r\n }\r\n\r\n get DropdownWidth() {\r\n return getString(\"GET_DROPDOWN_WIDTH\", 690)\r\n }\r\n}\r\n\r\nconst resources = new Resources();\r\n\r\nexport default resources;\r\n","const icons = {\r\n activeConversation: \"fas fa-circle\",\r\n angleDown: \"fal fa-angle-down\",\r\n angleLeft: \"fal fa-angle-left\",\r\n angleRight: \"fal fa-angle-right\",\r\n angleUp: \"fal fa-angle-up\",\r\n approvers: \"fa fa-user-check\",\r\n arrowLeft: \"fal fa-arrow-left\",\r\n arrowRight: \"fal fa-arrow-right\",\r\n arrowUp: \"fal fa-arrow-up\",\r\n assigned: \"fal fa-users\",\r\n attachment: \"fal fa-paperclip\",\r\n bell: \"far fa-bell\",\r\n calendar: \"fal fa-calendar-alt\",\r\n check: \"fal fa-check\",\r\n checkSquare: \"fal fa-check-square\",\r\n chevronDoubleRight: \"fal fa-chevron-double-right\",\r\n clipboardCheck: \"fal fa-clipboard-check\",\r\n clipboardList: \"fal fa-clipboard-list\",\r\n clock: \"far fa-clock\",\r\n close: \"fal fa-times\",\r\n closed: \"fal fa-check\",\r\n completed: \"fal fa-check-circle\",\r\n compose: \"fal fa-envelope\",\r\n contacts: \"fal fa-address-book\",\r\n copy: \"fal fa-copy\",\r\n customers: \"fal fa-money-bill\",\r\n document: \"fal fa-folder\",\r\n download: \"fas fa-download\",\r\n draft: \"fal fa-drafting-compass\",\r\n dropdown: \"fas fa-angle-down\",\r\n elipsisH: \"far fa-ellipsis-h\",\r\n emailSettings: \"fal fa-envelope\",\r\n elipsisV: \"far fa-ellipsis-v\",\r\n exclamationCircle: \"fas fa-exclamation-circle\",\r\n eye: \"far fa-eye\",\r\n fileAlt: \"far fa-file-alt\",\r\n fileImage: \"far fa-file-image\",\r\n fileInvoiceDollar: \"fal fa-file-invoice-dollar\",\r\n filePdf: \"far fa-file-pdf\",\r\n fileWord: \"far fa-file-word\",\r\n forward: \"fal fa-share\",\r\n genericCompany: \"fal fa-building\",\r\n google: \"fab fa-google\",\r\n hourglass: \"fal fa-hourglass\",\r\n list: \"fal fa-list\",\r\n myCompany: \"fas fa-building\",\r\n manage: \"fal fa-toolbox\",\r\n mine: \"fal fa-user\",\r\n minus: \"far fa-minus\",\r\n note: \"fal fa-sticky-note\",\r\n notifications: \"fal fa-mail-bulk\",\r\n packages: \"fas fa-project-diagram\",\r\n pencil: \"fas fa-pencil\",\r\n pendingApproval: \"fal fa-comment-alt-check\",\r\n plus: \"fas fa-plus-circle\",\r\n profile: \"fal fa-id-badge\",\r\n questionCircle: \"fal fa-question-circle\",\r\n reply: \"fal fa-reply\",\r\n reports: \"fal fa-chart-pie\",\r\n save: \"fal fa-save\",\r\n savedReplies: \"fab fa-replyd\",\r\n search: \"fas fa-search\",\r\n setup: \"fal fa-cog\",\r\n signature: \"fal fa-id-card\",\r\n spam: \"fal fa-ban\",\r\n spinner: \"fas fa-spinner\",\r\n statusPicker: \"fal fa-flag\",\r\n sync: \"fal fa-sync\",\r\n template: \"fal fa-file-alt\",\r\n newTemplate: \"fal fa-file-plus\",\r\n task: \"fal fa-list\",\r\n times: \"fal fa-times\",\r\n toggleoff: \"fal fa-toggle-off\",\r\n toggleon: \"fal fa-toggle-on\",\r\n trash: \"fal fa-trash-alt\",\r\n unassigned: \"fal fa-arrow-to-bottom\",\r\n user: \"fal fa-user\",\r\n userFriendsSolid: \"fas fa-user-friends\",\r\n userFriends: \"far fa-user-friends\",\r\n users: \"fal fa-users\",\r\n usersAndPermissions: \"fal fa-users-cog\",\r\n vendors: \"fal fa-file-invoice-dollar\",\r\n visibility: \"fal fa-eye\",\r\n workflows: \"fal fa-repeat-alt\",\r\n warningTriangle: \"fas fa-exclamation-triangle\",\r\n workspaces: \"fas fa-mail-bulk\"\r\n};\r\n\r\nexport default icons;\r\n","import React from \"react\";\r\nimport util from \"util\";\r\nimport validator from \"validator\";\r\nimport moment from \"moment\";\r\nimport $ from \"jquery\";\r\nimport qs from \"qs\";\r\nimport numeral from \"numeral\";\r\nimport \"numeral/locales\";\r\nimport { saveAs } from \"file-saver\";\r\nimport equal from \"fast-deep-equal\";\r\nimport { RRule } from \"rrule\";\r\nimport DOMPurify from \"dompurify\";\r\n\r\nimport UBLPaymentTypeResources from \"./ublPaymentTypeResources\";\r\nimport Resources from \"./resources\";\r\nimport Icons from \"./icons\";\r\n\r\nconst onLocalHost = window.location.hostname === \"localhost\";\r\n\r\nlet config = require(\"../config/config.json\");\r\n\r\nif (!onLocalHost) {\r\n config.authEndpoint = window.location.origin.replace(\"app\", \"auth\"); // https://auth.lockstep.network\r\n config.apiEndpoint = window.location.origin.replace(\"app\", \"api\");\r\n config.emailDomain = window.location.hostname.replace(\"app.\", \"\");\r\n}\r\n\r\nexport function isLocalHost() {\r\n return onLocalHost;\r\n}\r\n\r\nexport function isStaging() {\r\n if (isLocalHost()) {\r\n return false;\r\n }\r\n return (config.apiEndpoint.split(\".\")[1] || \"\").toLowerCase() === \"stg\";\r\n}\r\n\r\nexport function isQA() {\r\n if (isLocalHost()) {\r\n return false;\r\n }\r\n return config.apiEndpoint.split(\".\")[1].toLowerCase() === \"demo\";\r\n}\r\n\r\nexport function isLeading() {\r\n if (isLocalHost()) {\r\n return false;\r\n }\r\n return config.apiEndpoint.split(\".\")[1].toLowerCase() === \"leading\";\r\n}\r\n\r\nexport function isTrailing() {\r\n if (isLocalHost()) {\r\n return false;\r\n }\r\n return config.apiEndpoint.split(\".\")[1].toLowerCase() === \"trailing\";\r\n}\r\n\r\nexport function isProduction() {\r\n if (isLocalHost()) {\r\n return false;\r\n }\r\n return config.apiEndpoint.split(\".\")[1].toLowerCase() === \"lockstep\";\r\n}\r\n\r\nexport function replaceAt(arr, index, value) {\r\n return [...arr.slice(0, index), value, ...arr.slice(index + 1)];\r\n}\r\n\r\nexport function insertAt(arr, index, value) {\r\n return [...arr.slice(0, index), value, ...arr.slice(index)];\r\n}\r\n\r\nexport function removeAt(arr, index) {\r\n return [...arr.slice(0, index), ...arr.slice(index + 1)];\r\n}\r\n\r\nexport function getConfig() {\r\n return { ...config };\r\n}\r\n\r\nexport function isAdmin() {\r\n return config.isAdminMode;\r\n}\r\n\r\nexport function toggleAdmin() {\r\n if (isLocalHost()) {\r\n config.isAdminMode = !config.isAdminMode;\r\n }\r\n}\r\n\r\nexport function updateConfig(item) {\r\n config = { ...config, ...item };\r\n}\r\n\r\nexport function isEmpty(item) {\r\n if (util.isNullOrUndefined(item) || item === \"undefined\") return true;\r\n let type = typeof item;\r\n if (type === \"object\" && util.isArray(item)) type = \"array\";\r\n switch (type) {\r\n case \"array\":\r\n return item.length === 0;\r\n case \"string\":\r\n return item.trim().length === 0;\r\n case \"object\":\r\n for (let prop in item) {\r\n if (item.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n return JSON.stringify(item) === JSON.stringify({});\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nexport function getTextWidth(text, font) {\r\n const canvas = document.createElement(\"canvas\");\r\n let context = canvas.getContext(\"2d\");\r\n context.font = font;\r\n const width = context.measureText(text).width;\r\n\r\n return Math.ceil(width);\r\n}\r\n\r\nexport function isCustomerPortal(path) {\r\n return path.includes(\"customer-portal\");\r\n}\r\n\r\nexport function getDisplaySize(sizeInBytes) {\r\n let size = sizeInBytes + 0;\r\n let kbSize = sizeInBytes / 1024;\r\n if (kbSize < 1) {\r\n return `${size}bytes`;\r\n }\r\n let mbSize = kbSize / 1024;\r\n if (mbSize < 1) {\r\n return `${kbSize.toFixed(0)}KB`;\r\n }\r\n let gbSize = mbSize / 1024;\r\n if (gbSize < 1) {\r\n return `${mbSize.toFixed(1)}MB`;\r\n }\r\n return `${gbSize.toFixed(2)}GB`;\r\n}\r\n\r\nexport function getConversationSubject(subject) {\r\n let displaySubject = isEmpty(subject) ? \"\" : subject.trim();\r\n return displaySubject;\r\n}\r\n\r\nexport function isGuid(guidText, version) {\r\n if (util.isString(guidText) === false) return false;\r\n if (isEmpty(guidText)) return false;\r\n let ver = version || \"all\";\r\n return validator.isUUID(guidText, ver);\r\n}\r\n\r\nexport function compareDates(a, b) {\r\n let ma = moment(a);\r\n let mb = moment(b);\r\n if (ma.isSame(mb)) {\r\n return 0;\r\n } else if (ma.isBefore(mb)) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n}\r\n\r\nexport function compareStrings(a, b) {\r\n return a.toLowerCase().localeCompare(b.toLowerCase());\r\n}\r\n\r\nexport function removeLeading(char, from) {\r\n let to = from || \"\";\r\n while (to.length > 0 && to[0] === char) {\r\n to = to.substring(1);\r\n }\r\n return to;\r\n}\r\n\r\nconst validEmailRegExp = new RegExp(\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n);\r\nexport function isEmailValid(emailAddress) {\r\n return validEmailRegExp.test(emailAddress);\r\n}\r\n\r\nexport function clone(item) {\r\n return JSON.parse(JSON.stringify(item));\r\n}\r\n\r\nexport function deepCompare(a, b) {\r\n let strA = JSON.stringify(a || {});\r\n let strB = JSON.stringify(b || {});\r\n return compareStrings(strA, strB);\r\n}\r\n\r\nexport function findIndex(array, match) {\r\n if (isEmpty(array)) {\r\n return -1;\r\n }\r\n let found = -1;\r\n for (let index = 0; index < array.length; index++) {\r\n let item = array[index];\r\n if (match(item)) {\r\n found = index;\r\n break;\r\n }\r\n }\r\n return found;\r\n}\r\n\r\nexport function find(array, match) {\r\n if (isEmpty(array)) {\r\n return undefined;\r\n }\r\n let found = undefined;\r\n for (let index = 0; index < array.length; index++) {\r\n let item = array[index];\r\n if (match(item)) {\r\n found = item;\r\n break;\r\n }\r\n }\r\n return found;\r\n}\r\n\r\nexport function parseDomain(email) {\r\n let domain = null;\r\n email.replace(/^(.*)@(.*)$/i, function($0, $1, $2) {\r\n domain = $2;\r\n });\r\n\r\n return domain;\r\n}\r\n\r\nexport function enableBSTooltips() {\r\n $('[data-toggle=\"tooltip\"]').tooltip();\r\n $('[data-toggle=\"tooltip\"]').on(\"show.bs.dropdown\", function() {\r\n $(this).tooltip(\"hide\");\r\n $(this).tooltip(\"disable\");\r\n });\r\n $('[data-toggle=\"tooltip\"]').on(\"hide.bs.dropdown\", function() {\r\n $(this).tooltip(\"enable\");\r\n });\r\n}\r\n\r\nexport function disableBSTooltips() {\r\n $('[data-toggle=\"tooltip\"]').off();\r\n}\r\n\r\nexport function getQueryParameters(url) {\r\n let u = url;\r\n if (u.startsWith(\"http\")) {\r\n u = url\r\n .split(\"?\")\r\n .splice(1)\r\n .join(\"?\");\r\n }\r\n return qs.parse(u, { ignoreQueryPrefix: true });\r\n}\r\n\r\n// It is common but not strictly to standards, to encode a space as a +\r\n// In particular, C# HttpUtility.UrlEncode uses + for space (so in C# we\r\n// should use Uri.EscapeDataString instead).\r\n// This function suppresses the exceptions that decodeURIComponent can throw.\r\nexport function decodeURLQueryString(singleParameter) {\r\n let x = singleParameter;\r\n try {\r\n x = singleParameter.replace(/\\+/g, '%20');\r\n x = decodeURIComponent(x);\r\n } catch (e) {\r\n window.logToConsole && console.log(e);\r\n }\r\n return x;\r\n}\r\n\r\nexport function formatCurrency(amount, currency = \"USD\") {\r\n if (isNaN(amount)) {\r\n return amount;\r\n }\r\n let currencyString = `${getCurrencySymbol(currency)} ${numeral(amount).format(\"0,0.00\")}`;\r\n if(currency === \"USD\" || currency === \"GBP\"){\r\n currencyString = currencyString.replace(\" \", \"\");\r\n }\r\n return currencyString;\r\n}\r\n\r\nexport function coalesceUserName(user = {}) {\r\n return user.fullName || user.givenName || user.familyName || user.email || \"\";\r\n}\r\n\r\n// 10,000 ticks from C# === one millisecond\r\nexport function ticksToReadableTime(ticks, returnNumber) {\r\n return millisecondsToReadableTime(ticks / 10000, returnNumber);\r\n}\r\n\r\nexport function millisecondsToReadableTime(milliseconds, returnNumber) {\r\n if (milliseconds === 0) {\r\n if (returnNumber) {\r\n return \"0 seconds\";\r\n }\r\n return \"---\";\r\n }\r\n\r\n moment.duration.fn.hackedHumanize = function(thres) {\r\n let save = {};\r\n for (let k in thres) {\r\n save[k] = moment.relativeTimeThreshold(k);\r\n }\r\n for (let k in thres) {\r\n moment.relativeTimeThreshold(k, thres[k]);\r\n }\r\n let res = this.humanize();\r\n for (let k in thres) {\r\n moment.relativeTimeThreshold(k, save[k]);\r\n }\r\n return res;\r\n };\r\n\r\n let duration = new moment.duration(milliseconds);\r\n\r\n return duration.hackedHumanize({ s: 120, m: 120, h: 120, d: 210, M: 1200 });\r\n}\r\n\r\nexport function millisecondsToReadableTimeHardCutoff(milliseconds, returnNumber) {\r\n if (milliseconds === 0) {\r\n if (returnNumber) {\r\n return \"0 seconds\";\r\n }\r\n return \"---\";\r\n }\r\n\r\n moment.duration.fn.hackedHumanize = function(thres) {\r\n let save = {};\r\n for (let k in thres) {\r\n save[k] = moment.relativeTimeThreshold(k);\r\n }\r\n for (let k in thres) {\r\n moment.relativeTimeThreshold(k, thres[k]);\r\n }\r\n let res = this.humanize();\r\n for (let k in thres) {\r\n moment.relativeTimeThreshold(k, save[k]);\r\n }\r\n return res;\r\n };\r\n\r\n let duration = new moment.duration(milliseconds);\r\n\r\n return duration.hackedHumanize({ s: 60, m: 60, h: 24, d: 30, M: 12 });\r\n}\r\n\r\nexport function getInvoiceNum(invoiceId) {\r\n let invoiceNum;\r\n if (isEmpty(invoiceId)) {\r\n return null;\r\n }\r\n if (invoiceId.SchemeID === \"CCLI\") {\r\n invoiceNum = invoiceId.Value.substring(invoiceId.Value.lastIndexOf(\":\") + 1) || \"\";\r\n } else {\r\n invoiceNum = invoiceId.Value;\r\n }\r\n\r\n return invoiceNum;\r\n}\r\n\r\nexport function createKey() {\r\n return [...arguments].join(\":\");\r\n}\r\n\r\nexport function includes(item, value) {\r\n if (item !== 0 && !item) {\r\n return false;\r\n }\r\n return item.indexOf(value) >= 0;\r\n}\r\n\r\nexport function createNewEvent(eventName) {\r\n let event;\r\n if (typeof Event === \"function\") {\r\n event = new Event(eventName);\r\n } else {\r\n event = document.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n return event;\r\n}\r\n\r\nexport function uniqueId() {\r\n return Math.random()\r\n .toString(36)\r\n .substr(2, 16);\r\n}\r\n\r\nexport function getFileType(fileName) {\r\n let fileType = \"\";\r\n let lastIndex = fileName.lastIndexOf(\".\");\r\n if (lastIndex) {\r\n fileType = fileName.substr(lastIndex + 1).toLowerCase();\r\n }\r\n\r\n const imgTypes = [\"jpeg\", \"jpg\", \"png\", \"apng\", \"gif\", \"svg\", \"bmp\", \"bmp ico\", \"png ico\"];\r\n const txtTypes = [\"txt\", \"rtf\"];\r\n const wordTypes = [\"doc\", \"docx\"];\r\n\r\n if (fileType === \"pdf\") {\r\n return \"pdf\";\r\n } else if (includes(imgTypes, fileType)) {\r\n return \"img\";\r\n } else if (includes(wordTypes, fileType)) {\r\n return \"word\";\r\n } else if (includes(txtTypes, fileType)) {\r\n return \"txt\";\r\n } else {\r\n return \"none\";\r\n }\r\n}\r\n\r\nexport function getFileNameIconClasses(fileName) {\r\n switch (getFileType(fileName)) {\r\n case \"pdf\":\r\n return \"attachment-pdf \" + Icons.filePdf;\r\n case \"txt\":\r\n return \"attachment-text \" + Icons.fileAlt;\r\n case \"word\":\r\n return \"attachment-word \" + Icons.fileWord;\r\n case \"img\":\r\n return \"attachment-image \" + Icons.fileImage;\r\n default:\r\n return \"attachment-text \" + Icons.fileAlt;\r\n }\r\n}\r\n\r\nexport function containsHtml(str) {\r\n return /<[a-z][\\s\\S]*>/i.test(str);\r\n}\r\n\r\nexport function htmlToText(htmlString) {\r\n let doc = new DOMParser().parseFromString(cleanHtml(htmlString), \"text/html\");\r\n return doc.body.textContent || \"\";\r\n}\r\n\r\nexport function cleanHtml(htmlString) {\r\n return DOMPurify.sanitize(htmlString);\r\n}\r\n\r\nexport function getReportsTicks(data) {\r\n let max = Math.max(null, ...data);\r\n let maxMoment = moment.duration(max / 10000);\r\n let maxUnit = \"seconds\";\r\n\r\n if (maxMoment.asDays() > 1) {\r\n maxUnit = \"days\";\r\n } else if (maxMoment.asHours() > 1) {\r\n maxUnit = \"hours\";\r\n } else if (maxMoment.asMinutes() > 1) {\r\n maxUnit = \"minutes\";\r\n }\r\n max = Math.ceil(maxMoment.as(maxUnit));\r\n let ticks = [];\r\n for (let i = 0; i <= 1; i += 0.25) {\r\n ticks.push(Math.round(max * i));\r\n }\r\n ticks = [...new Set(ticks)];\r\n ticks = ticks.map(tick => moment.duration(tick, maxUnit).asMilliseconds() * 10000);\r\n\r\n return ticks;\r\n}\r\n\r\nexport function spliceString(str, index, count, add) {\r\n // We cannot pass negative indexes directly to the 2nd slicing operation.\r\n if (index < 0) {\r\n index = str.length + index;\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n }\r\n\r\n return str.slice(0, index) + (add || \"\") + str.slice(index + count);\r\n}\r\n\r\nexport function formatTaskLabel(date, isCompleted) {\r\n if (isCompleted) {\r\n return {\r\n labelText: Resources.Completed,\r\n labelClassName: \"task-completed\"\r\n };\r\n }\r\n\r\n const daysDiff = moment()\r\n .diff(moment.utc(date).local(), \"days\")\r\n .toString();\r\n\r\n let labelClassName = \"overdue\";\r\n\r\n const labelText = moment\r\n .utc(date)\r\n .local()\r\n .calendar(null, {\r\n sameDay: function(now) {\r\n labelClassName = \"due-today\";\r\n return `[${Resources.DueToday}]`;\r\n },\r\n nextDay: function(now) {\r\n labelClassName = \"due-later\";\r\n return `[${Resources.DueTomorrow}]`;\r\n },\r\n nextWeek: function(now) {\r\n labelClassName = \"due-later\";\r\n return `[${Resources.Due}] dddd`;\r\n },\r\n lastDay: `[${Resources.OverdueByOneDay}]`,\r\n lastWeek: function(now) {\r\n return `[${Resources.OverdueBy(daysDiff)}]`;\r\n },\r\n sameElse: function(now) {\r\n if (this.isBefore(now)) {\r\n return `[${Resources.OverdueBy(daysDiff)}]`;\r\n }\r\n labelClassName = \"due-later\";\r\n return `[${Resources.Due}] L`;\r\n }\r\n });\r\n\r\n return { labelText, labelClassName };\r\n}\r\n\r\nexport function formatDimensionalDate(toFormat) {\r\n let date = moment(toFormat);\r\n\r\n if (date.isSame(moment(), \"d\")) {\r\n return date.format(\"LT\");\r\n } else if (date.isSame(moment(), \"year\")) {\r\n return date.format(\"MMM D\");\r\n } else {\r\n return date.format(\"l\");\r\n }\r\n}\r\n\r\nexport function formatDate(dateToFormat, isUTC = false, useTime = true) {\r\n let date = isUTC ? moment.utc(dateToFormat) : moment(dateToFormat);\r\n if (useTime) {\r\n let currentDate = moment();\r\n if (currentDate.diff(date) < 86400000 && currentDate.date() === date.date()) {\r\n if (currentDate.diff(date) < 3600000) {\r\n if (Math.abs(currentDate.diff(date)) <= 60000) {\r\n return Resources.JustNow;\r\n } else {\r\n return moment(date, \"ll\").fromNow();\r\n }\r\n } else {\r\n return date.format(\"h:mma\");\r\n }\r\n } else {\r\n return date.format(\"ll\");\r\n }\r\n } else {\r\n return date.format(\"ll\");\r\n }\r\n}\r\n\r\nexport function getNextBusinessDay(toBusinessDay) {\r\n // If given date is not a business day then it will return the next business day\r\n let date = moment(toBusinessDay);\r\n let dayOfWeek = date.day();\r\n switch (dayOfWeek) {\r\n case 6:\r\n return date.add(2, \"day\").format();\r\n case 0:\r\n return date.add(1, \"day\").format();\r\n default:\r\n return toBusinessDay;\r\n }\r\n}\r\n\r\nexport function capStringAtLength(string, length) {\r\n return string.length > length ? string.substring(0, length - 3) + \"...\" : string.substring(0, length);\r\n}\r\n\r\nexport function stringToSentenceCase(string) {\r\n /*eslint-disable */\r\n return string.toLowerCase().replace(/(^\\s*\\w|[\\.\\!\\?]\\s*\\w)/g, function(c) {\r\n return c.toUpperCase();\r\n });\r\n /*eslint-enable */\r\n}\r\n\r\nexport function updateSelectedRows(index, selectedRows, dataLength) {\r\n let newSelectedRows;\r\n if (Array.isArray(index)) {\r\n newSelectedRows = [...selectedRows];\r\n index.forEach(i => {\r\n newSelectedRows = updateSelectedRows(i, newSelectedRows, dataLength);\r\n });\r\n return newSelectedRows;\r\n } else if (index === \"all\") {\r\n if (selectedRows.length === dataLength) {\r\n newSelectedRows = [];\r\n } else {\r\n let newArray = [];\r\n for (let i = 0; i < dataLength; i++) {\r\n newArray.push(i);\r\n }\r\n newSelectedRows = newArray;\r\n }\r\n newSelectedRows.sort((a, b) => a > b);\r\n\r\n return newSelectedRows;\r\n } else {\r\n newSelectedRows = [...selectedRows];\r\n let indexInSelectedRows = findIndex(selectedRows, row => equal(row, index));\r\n if (indexInSelectedRows > -1) {\r\n newSelectedRows.splice(indexInSelectedRows, 1);\r\n } else {\r\n newSelectedRows.push(index);\r\n }\r\n\r\n newSelectedRows.sort((a, b) => a - b);\r\n return newSelectedRows;\r\n }\r\n}\r\n\r\nexport function getReadableFromUBLPaymentType(paymentType) {\r\n let values = UBLPaymentTypeResources.CodeList.SimpleCodeList.Row;\r\n let readableUBL = find(values, ublType => ublType.Value[0].SimpleValue === paymentType) || {};\r\n return (readableUBL.Value || [{}, {}])[1].SimpleValue;\r\n}\r\n\r\nexport function updateSort(sortBy, currentSortBy, currentSortDirection, updateFunction) {\r\n if (currentSortBy.toLowerCase() !== sortBy.toLowerCase()) {\r\n updateFunction(sortBy, \"desc\");\r\n }\r\n else if (currentSortDirection.toLowerCase() === \"desc\") {\r\n updateFunction(sortBy, \"asc\");\r\n }\r\n else if (currentSortDirection.toLowerCase() === \"asc\") {\r\n updateFunction(sortBy, \"desc\");\r\n }\r\n}\r\n\r\nexport function getAttatchedDocumentLedgerContent() {\r\n return `${generateGUID()}`;\r\n}\r\n\r\nexport function generateGUID() {\r\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>\r\n (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)\r\n );\r\n}\r\n\r\nexport function openUrlForDownload(url, fileName) {\r\n // for non-IE\r\n if (!window.ActiveXObject) {\r\n let save = document.createElement(\"a\");\r\n save.href = url;\r\n save.target = \"_blank\";\r\n let filename = url.substring(url.lastIndexOf(\"/\") + 1);\r\n save.download = fileName || filename;\r\n if (navigator.userAgent.toLowerCase().match(/(ipad|iphone|safari)/) && navigator.userAgent.search(\"Chrome\") < 0) {\r\n document.location = save.href;\r\n // window event not working here\r\n } else {\r\n let evt = new MouseEvent(\"click\", {\r\n view: window,\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n save.dispatchEvent(evt);\r\n (window.URL || window.webkitURL).revokeObjectURL(save.href);\r\n }\r\n }\r\n\r\n // for IE < 11\r\n else if (!!window.ActiveXObject && document.execCommand) {\r\n let _window = window.open(url, \"_blank\");\r\n _window.document.close();\r\n _window.document.execCommand(\"SaveAs\", true, fileName || url);\r\n _window.close();\r\n }\r\n}\r\n\r\nexport function saveBlobAsDownload(blob, fileName) {\r\n saveAs(new Blob([blob]), fileName);\r\n}\r\n\r\nexport function onBlurCheckFocusable(cb) {\r\n setTimeout(() => {\r\n const activeIsChildOfFocusable = Array.from(document.getElementsByClassName(\"focusable\")).some(el =>\r\n el.contains(document.activeElement)\r\n );\r\n const activeisFocusable =\r\n !isEmpty(document.activeElement.getAttribute(\"class\")) &&\r\n includes(document.activeElement.getAttribute(\"class\"), \"focusable\");\r\n\r\n if ((activeIsChildOfFocusable || activeisFocusable) && document.hasFocus()) {\r\n return;\r\n }\r\n\r\n cb();\r\n }, 1);\r\n}\r\n\r\nexport function debounce(func, wait) {\r\n let timeout;\r\n return function(...args) {\r\n const context = this;\r\n if (timeout) clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n timeout = null;\r\n func.apply(context, args);\r\n }, wait);\r\n };\r\n}\r\n\r\nexport function sortObjects(objects, sortBy, sortDirection, sortByType = \"string\") {\r\n if (sortByType === \"date\") {\r\n return [...objects].sort((a, b) => {\r\n if (a[sortBy] > b[sortBy]) {\r\n return moment().compareDates(a, b);\r\n } else {\r\n return -moment().compareDates(a, b);\r\n }\r\n });\r\n }\r\n return [...objects].sort((a, b) => {\r\n if (a[sortBy] > b[sortBy]) {\r\n if (sortDirection === \"desc\") {\r\n return 1;\r\n }\r\n return -1;\r\n } else {\r\n if (sortDirection === \"desc\") {\r\n return -1;\r\n }\r\n return 1;\r\n }\r\n });\r\n}\r\n\r\nexport function formatPhoneNumber(str) {\r\n //Filter only numbers from the input\r\n let cleaned = (\"\" + str).replace(/\\D/g, \"\");\r\n\r\n //Check if the input is of correct\r\n let match = cleaned.match(/^(1|)?(\\d{3})(\\d{3})(\\d{4})$/);\r\n\r\n if (match) {\r\n //Remove the matched extension code\r\n //Change this to format for any country code.\r\n let intlCode = match[1] ? \"+1 \" : \"\";\r\n return [intlCode, \"(\", match[2], \") \", match[3], \"-\", match[4]].join(\"\");\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function getCurrencySymbol(currencyId) {\r\n if (isEmpty(currencyId)) {\r\n return \"\";\r\n }\r\n\r\n const currency_symbols = {\r\n USD: \"$\", // US Dollar\r\n CAD: \"$\", // Canadian Dollar\r\n EUR: \"€\", // Euro\r\n CRC: \"₡\", // Costa Rican Colón\r\n GBP: \"£\", // British Pound Sterling\r\n ILS: \"₪\", // Israeli New Sheqel\r\n INR: \"₹\", // Indian Rupee\r\n JPY: \"¥\", // Japanese Yen\r\n KRW: \"₩\", // South Korean Won\r\n NGN: \"₦\", // Nigerian Naira\r\n PHP: \"₱\", // Philippine Peso\r\n PLN: \"zł\", // Polish Zloty\r\n PYG: \"₲\", // Paraguayan Guarani\r\n THB: \"฿\", // Thai Baht\r\n UAH: \"₴\", // Ukrainian Hryvnia\r\n VND: \"₫\" // Vietnamese Dong\r\n };\r\n\r\n return currency_symbols[currencyId] || currencyId;\r\n}\r\n\r\nexport function copyToClipboard(str) {\r\n let dummy = document.createElement(\"input\");\r\n document.body.appendChild(dummy);\r\n dummy.setAttribute(\"id\", \"dummy_id\");\r\n document.getElementById(\"dummy_id\").value = str;\r\n dummy.select();\r\n document.execCommand(\"copy\");\r\n document.body.removeChild(dummy);\r\n}\r\n\r\nexport function getATCEnvUrl() {\r\n if (isProduction()) {\r\n return \"https://my.anytimecollect.com/\";\r\n }\r\n if (isQA()) {\r\n return \"https://devclient.anytimecollect.com/WebClient_Azure_qa\";\r\n }\r\n if (isStaging()) {\r\n return \"https://devclient.anytimecollect.com/WebClient_Azure_devqa\";\r\n }\r\n return \"https://devclient.anytimecollect.com/WebClient_Azure_dev\";\r\n}\r\n\r\nexport function getRRule(date) {\r\n let onDate = moment(date);\r\n let onDateUTC = onDate.utc();\r\n let rule = new RRule({\r\n dtstart: moment.utc().format(),\r\n freq: RRule.YEARLY,\r\n count: 1,\r\n bymonth: onDateUTC.month() + 1,\r\n bymonthday: onDateUTC.date(),\r\n byhour: onDateUTC.hours(),\r\n byminute: onDateUTC.minutes(),\r\n bysecond: onDateUTC.seconds()\r\n });\r\n return rule.toString();\r\n}\r\n\r\nexport function buildRequestUrl(baseUrl, queryParams = []) {\r\n let requestString = baseUrl;\r\n\r\n queryParams.forEach((param, i) => {\r\n if (i === 0) {\r\n requestString += `?$${param.name}=${param.value}`;\r\n } else {\r\n requestString += `&$${param.name}=${param.value}`;\r\n }\r\n });\r\n\r\n return requestString;\r\n}\r\n\r\n/**\r\n * @description: This function determines if we need to set a clickback route when the user clicks the 'go back' button. We may not want to under\r\n * certain conditions. For example, we don't want to set one if the user is viewing a conversation and tries to go back to the current\r\n * activities view.\r\n */\r\nexport function needClickBackRoute(pathName) {\r\n const lastForwardSlash = pathName.lastIndexOf(\"/\");\r\n let needClickBack = false;\r\n let currentView;\r\n\r\n if (lastForwardSlash > -1) {\r\n currentView = pathName.substr(lastForwardSlash + 1).toLowerCase();\r\n\r\n // These represent the 7 tabs available on the account view under My Network, where there isn't a definitive place to go back to so we need to\r\n // specify something\r\n if (currentView === \"activities\" || currentView === \"open-invoices\" || currentView === \"closed-invoices\" || currentView === \"payments\" ||\r\n currentView === \"profile\" || currentView === \"contacts\" || currentView === \"documents\") {\r\n needClickBack = true;\r\n }\r\n }\r\n\r\n return needClickBack;\r\n}\r\n\r\nexport function getNoDocumentsGraphic() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport function getErrorGraphic() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import Axios from \"axios\";\r\n\r\nimport { getConfig, isEmpty } from \"./utils\";\r\n\r\nexport const dataAxios = Axios.create({\r\n headers: { \"Cache-Control\": \"no-cache\", Pragma: \"no-cache\", Expires: \"-1\" }\r\n});\r\n\r\nfunction defaultOptions() {\r\n let config = getConfig();\r\n let headers = {};\r\n if (config.AccessToken) {\r\n headers[\"Authorization\"] = `Bearer ${config.AccessToken}`;\r\n }\r\n return { headers: headers };\r\n}\r\n\r\nfunction mergeOptions(options) {\r\n let def = defaultOptions();\r\n Object.keys(options || {}).forEach(key => {\r\n def[key] = def[key] ? { ...(def[key] || {}), ...options[key] } : options[key];\r\n });\r\n return def;\r\n}\r\n\r\ndataAxios.interceptors.request.use(\r\n function(config) {\r\n if (navigator.onLine === false) {\r\n return Promise.reject(new Error(\"Network error\"));\r\n }\r\n if (config.method === \"get\") {\r\n config.retry = 4;\r\n }\r\n return config;\r\n },\r\n function(error) {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\ndataAxios.interceptors.response.use(undefined, function axiosRetryInterceptor(err) {\r\n const RETRY_DELAYS = [1, 2, 4, 8, 16];\r\n const config = err.config;\r\n\r\n const isRetryable =\r\n !isEmpty(config) && !isEmpty(config.retry) && !isEmpty(err.response) && err.response.status >= 500;\r\n // If config does not exist or the retry option is not set, reject\r\n if (isRetryable !== true) {\r\n return Promise.reject(err);\r\n }\r\n\r\n // Set the variable for keeping track of the retry count\r\n config.__retryCount = config.__retryCount || 0;\r\n\r\n // Check if we've maxed out the total number of retries\r\n if (config.__retryCount >= config.retry) {\r\n // Reject with the error\r\n return Promise.reject(err);\r\n }\r\n\r\n const retryDelay = RETRY_DELAYS[config.__retryCount];\r\n // Increase the retry count\r\n config.__retryCount += 1;\r\n\r\n // Create new promise to handle exponential backoff\r\n const backoff = new Promise(function(resolve) {\r\n setTimeout(function() {\r\n resolve();\r\n }, retryDelay * 1000);\r\n });\r\n\r\n // Return the promise in which recalls axios to retry the request\r\n return backoff.then(function() {\r\n return dataAxios(config);\r\n });\r\n});\r\n\r\nfunction get(url, options) {\r\n return dataAxios.get(getConfig().apiEndpoint + \"/\" + url, mergeOptions(options));\r\n}\r\n\r\nfunction deleteItem(url, options) {\r\n return dataAxios.delete(getConfig().apiEndpoint + \"/\" + url, mergeOptions(options));\r\n}\r\n\r\nfunction createItem(url, data, options) {\r\n return dataAxios.post(getConfig().apiEndpoint + \"/\" + url, data, mergeOptions(options));\r\n}\r\n\r\nfunction editItem(url, data, options) {\r\n return dataAxios.put(getConfig().apiEndpoint + \"/\" + url, data, mergeOptions(options));\r\n}\r\n\r\nexport const swrFetcher = url => get(url).then(res => res.data);\r\n\r\nexport default {\r\n get,\r\n put: editItem,\r\n post: createItem,\r\n delete: deleteItem\r\n};\r\n","import Resources from \"../lib/resources\";\r\nimport data from \"../lib/data\";\r\n\r\nexport const actions = {\r\n CLEAR_DATA: \"CLEAR_DATA\",\r\n SELECT_COMPANY: \"SELECT_COMPANY\",\r\n SHOW_TOAST: \"SHOW_TOAST\",\r\n HIDE_TOAST: \"HIDE_TOAST\",\r\n NETWORK_ERROR: \"NETWORK_ERROR\",\r\n CLEAR_NETWORK_ERROR: \"CLEAR_NETWORK_ERROR\",\r\n UPDATE_PAGE_ROW_COUNT: \"UPDATE_PAGE_ROW_COUNT\",\r\n UPDATE_API_STATUS: \"UPDATE_API_STATUS\"\r\n};\r\n\r\nconst hideToast = () => (dispatch, getState) => {\r\n const state = getState().general;\r\n clearTimeout(state.toastTimeout);\r\n dispatch({ type: actions.HIDE_TOAST });\r\n};\r\n\r\nexport const showToast = toastInfo => (dispatch, getState) => {\r\n clearTimeout(getState().general.toastTimeout);\r\n const toastTimeout = setTimeout(() => {\r\n dispatch({ type: actions.HIDE_TOAST });\r\n }, toastInfo.timeout || 8000);\r\n dispatch({ type: actions.SHOW_TOAST, toastInfo, toastTimeout });\r\n};\r\n\r\nexport const networkError = () => dispatch => {\r\n dispatch(\r\n showToast({\r\n // Timeout is longer than poll interval so toast won't disappearbetween polling events\r\n timeout: 16000,\r\n text: Resources.NoNetworkMessage,\r\n type: \"orange\",\r\n linkHidden: true\r\n })\r\n );\r\n dispatch({ type: actions.NETWORK_ERROR });\r\n};\r\n\r\nexport const clearNetworkError = () => dispatch => {\r\n dispatch(\r\n showToast({\r\n timeout: 4000,\r\n text: Resources.YoureBack,\r\n type: \"green\",\r\n linkHidden: true\r\n })\r\n );\r\n dispatch({ type: actions.CLEAR_NETWORK_ERROR });\r\n // Force the app to refetch to guarantee state is updated\r\n dispatch({ type: actions.CLEAR_DATA });\r\n};\r\n\r\nexport const isAPILive = () => dispatch => {\r\n return data\r\n .get(`swagger/index.html`)\r\n .then(result => {\r\n return dispatch({ type: actions.UPDATE_API_STATUS, isAPILive: result.status === 200 });\r\n })\r\n .catch(error => {\r\n setTimeout(() => dispatch(isAPILive()), 30000);\r\n return dispatch({ type: actions.UPDATE_API_STATUS, isAPILive: false });\r\n });\r\n};\r\n\r\nexport const selectCompany = (companyId, primaryCompanyId) => (dispatch) => {\r\n dispatch({ type: actions.SELECT_COMPANY, companyId, primaryCompanyId });\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n clearData: () => {\r\n dispatch({ type: actions.CLEAR_DATA });\r\n },\r\n selectCompany: (companyId, primaryCompanyId) => {\r\n dispatch(selectCompany(companyId, primaryCompanyId));\r\n },\r\n networkError: () => {\r\n dispatch(networkError());\r\n },\r\n clearNetworkError: () => {\r\n dispatch(clearNetworkError());\r\n },\r\n showToast: toastInfo => {\r\n dispatch(showToast(toastInfo));\r\n },\r\n hideToast: () => {\r\n dispatch(hideToast());\r\n },\r\n updatePageRowCount: newCount => {\r\n dispatch({ type: actions.UPDATE_PAGE_ROW_COUNT, pageRowCount: newCount });\r\n },\r\n isAPILive: () => {\r\n return dispatch(isAPILive());\r\n }\r\n});\r\n","import { actions as GeneralActions } from \"./general-actions\";\n\nexport const actions = {\n ...GeneralActions,\n ...{\n SHOW_MODAL: \"SHOW_MODAL\",\n HIDE_MODAL: \"HIDE_MODAL\",\n SHOW_FLYOUT: \"SHOW_FLYOUT\",\n HIDE_FLYOUT: \"HIDE_FLYOUT\",\n SHOW_NOTIFICATION: \"SHOW_NOTIFICATION\",\n HIDE_NOTIFICATION: \"HIDE_NOTIFICATION\",\n UPDATE_NOTIFICATION_PROPS: \"UPDATE_NOTIFICATION_PROPS\"\n }\n};\n\nexport const hideModal = () => dispatch => {\n return dispatch({ type: actions.HIDE_MODAL });\n};\n\nexport const displayNotification = (notificationType, notificationProps) => dispatch => {\n dispatch({ type: actions.SHOW_NOTIFICATION, notificationType, notificationProps });\n};\n\nexport const dispatchToProps = dispatch => ({\n displayModal: (modalType, modalProps) => {\n return dispatch({ type: actions.SHOW_MODAL, modalType, modalProps });\n },\n hideModal: () => {\n return dispatch(hideModal());\n },\n displayFlyout: (flyoutType, flyoutProps) => {\n return dispatch({ type: actions.SHOW_FLYOUT, flyoutType, flyoutProps });\n },\n hideFlyout: () => {\n return dispatch({ type: actions.HIDE_FLYOUT });\n },\n displayNotification: (notificationType, notificationProps) => {\n return dispatch({ type: actions.SHOW_NOTIFICATION, notificationType, notificationProps });\n },\n hideNotification: () => {\n return dispatch({ type: actions.HIDE_NOTIFICATION });\n },\n updateNotificationProps: update => {\n dispatch({ type: actions.UPDATE_NOTIFICATION_PROPS, notificationProps: update });\n }\n});\n","import { actions as GeneralActions, networkError, isAPILive } from \"./general-actions\";\r\nimport { actions as ModalActions } from \"./modal-actions\";\r\nimport store from \"./store\";\r\n\r\nimport { event as FullStoryEvent } from \"react-fullstory\";\r\n\r\nimport Resources from \"../lib/resources\";\r\nimport { updateConfig, isLocalHost, isProduction } from \"../lib/utils\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...ModalActions,\r\n ...{\r\n RAISE_ERROR: \"RAISE_ERROR\"\r\n }\r\n};\r\n\r\nexport function raiseError(message, customContent = null) {\r\n const errorMessage =\r\n message ||\r\n \"TODO: We goofed! Sorry about that. Please try again or contact support if you continue to have trouble.\";\r\n store.dispatch({ type: actions.SHOW_MODAL, modalType: \"errorModal\", modalProps: { errorMessage, customContent } });\r\n}\r\n\r\nexport function raiseValidationError(error) {\r\n const errorMessage = Resources.TheFollowingValidationErrorsOccurred;\r\n\r\n store.dispatch({\r\n type: actions.SHOW_MODAL,\r\n modalType: \"errorModal\",\r\n modalProps: { errorMessage, validationErrors: (error.response || {}).data }\r\n });\r\n}\r\n\r\nexport function handlePromiseError(error = {}, message, resource, validationHandler) {\r\n if (window.logToConsole) console.log(error.message);\r\n let response = error.response;\r\n if (window.logToConsole) console.log(response);\r\n\r\n if (isLocalHost() !== true && isProduction()) {\r\n FullStoryEvent(\"error\", { ...error, message, resource });\r\n }\r\n\r\n if (error.message === \"Network error\") {\r\n store.dispatch(networkError());\r\n } else if (error.response) {\r\n switch (error.response.status) {\r\n case 400:\r\n if (validationHandler) {\r\n validationHandler();\r\n } else {\r\n raiseError(message);\r\n }\r\n break;\r\n case 401:\r\n window.localStorage.removeItem(\"saml\");\r\n window.localStorage.removeItem(\"saml-provider\");\r\n window.localStorage.removeItem(\"cust-page\");\r\n window.localStorage.removeItem(\"id_token\");\r\n window.localStorage.removeItem(\"logged_in\");\r\n updateConfig({ AccessToken: undefined });\r\n store.dispatch({ type: actions.CLEAR_DATA });\r\n\r\n window.location = \"/#/login\";\r\n break;\r\n case 403:\r\n const methods = { get: \"access\", put: \"create or change\", post: \"change\", delete: \"delete\" };\r\n let affectedResource = resource || \"resource\";\r\n raiseError(Resources.YouDontHavePermissions(methods[error.config.method] || \"change\", affectedResource));\r\n break;\r\n case 404:\r\n raiseError(message);\r\n break;\r\n case 502:\r\n isAPILive();\r\n break;\r\n default:\r\n raiseError(message);\r\n }\r\n } else if (error.name === \"ConversationEditorError\") {\r\n store.dispatch({\r\n type: actions.SHOW_MODAL,\r\n modalType: \"errorModal\",\r\n modalProps: { errorMessage: error.message, title: error.title }\r\n });\r\n } else {\r\n raiseError(message);\r\n }\r\n\r\n return error;\r\n}\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n raiseError: message => {\r\n raiseError(message);\r\n }\r\n});\r\n","import data from \"../lib/data\";\r\nimport Resources from \"../lib/resources\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport { getConfig, isEmpty } from \"../lib/utils\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n GETTING_COMPANY_INFO: \"GETTING_COMPANY_INFO\",\r\n GOT_COMPANY_INFO: \"GOT_COMPANY_INFO\",\r\n GET_COMPANY_INFO_FAILED: \"GET_COMPANY_INFO_FAILED\",\r\n\r\n GETTING_COMPANY: \"GETTING_COMPANY\",\r\n GOT_COMPANY: \"GET_COMPANY\",\r\n GET_COMPANY_FAILED: \"GET_COMPANY_FAILED\",\r\n\r\n POSTING_COMPANY_INFO: \"POSTING_COMPANY_INFO\",\r\n POSTED_COMPANY_INFO: \"POSTED_COMPANY_INFO\",\r\n POST_COMPANY_INFO_FAILED: \"POST_COMPANY_INFO_FAILED\",\r\n\r\n GETTING_COMPANY_INDENTIFIERS: \"GETTING_COMPANY_IDENTIFIERS\",\r\n GOT_COMPANY_INDENTIFIERS: \"GOT_COMPANY_IDENTIFIERS\",\r\n GET_COMPANY_INDENTIFIERS_FAILED: \"GET_COMPANY_IDENTIFIERS_FAILED\",\r\n\r\n DELETING_COMPANY_INDENTIFIER: \"DELETING_COMPANY_INDENTIFIER\",\r\n DELETED_COMPANY_INDENTIFIER: \"DELETED_COMPANY_INDENTIFIER\",\r\n DELETE_COMPANY_INDENTIFIER_FAILED: \"DELETE_COMPANY_INDENTIFIER_FAILED\",\r\n\r\n PUTTING_COMPANY_INDENTIFIER: \"PUTTING_COMPANY_INDENTIFIER\",\r\n PUT_COMPANY_INDENTIFIER: \"PUT_COMPANY_INDENTIFIER\",\r\n PUT_COMPANY_INDENTIFIER_FAILED: \"PUT_COMPANY_INDENTIFIER_FAILED\",\r\n\r\n POSTING_COMPANY_REMAP: \"POSTING_COMPANY_REMAP\",\r\n POSTED_COMPANY_REMAP: \"POSTED_COMPANY_REMAP\",\r\n POST_COMPANY_REMAP_FAILED: \"POST_COMPANY_REMAP_FAILED\",\r\n\r\n POSTING_COMPANY_SPAM: \"POSTING_COMPANY_SPAM\",\r\n POSTED_COMPANY_SPAM: \"POSTED_COMPANY_SPAM\",\r\n POST_COMPANY_SPAM_FAILED: \"POST_COMPANY_SPAM_FAILED\",\r\n\r\n POSTING_ADDRESS_SPAM: \"POSTING_ADDRESS_SPAM\",\r\n POSTED_ADDRESS_SPAM: \"POSTED_ADDRESS_SPAM\",\r\n POST_ADDRESS_SPAM_FAILED: \"POST_ADDRESS_SPAM_FAILED\",\r\n\r\n FETCHING_SPAM_ADDRESS_LIST: \"FETCH_SPAM_ADDRESS_LIST\",\r\n FETCHED_SPAM_ADDRESS_LIST: \"FETCHED_SPAM_ADDRESS_LIST\",\r\n FETCH_SPAM_ADDRESS_FAILED: \"FETCH_SPAM_ADDRESS_FAILED\",\r\n\r\n DELETING_ADDRESS_FROM_SPAM_LIST: \"DELETING_ADDRESS_FROM_SPAM_LIST\",\r\n DELETED_ADDRESS_FROM_SPAM_LIST: \"DELETED_ADDRESS_FROM_SPAM_LIST\",\r\n DELETE_ADDRESS_FROM_SPAM_LIST_FAILED: \"DELETE_ADDRESS_FROM_SPAM_LIST_FAILED\"\r\n }\r\n};\r\n\r\nlet GET_COMPANY_INFO_PROMISE = {};\r\nconst fetchCompanyInfo = companyId => (dispatch, getState) => {\r\n let state = getState().companies;\r\n if (isEmpty(companyId)) {\r\n return null;\r\n }\r\n if (state.gettingCompanyInfo[companyId]) return GET_COMPANY_INFO_PROMISE[companyId];\r\n dispatch({ type: actions.GETTING_COMPANY_INFO, companyId: companyId });\r\n GET_COMPANY_INFO_PROMISE[companyId] = Promise.all([\r\n data.get(`v1/api/account/company/${companyId}/info`),\r\n data.get(`v1/api/connector/email/integrations/${companyId}`)\r\n ])\r\n .then(arr => {\r\n delete GET_COMPANY_INFO_PROMISE[companyId];\r\n dispatch({\r\n type: actions.GOT_COMPANY_INFO,\r\n companyId: companyId,\r\n companyInfo: arr[0].data,\r\n connectorEmails: arr[1].data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_COMPANY_INFO_FAILED, companyId: companyId });\r\n handlePromiseError(response, Resources.CompanyInfoFetchFailure, \"company info\");\r\n });\r\n return GET_COMPANY_INFO_PROMISE[companyId];\r\n};\r\n\r\nconst getCompanyInfo = companyId => (dispatch, getState) => {\r\n let companies = getState().companies;\r\n if (\r\n companies.fetchedCompanyInfo[companyId] !== true &&\r\n companies.gettingCompanyInfo[companyId] !== true &&\r\n companies.fetchingCompanyInfoFailed !== true\r\n ) {\r\n dispatch(fetchCompanyInfo(companyId));\r\n return {};\r\n }\r\n let companyInfo = { ...(companies.companyInfo[companyId] || {}) };\r\n companyInfo.connectorEmail = {};\r\n companyInfo.connectorEmail.synthetic = {};\r\n companyInfo.connectorEmail.remote = {};\r\n (companyInfo.connectorEmails || []).forEach(e => {\r\n let synthetic = `${e.localPart}@${getConfig().emailDomain}`;\r\n companyInfo.connectorEmail.synthetic[e.perspectiveId] = synthetic;\r\n companyInfo.connectorEmail.remote[e.perspectiveId] = e.companyForwardingAddress || \"\";\r\n });\r\n\r\n return companyInfo;\r\n};\r\n\r\nconst isCompanyUnowned = companyId => (dispatch, getState) => {\r\n let companies = getState().companies;\r\n\r\n if (companies.gettingCompany[companyId] === true) {\r\n return false;\r\n }\r\n if (companies.fetchedCompany[companyId] === true) {\r\n return true;\r\n }\r\n if (companies.failedCompany[companyId] === true) {\r\n return false;\r\n }\r\n dispatch({ type: actions.GETTING_COMPANY, companyId });\r\n data\r\n .get(`v1/api/account/company/${companyId}`)\r\n .then(e => {\r\n dispatch({ type: actions.GOT_COMPANY, companyId });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.GET_COMPANY_FAILED, companyId });\r\n });\r\n return false;\r\n};\r\n\r\nconst postCompanyInfo = (companyInfo, companyId) => (dispatch, getState) => {\r\n let companyInfoPayload = {\r\n \"Contact Numbers\": {\r\n \"AP Phone\": companyInfo.apPhone,\r\n \"AR Phone\": companyInfo.arPhone\r\n },\r\n Address: {\r\n Line1: companyInfo.address.Line1,\r\n // Line2: companyInfo.line2,\r\n // Line3: companyInfo.line3,\r\n Locality: companyInfo.address.Locality,\r\n Region: companyInfo.address.Region,\r\n Country: companyInfo.address.Country,\r\n PostalCode: companyInfo.address.PostalCode\r\n },\r\n URL: companyInfo.url,\r\n TIN: companyInfo.TIN,\r\n \"W9 File\": companyInfo.w9File,\r\n \"W8 BEN File\": companyInfo.w8BenFile,\r\n apEmail: companyInfo.apEmail,\r\n arEmail: companyInfo.arEmail\r\n };\r\n\r\n dispatch({ type: actions.POSTING_COMPANY_INFO, companyId });\r\n data\r\n .post(`v1/api/account/company/${companyId}`, {\r\n companyName: companyInfo.companyName\r\n })\r\n .then(e => {\r\n if (!isEmpty(companyInfoPayload)) {\r\n data\r\n .post(`v1/api/account/company/${companyId}/info`, companyInfoPayload)\r\n .then(e => {\r\n dispatch({ type: actions.POSTED_COMPANY_INFO, companyId });\r\n dispatch(fetchCompanyInfo(companyId));\r\n })\r\n .catch(rejection => {\r\n dispatch(fetchCompanyInfo(companyId));\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Updating the company info has failed but the name has been changed. Make sure the company emails are filled in.\",\r\n \"company info\"\r\n );\r\n dispatch({ type: actions.POST_COMPANY_INFO_FAILED, companyId });\r\n });\r\n }\r\n })\r\n .catch(rejection => {\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Updating the company info has failed. Make sure the company name and emails are filled in.\",\r\n \"company info\"\r\n );\r\n dispatch({ type: actions.POST_COMPANY_INFO_FAILED, companyId });\r\n });\r\n};\r\n\r\nconst postCompanyName = (companyName, companyId) => (dispatch, getState) => {\r\n dispatch({ type: actions.POSTING_COMPANY_INFO, companyId });\r\n return data\r\n .post(`v1/api/account/company/${companyId}`, { companyName: companyName })\r\n .then(e => {\r\n dispatch({ type: actions.POSTED_COMPANY_INFO, companyId });\r\n dispatch(fetchCompanyInfo(companyId));\r\n })\r\n .catch(rejection => {\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Updating the company info has failed. Make sure the company name and emails are filled in.\",\r\n \"company name\"\r\n );\r\n dispatch({ type: actions.POST_COMPANY_INFO_FAILED, companyId });\r\n });\r\n};\r\n\r\nconst getCompanyIdentifiers = companyId => (dispatch, getState) => {\r\n let companies = getState().companies;\r\n\r\n if (\r\n (companies.gettingCompanyIdentifiers[companyId] && isEmpty(companies.companyIdentifiers[companyId])) ||\r\n isEmpty(companyId)\r\n ) {\r\n return null;\r\n }\r\n if (companies.fetchedCompanyIdentifiers[companyId] === true || companies.gettingCompanyIdentifiers[companyId]) {\r\n return companies.companyIdentifiers[companyId];\r\n }\r\n if (companies.failedCompanyIdentifiers[companyId] === true) {\r\n return null;\r\n }\r\n dispatch(fetchCompanyIdentifiers(companyId));\r\n};\r\n\r\nconst fetchCompanyIdentifiers = companyId => (dispatch, getState) => {\r\n if (isEmpty(companyId)) {\r\n return null;\r\n }\r\n dispatch({ type: actions.GETTING_COMPANY_INDENTIFIERS, companyId });\r\n return data\r\n .get(`v1/api/account/company/${companyId}/identifiers`)\r\n .then(e => {\r\n dispatch({\r\n type: actions.GOT_COMPANY_INDENTIFIERS,\r\n companyId,\r\n companyIdentifiers: e.data\r\n });\r\n return true;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.GET_COMPANY_INDENTIFIERS_FAILED, companyId });\r\n handlePromiseError(error, \"TODO: Getting company identifiers failed.\", \"company identifiers\");\r\n throw error;\r\n });\r\n};\r\n\r\nconst deleteCompanyIdentifier = (emailConnectorId, connectorCompanyPartyIdentifierId) => (dispatch, getState) => {\r\n dispatch({ type: actions.DELETING_COMPANY_INDENTIFIER, connectorCompanyPartyIdentifierId });\r\n return data\r\n .delete(`v1/api/connector/${emailConnectorId}/identifier/${connectorCompanyPartyIdentifierId}`)\r\n .then(e => {\r\n dispatch({ type: actions.DELETED_COMPANY_INDENTIFIER, connectorCompanyPartyIdentifierId });\r\n return true;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"TODO: Deleting company identifier has failed.\", \"company identifier\");\r\n dispatch({ type: actions.DELETE_COMPANY_INDENTIFIER_FAILED, connectorCompanyPartyIdentifierId });\r\n throw error;\r\n });\r\n};\r\n\r\nconst putCompanyIdentifier = (emailConnectorId, sourceCompanyId, identifiedCompanyId, identifier) => (\r\n dispatch,\r\n getState\r\n) => {\r\n if (isEmpty(sourceCompanyId) || isEmpty(emailConnectorId) || isEmpty(identifiedCompanyId) || isEmpty(identifier)) {\r\n return null;\r\n }\r\n dispatch({ type: actions.PUTTING_COMPANY_INDENTIFIER });\r\n return data\r\n .put(`v1/api/connector/${emailConnectorId}/identifier`, { sourceCompanyId, identifiedCompanyId, identifier })\r\n .then(e => {\r\n dispatch({ type: actions.PUT_COMPANY_INDENTIFIER });\r\n return true;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"TODO: Adding company identifier has failed.\", \"company identifier\");\r\n dispatch({ type: actions.PUT_COMPANY_INDENTIFIER_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nconst postCompanyRemap = (companyIdFrom, companyIdTo) => (dispatch, getState) => {\r\n dispatch({ type: actions.POSTING_COMPANY_REMAP });\r\n return data\r\n .post(`v1/api/account/company/merge/${companyIdFrom}/with/${companyIdTo}`)\r\n .then(e => {\r\n dispatch({ type: actions.POSTED_COMPANY_REMAP, companyIdTo });\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"TODO: Company remap has failed.\", \"company mapping\");\r\n dispatch({ type: actions.POST_COMPANY_INFO_FAILED });\r\n });\r\n};\r\n\r\nconst postCompanyIsSpam = (companyId, companyIdSpam) => (dispatch, getState) => {\r\n dispatch({ type: actions.POSTING_COMPANY_SPAM });\r\n return data\r\n .put(`v1/api/connector/email/config/${companyId}/spam/company`, `\"${companyIdSpam}\"`, {\r\n headers: { \"Content-Type\": \"application/json\" }\r\n })\r\n .then(e => {\r\n dispatch({ type: actions.POSTED_COMPANY_SPAM });\r\n })\r\n .catch(rejection => {\r\n handlePromiseError(rejection, \"TODO: Designating company as spam has failed.\", \"spam designation\");\r\n dispatch({ type: actions.POST_COMPANY_SPAM_FAILED });\r\n });\r\n};\r\n\r\nconst fetchSpamAddressList = companyId => (dispatch, getState) => {\r\n if (getState().companies.fetchingSpamAddressList) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_SPAM_ADDRESS_LIST });\r\n\r\n data\r\n .get(`v1/api/connector/email/config/${companyId}/spam/address`)\r\n .then(response => {\r\n dispatch({ type: actions.FETCHED_SPAM_ADDRESS_LIST, spamList: response.data });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FETCH_SPAM_ADDRESS_FAILED });\r\n });\r\n};\r\n\r\nconst getSpamAddressList = companyId => (dispatch, getState) => {\r\n const store = getState().companies;\r\n\r\n if (store.fetchedSpamAddressList === false && store.fetchSpamAddressListFailed === false) {\r\n dispatch(fetchSpamAddressList(companyId));\r\n return null;\r\n } else {\r\n return store.spamAddressList;\r\n }\r\n};\r\n\r\nconst deleteAddressFromSpamList = (companyId, spamAddressId) => (dispatch, getState) => {\r\n const store = getState().companies;\r\n\r\n if (store.deletingAddressFromSpamList) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.DELETING_ADDRESS_FROM_SPAM_LIST });\r\n\r\n data\r\n .delete(`v1/api/connector/email/config/${companyId}/spam/address/${spamAddressId}`)\r\n .then(response => {\r\n dispatch({ type: actions.DELETED_ADDRESS_FROM_SPAM_LIST, spamList: response.data });\r\n })\r\n .catch(err => {\r\n dispatch({ type: actions.DELETE_ADDRESS_FROM_SPAM_LIST_FAILED });\r\n });\r\n};\r\n\r\nconst postAddressIsSpam = (companyId, address) => (dispatch, getState) => {\r\n dispatch({ type: actions.POSTING_ADDRESS_SPAM });\r\n return data\r\n .put(`v1/api/connector/email/config/${companyId}/spam/address`, `\"${address}\"`, {\r\n headers: { \"Content-Type\": \"application/json\" }\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.POSTED_ADDRESS_SPAM, spamList: response.data });\r\n return true;\r\n })\r\n .catch(rejection => {\r\n handlePromiseError(rejection, \"TODO: Designating address as spam has failed.\", \"spam designation\");\r\n dispatch({ type: actions.POST_ADDRESS_SPAM_FAILED });\r\n throw rejection;\r\n });\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n fetchCompanyInfo: companyId => {\r\n return dispatch(fetchCompanyInfo(companyId));\r\n },\r\n getCompanyInfo: companyId => {\r\n return dispatch(getCompanyInfo(companyId));\r\n },\r\n isCompanyUnowned: companyId => {\r\n return dispatch(isCompanyUnowned(companyId));\r\n },\r\n postCompanyInfo: (companyInfo, companyId) => {\r\n return dispatch(postCompanyInfo(companyInfo, companyId));\r\n },\r\n postCompanyName: (companyName, companyId) => {\r\n return dispatch(postCompanyName(companyName, companyId));\r\n },\r\n getCompanyIdentifiers: companyId => {\r\n return dispatch(getCompanyIdentifiers(companyId));\r\n },\r\n fetchCompanyIdentifiers: companyId => {\r\n return dispatch(fetchCompanyIdentifiers(companyId));\r\n },\r\n deleteCompanyIdentifier: (emailConnectorId, connectorCompanyPartyIdentifierId) => {\r\n return dispatch(deleteCompanyIdentifier(emailConnectorId, connectorCompanyPartyIdentifierId));\r\n },\r\n putCompanyIdentifier: (emailConnectorId, sourceCompanyId, identifiedCompanyId, identifier) => {\r\n return dispatch(putCompanyIdentifier(emailConnectorId, sourceCompanyId, identifiedCompanyId, identifier));\r\n },\r\n postCompanyRemap: (companyIdFrom, companyIdTo) => {\r\n return dispatch(postCompanyRemap(companyIdFrom, companyIdTo));\r\n },\r\n postCompanyIsSpam: (companyId, companyIdSpam) => {\r\n return dispatch(postCompanyIsSpam(companyId, companyIdSpam));\r\n },\r\n postAddressIsSpam: (companyId, address) => {\r\n return dispatch(postAddressIsSpam(companyId, address));\r\n },\r\n fetchSpamAddressList: companyId => {\r\n dispatch(fetchSpamAddressList(companyId));\r\n },\r\n getSpamAddressList: companyId => {\r\n return dispatch(getSpamAddressList(companyId));\r\n },\r\n deleteAddressFromSpamList: (companyId, spamAddressId) => {\r\n return dispatch(deleteAddressFromSpamList(companyId, spamAddressId));\r\n }\r\n});\r\n","import { actions } from \"./company-actions\";\r\n\r\nconst defaultCompaniesState = {\r\n gettingCompanyInfo: {},\r\n fetchedCompanyInfo: {},\r\n companyInfo: {},\r\n fetchingCompanyInfoFailed: {},\r\n\r\n gettingCompany: {},\r\n fetchedCompany: {},\r\n failedCompany: {},\r\n\r\n postingCompanyInfo: false,\r\n postedCompanyInfo: false,\r\n failedPostCompanyInfo: false,\r\n\r\n gettingCompanyIdentifiers: {},\r\n fetchedCompanyIdentifiers: {},\r\n failedCompanyIdentifiers: {},\r\n\r\n companyIdentifiers: {},\r\n\r\n deletingCompanyIdentifier: {},\r\n deletedCompanyIdentifier: {},\r\n failedDeleteCompanyIdentifier: {},\r\n\r\n puttingCompanyIdentifier: false,\r\n putCompanyIdentifier: false,\r\n failedPuCompanyIdentifier: false,\r\n\r\n postingCompanyRemap: false,\r\n postedCompanyRemap: false,\r\n failedPostCompanyRemap: false,\r\n\r\n postingCompanySpam: false,\r\n postedCompanySpam: false,\r\n failedPostCompanySpam: false,\r\n\r\n postingAddressSpam: false,\r\n postedAddressSpam: false,\r\n failedPostAddressSpam: false,\r\n\r\n spamAddressList: [],\r\n fetchingSpamAddressList: false,\r\n fetchedSpamAddressList: false,\r\n fetchSpamAddressListFailed: false,\r\n\r\n deletingAddressFromSpamList: false,\r\n deletedAddressFromSpamList: false,\r\n deleteAddressFromSpamListFailed: false\r\n};\r\n\r\nfunction companyReducer(state = defaultCompaniesState, action) {\r\n switch (action.type) {\r\n case actions.GETTING_COMPANY_INFO:\r\n return {\r\n ...state,\r\n gettingCompanyInfo: {\r\n ...state.gettingCompanyInfo,\r\n [action.companyId]: true\r\n },\r\n fetchedCompanyInfo: {\r\n ...state.fetchedCompanyInfo,\r\n [action.companyId]: false\r\n },\r\n fetchingCompanyInfoFailed: {\r\n ...state.fetchingCompanyInfoFailed,\r\n [action.companyId]: null\r\n }\r\n };\r\n case actions.GET_COMPANY_INFO_FAILED:\r\n return {\r\n ...state,\r\n gettingCompanyInfo: {\r\n ...state.gettingCompanyInfo,\r\n [action.companyId]: false\r\n },\r\n fetchedCompanyInfo: {\r\n ...state.fetchedCompanyInfo,\r\n [action.companyId]: false\r\n },\r\n fetchingCompanyInfoFailed: {\r\n ...state.fetchingCompanyInfoFailed,\r\n [action.companyId]: true\r\n }\r\n };\r\n case actions.GOT_COMPANY_INFO:\r\n return {\r\n ...state,\r\n companyInfo: {\r\n ...state.companyInfo,\r\n [action.companyId]: {\r\n ...action.companyInfo,\r\n connectorEmails: action.connectorEmails\r\n }\r\n },\r\n gettingCompanyInfo: {\r\n ...state.gettingCompanyInfo,\r\n [action.companyId]: false\r\n },\r\n fetchedCompanyInfo: {\r\n ...state.fetchedCompanyInfo,\r\n [action.companyId]: true\r\n },\r\n fetchingCompanyInfoFailed: {\r\n ...state.fetchingCompanyInfoFailed,\r\n [action.companyId]: false\r\n }\r\n };\r\n\r\n case actions.GETTING_COMPANY:\r\n return {\r\n ...state,\r\n gettingCompany: { ...state.gettingCompany, [action.companyId]: true },\r\n fetchedCompany: { ...state.fetchedCompany, [action.companyId]: false }\r\n };\r\n case actions.GET_COMPANY_FAILED:\r\n return {\r\n ...state,\r\n gettingCompany: { ...state.gettingCompany, [action.companyId]: false },\r\n fetchedCompany: { ...state.fetchedCompany, [action.companyId]: false },\r\n failedCompany: { ...state.failedCompany, [action.companyId]: true }\r\n };\r\n case actions.GOT_COMPANY:\r\n return {\r\n ...state,\r\n gettingCompany: { ...state.gettingCompany, [action.companyId]: false },\r\n fetchedCompany: { ...state.fetchedCompany, [action.companyId]: true },\r\n failedCompany: { ...state.failedCompany, [action.companyId]: false }\r\n };\r\n\r\n case actions.GETTING_COMPANY_INDENTIFIERS:\r\n return {\r\n ...state,\r\n gettingCompanyIdentifiers: {\r\n ...state.gettingCompanyIdentifiers,\r\n [action.companyId]: true\r\n },\r\n fetchedCompanyIdentifiers: {\r\n ...state.fetchedCompanyIdentifiers,\r\n [action.companyId]: false\r\n }\r\n };\r\n case actions.GET_COMPANY_INDENTIFIERS_FAILED:\r\n return {\r\n ...state,\r\n gettingCompanyIdentifiers: {\r\n ...state.gettingCompanyIdentifiers,\r\n [action.companyId]: false\r\n },\r\n fetchedCompanyIdentifiers: {\r\n ...state.fetchedCompanyIdentifiers,\r\n [action.companyId]: false\r\n },\r\n failedCompanyIdentifiers: {\r\n ...state.failedCompanyIdentifiers,\r\n [action.companyId]: true\r\n }\r\n };\r\n case actions.GOT_COMPANY_INDENTIFIERS:\r\n return {\r\n ...state,\r\n companyIdentifiers: {\r\n ...state.companyIdentifiers,\r\n [action.companyId]: [...action.companyIdentifiers]\r\n },\r\n gettingCompanyIdentifiers: {\r\n ...state.gettingCompanyIdentifiers,\r\n [action.companyId]: false\r\n },\r\n fetchedCompanyIdentifiers: {\r\n ...state.fetchedCompanyIdentifiers,\r\n [action.companyId]: true\r\n },\r\n failedCompanyIdentifiers: {\r\n ...state.failedCompanyIdentifiers,\r\n [action.companyId]: false\r\n }\r\n };\r\n\r\n case actions.DELETING_COMPANY_INDENTIFIER:\r\n return {\r\n ...state,\r\n deletingCompanyIdentifier: {\r\n ...state.deletingCompanyIdentifier,\r\n [action.connectorCompanyPartyIdentifierId]: true\r\n },\r\n deletedCompanyIdentifier: {\r\n ...state.deletedCompanyIdentifier,\r\n [action.connectorCompanyPartyIdentifierId]: false\r\n },\r\n failedDeleteCompanyIdentifier: {\r\n ...state.failedDeleteCompanyIdentifier,\r\n [action.connectorCompanyPartyIdentifierId]: false\r\n }\r\n };\r\n case actions.DELETE_COMPANY_INDENTIFIER_FAILED:\r\n return {\r\n ...state,\r\n deletingCompanyIdentifier: {\r\n ...state.deletingCompanyIdentifier,\r\n [action.connectorCompanyPartyIdentifierId]: false\r\n },\r\n deletedCompanyIdentifier: {\r\n ...state.deletedCompanyIdentifier,\r\n [action.connectorCompanyPartyIdentifierId]: false\r\n },\r\n failedDeleteCompanyIdentifier: {\r\n ...state.failedDeleteCompanyIdentifier,\r\n [action.connectorCompanyPartyIdentifierId]: true\r\n }\r\n };\r\n case actions.DELETED_COMPANY_INDENTIFIER:\r\n return {\r\n ...state,\r\n deletingCompanyIdentifier: {\r\n ...state.deletingCompanyIdentifier,\r\n [action.connectorCompanyPartyIdentifierId]: false\r\n },\r\n deletedCompanyIdentifier: {\r\n ...state.deletedCompanyIdentifier,\r\n [action.connectorCompanyPartyIdentifierId]: true\r\n },\r\n failedDeleteCompanyIdentifier: {\r\n ...state.failedDeleteCompanyIdentifier,\r\n [action.connectorCompanyPartyIdentifierId]: false\r\n }\r\n };\r\n\r\n case actions.PUTTING_COMPANY_INDENTIFIER:\r\n return {\r\n ...state,\r\n puttingCompanyIdentifier: true,\r\n putCompanyIdentifier: false,\r\n failedPuCompanyIdentifier: false\r\n };\r\n case actions.PUT_COMPANY_INDENTIFIER:\r\n return {\r\n ...state,\r\n puttingCompanyIdentifier: false,\r\n putCompanyIdentifier: true,\r\n failedPuCompanyIdentifier: false\r\n };\r\n case actions.PUT_COMPANY_INDENTIFIER_FAILED:\r\n return {\r\n ...state,\r\n puttingCompanyIdentifier: false,\r\n putCompanyIdentifier: false,\r\n failedPuCompanyIdentifier: true\r\n };\r\n\r\n case actions.POSTING_COMPANY_INFO:\r\n return {\r\n ...state,\r\n postingCompanyInfo: true,\r\n postedCompanyInfo: false,\r\n failedPostCompanyInfo: false\r\n };\r\n case actions.POSTED_COMPANY_INFO:\r\n return {\r\n ...state,\r\n postingCompanyInfo: false,\r\n postedCompanyInfo: true,\r\n failedPostCompanyInfo: false\r\n };\r\n case actions.POST_COMPANY_INFO_FAILED:\r\n return {\r\n ...state,\r\n postingCompanyInfo: false,\r\n postedCompanyInfo: false,\r\n failedPostCompanyInfo: true\r\n };\r\n\r\n case actions.POSTING_COMPANY_REMAP:\r\n return {\r\n ...state,\r\n postingCompanyRemap: true,\r\n postedCompanyRemap: false,\r\n failedPostCompanyRemap: false\r\n };\r\n case actions.POSTED_COMPANY_REMAP:\r\n return {\r\n ...state,\r\n companyIdentifiers: {\r\n ...state.companyIdentifiers,\r\n [action.companyIdTo]: []\r\n },\r\n fetchedCompanyIdentifiers: {\r\n ...state.fetchedCompanyIdentifiers,\r\n [action.companyIdTo]: false\r\n },\r\n postingCompanyRemap: false,\r\n postedCompanyRemap: true,\r\n failedPostCompanyRemap: false\r\n };\r\n case actions.POST_COMPANY_REMAP_FAILED:\r\n return {\r\n ...state,\r\n postingCompanyRemap: false,\r\n postedCompanyRemap: false,\r\n failedPostCompanyRemap: true\r\n };\r\n\r\n case actions.POSTING_COMPANY_SPAM:\r\n return {\r\n ...state,\r\n postingCompanySpam: true,\r\n postedCompanySpam: false,\r\n failedPostCompanySpam: false\r\n };\r\n case actions.POSTED_COMPANY_SPAM:\r\n return {\r\n ...state,\r\n postingCompanySpam: false,\r\n postedCompanySpam: true,\r\n failedPostCompanySpam: false\r\n };\r\n case actions.POST_COMPANY_SPAM_FAILED:\r\n return {\r\n ...state,\r\n postingCompanySpam: false,\r\n postedCompanySpam: false,\r\n failedPostCompanySpam: true\r\n };\r\n\r\n case actions.POSTING_ADDRESS_SPAM:\r\n return {\r\n ...state,\r\n postingAddressSpam: true,\r\n postedAddressSpam: false,\r\n failedPostAddressSpam: false\r\n };\r\n case actions.POSTED_ADDRESS_SPAM:\r\n return {\r\n ...state,\r\n spamAddressList: action.spamList,\r\n postingAddressSpam: false,\r\n postedAddressSpam: true,\r\n failedPostAddressSpam: false\r\n };\r\n case actions.POST_ADDRESS_SPAM_FAILED:\r\n return {\r\n ...state,\r\n postingAddressSpam: false,\r\n postedAddressSpam: false,\r\n failedPostAddressSpam: true\r\n };\r\n\r\n case actions.FETCHING_SPAM_ADDRESS_LIST:\r\n return {\r\n ...state,\r\n fetchingSpamAddressList: true,\r\n fetchedSpamAddressList: false,\r\n fetchSpamAddressListFailed: false\r\n };\r\n\r\n case actions.FETCHED_SPAM_ADDRESS_LIST:\r\n return {\r\n ...state,\r\n fetchingSpamAddressList: false,\r\n fetchedSpamAddressList: true,\r\n fetchSpamAddressListFailed: false,\r\n spamAddressList: action.spamList\r\n };\r\n\r\n case actions.FETCH_SPAM_ADDRESS_LIST_FAILED:\r\n return {\r\n ...state,\r\n fetchingSpamAddressList: false,\r\n fetchedSpamAddressList: false,\r\n fetchSpamAddressListFailed: true\r\n };\r\n\r\n case actions.DELETING_ADDRESS_FROM_SPAM_LIST:\r\n return {\r\n ...state,\r\n deletingAddressFromSpamList: true,\r\n deletedAddressFromSpamList: false,\r\n deleteAddressFromSpamListFailed: false\r\n };\r\n case actions.DELETED_ADDRESS_FROM_SPAM_LIST:\r\n return {\r\n ...state,\r\n spamAddressList: action.spamList,\r\n deletingAddressFromSpamList: false,\r\n deletedAddressFromSpamList: true,\r\n deleteAddressFromSpamListFailed: false\r\n };\r\n case actions.DELETE_ADDRESS_FROM_SPAM_LIST_FAILED:\r\n return {\r\n ...state,\r\n deletingAddressFromSpamList: false,\r\n deletedAddressFromSpamList: false,\r\n deleteAddressFromSpamListFailed: true\r\n };\r\n\r\n case actions.CLEAR_DATA:\r\n return defaultCompaniesState;\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default companyReducer;\r\n","import { actions } from \"./error-actions\";\r\nimport { find, findIndex } from \"../lib/utils\";\r\n\r\nconst defaultErrorState = {\r\n errors: [], // { severity: \"error\", message: \"error message\", type: \"error-type\", field: \"fieldname\" }\r\n hasError: false,\r\n hasFieldError: false\r\n};\r\n\r\nfunction errorReducer(state = { ...defaultErrorState }, action) {\r\n let newErrorArray;\r\n switch (action.type) {\r\n case actions.RAISE_ERROR:\r\n newErrorArray = state.errors.concat(\r\n [action.error].filter(error => findIndex(state.errors, e => JSON.stringify(e) === JSON.stringify(error)) < 0)\r\n ); // de-duplication of errors.\r\n return {\r\n ...state,\r\n errors: newErrorArray,\r\n hasError: newErrorArray.length > 0,\r\n hasFieldError: find(newErrorArray, err => {\r\n return !!err.field;\r\n })\r\n };\r\n case actions.CLEAR_ERROR:\r\n newErrorArray = state.errors.filter(\r\n error => error.type !== action.errorType || (!!action.field && error.field !== action.field)\r\n );\r\n return {\r\n ...state,\r\n errors: newErrorArray,\r\n hasError: newErrorArray.length > 0,\r\n hasFieldError: find(newErrorArray, err => {\r\n return !!err.field;\r\n })\r\n };\r\n case actions.CLEAR_ERRORS:\r\n return { ...state, errors: [], hasError: false, hasFieldError: false };\r\n\r\n case actions.CLEAR_DATA:\r\n return { ...defaultErrorState };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default errorReducer;\r\n","import data from \"../lib/data\";\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\nimport Resources from \"../lib/resources\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n SET_LANGUAGE: \"SET_LANGUAGE\",\r\n\r\n GETTING_LANGUAGES: \"GETTING_LANGUAGES\",\r\n GOT_LANGUAGES: \"GOT_LANGUAGES\",\r\n FAILED_GET_LANGUAGES: \"FAILED_GET_LANGUAGES\",\r\n\r\n GETTING_LANGUAGE: \"GETTING_LANGUAGE\",\r\n GOT_LANGUAGE: \"GOT_LANGUAGE\",\r\n FAILED_GET_LANGUAGE: \"FAILED_GET_LANGUAGE\"\r\n }\r\n};\r\n\r\nconst getAllLanguages = () => (dispatch, getState) => {\r\n dispatch({ type: actions.GETTING_LANGUAGES });\r\n return data\r\n .get(`v1/api/internationalization`)\r\n .then(response => {\r\n dispatch({ type: actions.GOT_LANGUAGES, languages: response.data });\r\n return response.data;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, Resources.GetLanguagesFailure, \"internationalization\");\r\n dispatch({ type: actions.FAILED_GET_LANGUAGES });\r\n throw error;\r\n });\r\n};\r\n\r\nconst fetchLanguage = languageId => (dispatch, getState) => {\r\n dispatch({ type: actions.GETTING_LANGUAGE });\r\n return data\r\n .get(`v1/api/internationalization/${languageId}`)\r\n .then(response => {\r\n let stringsMap = {};\r\n response.data.value.forEach(stringPair => {\r\n stringsMap[stringPair.name.toLocaleUpperCase()] = stringPair.value;\r\n });\r\n\r\n dispatch({ type: actions.GOT_LANGUAGE, language: response.data });\r\n return stringsMap;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, Resources.GetLanguageFailure(languageId), \"internationalization\");\r\n dispatch({ type: actions.FAILED_GET_LANGUAGE });\r\n throw error;\r\n });\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n getAllLanguages: () => {\r\n dispatch(getAllLanguages());\r\n },\r\n setLanguage: languageId => {\r\n dispatch({ type: actions.SET_LANGUAGE, languageId });\r\n },\r\n setBrowserLanguage: () => {\r\n dispatch({ type: actions.SET_LANGUAGE, languageId: window.navigator.language });\r\n },\r\n fetchLanguage: languageId => {\r\n return dispatch(fetchLanguage(languageId));\r\n },\r\n fetchBrowserLanguage: () => {\r\n return dispatch(fetchLanguage(window.navigator.language));\r\n }\r\n});\r\n","import { actions } from \"./localization-actions\";\r\nimport { isEmpty } from \"../lib/utils\";\r\n\r\nconst defaultLanguageSettings = {\r\n languageId: \"en-US\",\r\n resources: {},\r\n\r\n gettingLanguages: false,\r\n gotLanguages: false,\r\n failedGetLanguages: false,\r\n\r\n gettingLanguage: false,\r\n gotLanguage: false,\r\n failedGetLanguage: false\r\n};\r\n\r\nfunction localizationReducer(state = defaultLanguageSettings, action) {\r\n switch (action.type) {\r\n case actions.SET_LANGUAGE:\r\n window.strings = generateStringsMap(state.resources[action.languageId]);\r\n return { ...state, ...{ languageId: action.languageId } };\r\n\r\n case actions.GETTING_LANGUAGES:\r\n return { ...state, gettingLanguages: true, gotLanguages: false, failedGetLanguages: false };\r\n case actions.GOT_LANGUAGES:\r\n if (!isEmpty(action.languages[state.languageId])) {\r\n window.strings = generateStringsMap(action.languages[state.languageId]);\r\n }\r\n return {\r\n ...state,\r\n gettingLanguages: false,\r\n gotLanguages: true,\r\n failedGetLanguages: false,\r\n resources: { ...state.resources, ...action.languages }\r\n };\r\n case actions.FAILED_GET_LANGUAGES:\r\n return { ...state, gettingLanguages: false, gotLanguages: false, failedGetLanguages: true };\r\n\r\n case actions.GETTING_LANGUAGE:\r\n return { ...state, gettingLanguage: true, gotLanguage: false, failedGetLanguage: false };\r\n case actions.GOT_LANGUAGE:\r\n if (state.languageId === action.language.languageId) {\r\n window.strings = generateStringsMap(action.language);\r\n }\r\n return {\r\n ...state,\r\n gettingLanguage: false,\r\n gotLanguage: true,\r\n failedGetLanguage: false,\r\n resources: { ...state.resources, [action.language.languageId]: action.language }\r\n };\r\n case actions.FAILED_GET_LANGUAGE:\r\n return { ...state, gettingLanguage: false, gotLanguage: false, failedGetLanguage: true };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nfunction generateStringsMap(language) {\r\n if (isEmpty(language)) {\r\n return {};\r\n }\r\n let stringsMap = {};\r\n language.value.forEach(string => (stringsMap[string.name.toLocaleUpperCase()] = string.value));\r\n return stringsMap;\r\n}\r\n\r\nexport default localizationReducer;\r\n","import Axios from \"axios\";\r\n\r\nimport { getConfig } from \"./utils\";\r\n\r\nexport const authAxios = Axios.create({\r\n headers: { \"Cache-Control\": \"no-cache\", Pragma: \"no-cache\", Expires: \"-1\" }\r\n});\r\n\r\nfunction defaultOptions() {\r\n let headers = {};\r\n\r\n return { headers: headers };\r\n}\r\n\r\nlet returnUrl = `/connect/authorize?client_id=appid&redirect_uri=${\r\n window.location.origin\r\n}/&response_type=code+id_token&nonce=${generateUUID()}&scope=openid+profile+api+offline_access`;\r\n\r\nfunction login(userName, password) {\r\n let data = {\r\n userName,\r\n password,\r\n returnUrl,\r\n rememberLogin: true\r\n };\r\n let ok = new Promise((resolve, reject) => {\r\n authAxios.defaults.withCredentials = true;\r\n let promise = authAxios.post(`${getConfig().authEndpoint}/v1/user/login/authorize`, data);\r\n promise\r\n .then(result => {\r\n if (result && result.status !== 200) {\r\n reject(result);\r\n } else {\r\n resolve(result.data);\r\n }\r\n })\r\n .catch(result => {\r\n reject(result);\r\n });\r\n });\r\n return ok;\r\n}\r\n\r\nfunction samlLogin(provider, saml) {\r\n let data = {\r\n provider: provider,\r\n samlResponse: saml\r\n };\r\n let ok = new Promise((resolve, reject) => {\r\n authAxios.defaults.withCredentials = true;\r\n let promise = authAxios.post(\r\n `${getConfig().authEndpoint}/v1/user/sso/handoff/token?returnUrl=${window.location.origin}/`,\r\n data\r\n );\r\n promise\r\n .then(result => {\r\n if (result && result.status !== 200 && result.status !== 302) {\r\n reject(result);\r\n } else {\r\n window.location = window.location.hash + `?id_token=${result.data.identityToken}`;\r\n resolve(result.data.identityToken);\r\n }\r\n })\r\n .catch(result => {\r\n reject(result);\r\n });\r\n });\r\n return ok;\r\n}\r\n\r\nfunction logout() {\r\n let ok = new Promise((resolve, reject) => {\r\n let promise = authAxios.post(`${getConfig().authEndpoint}/v1/user/logout`, {});\r\n promise\r\n .then(result => {\r\n if (result && result.status !== 200) {\r\n reject(result);\r\n } else {\r\n resolve(result);\r\n }\r\n })\r\n .catch(result => {\r\n reject(result);\r\n });\r\n });\r\n return ok;\r\n}\r\n\r\nfunction createNewUser(payload) {\r\n return authAxios.post(`${getConfig().authEndpoint}/v1/user/create`, payload, {\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n }\r\n });\r\n}\r\n\r\nfunction mergeOptions(options) {\r\n let def = defaultOptions();\r\n Object.keys(options || {}).forEach(key => {\r\n def[key] = { ...(def[key] || {}), ...options[key] };\r\n });\r\n return def;\r\n}\r\n\r\nfunction get(url, options) {\r\n authAxios.defaults.withCredentials = true;\r\n return authAxios.get(getConfig().authEndpoint + \"/\" + url, mergeOptions(options));\r\n}\r\n\r\nfunction deleteItem(url, options) {\r\n authAxios.defaults.withCredentials = true;\r\n return authAxios.delete(getConfig().authEndpoint + \"/\" + url, mergeOptions(options));\r\n}\r\n\r\nfunction createItem(url, data, options) {\r\n authAxios.defaults.withCredentials = true;\r\n return authAxios.post(getConfig().authEndpoint + \"/\" + url, data, mergeOptions(options));\r\n}\r\n\r\nfunction editItem(url, data, options) {\r\n authAxios.defaults.withCredentials = true;\r\n return authAxios.put(getConfig().authEndpoint + \"/\" + url, data, mergeOptions(options));\r\n}\r\n\r\nfunction generateUUID() {\r\n let d = new Date().getTime();\r\n let uuid = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\r\n let r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === \"x\" ? r : (r & 0x3) | 0x8).toString(16);\r\n });\r\n return uuid;\r\n}\r\n\r\nexport default {\r\n get,\r\n put: editItem,\r\n post: createItem,\r\n delete: deleteItem,\r\n login,\r\n logout,\r\n samlLogin,\r\n generateUUID,\r\n createNewUser,\r\n returnUrl\r\n};\r\n","import util from \"util\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\nimport auth from \"../lib/auth\";\r\nimport { updateConfig, isEmpty, find, coalesceUserName, compareDates } from \"../lib/utils\";\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport Resources from \"../lib/resources\";\r\nimport data from \"../lib/data\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n SHOW_LOGIN_MODAL: \"SHOW_LOGIN_MODAL\",\r\n HIDE_LOGIN_MODAL: \"HIDE_LOGIN_MODAL\",\r\n\r\n LOGGED_IN: \"LOGGED_IN\",\r\n LOGGING_IN: \"LOGGING_IN\",\r\n LOGIN_FAILED: \"LOGIN_FAILED\",\r\n LOGIN_FAILED_RESET: \"LOGIN_FAILED_RESET\",\r\n TOKEN_EXPIRING: \"TOKEN_EXPIRING\",\r\n\r\n LOGGED_OUT: \"LOGGED_OUT\",\r\n LOGGING_OUT: \"LOGGING_OUT\",\r\n LOGOUT_FAILED: \"LOGOUT_FAILED\",\r\n\r\n GETTING_USERS: \"GETTING_USERS\",\r\n GOT_USERS: \"GOT_USERS\",\r\n GET_USERS_FAILED: \"GET_USERS_FAILED\",\r\n\r\n VALIDATING_PASSWORD: \"VALIDATING_PASSWORD\",\r\n PASSWORD_VALIDATED: \"PASSWORD_VALIDATED\",\r\n PASSWORD_VALIDATION_FAILED: \"PASSWORD_VALIDATION_FAILED\",\r\n\r\n CLEAR_PASSWORD_ERRORS: \"CLEAR_PASSWORD_ERRORS\",\r\n\r\n GETTING_USER_CONFIG: \"GETTING_USER_CONFIG\",\r\n GOT_USER_CONFIG: \"GOT_USER_CONFIG\",\r\n GET_USER_CONFIG_FAILED: \"GET_USER_CONFIG_FAILED\",\r\n\r\n UPDATING_USER_CONFIG: \"UPDATING_USER_CONFIG\",\r\n UPDATED_USER_CONFIG: \"UPDATED_USER_CONFIG\",\r\n UPDATE_USER_CONFIG_FAILED: \"UPDATE_USER_CONFIG_FAILED\",\r\n\r\n UPDATING_USER: \"UPDATING_USER\",\r\n UPDATED_USER: \"UPDATED_USER\",\r\n UPDATE_USER_FAILED: \"UPDATE_USER_FAILED\",\r\n\r\n USER_ACTIVITY: \"USER_ACTIVITY\",\r\n\r\n FETCHING_COMPANY_USER_SIGNATURES: \"FETCHING_COMPANY_USER_SIGNATURES\",\r\n FETCHED_COMPANY_USER_SIGNATURES: \"FETCHED_COMPANY_USER_SIGNATURES\",\r\n FETCH_COMPANY_USER_SIGNATURES_FAILED: \"FETCH_COMPANY_USER_SIGNATURES_FAILED\",\r\n\r\n UPDATING_COMPANY_USER_SIGNATURE: \"UPDATING_COMPANY_USER_SIGNATURE\",\r\n UPDATED_COMPANY_USER_SIGNATURE: \"UPDATED_COMPANY_USER_SIGNATURE\",\r\n UPDATE_COMPANY_USER_SIGNATURE_FAILED: \"UPDATE_COMPANY_USER_SIGNATURE_FAILED\",\r\n\r\n UPDATING_SIGNATURE_ATTACHMENTS: \"UPDATING_SIGNATURE_ATTACHMENTS\",\r\n UPDATED_SIGNATURE_ATTACHMENTS: \"UPDATED_SIGNATURE_ATTACHMENTS\",\r\n UPDATE_SIGNATURE_ATTACHMENTS_FAILED: \"UPDATE_SIGNATURE_ATTACHMENTS_FAILED\",\r\n\r\n NAVIGATING_BACK: \"NAVIGATING_BACK\"\r\n }\r\n};\r\n\r\nconst login = (userName, password, refresh) => (dispatch, getState) => {\r\n let user = getState().user;\r\n if (refresh !== true && (user.isLoggedIn || user.isLoggingIn)) return;\r\n dispatch({ type: actions.LOGGING_IN, didLoginFail: false });\r\n return auth\r\n .login(userName, password)\r\n .then(response => {\r\n dispatch(loggedIn(response.identityToken));\r\n return response.data;\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.LOGIN_FAILED, didLoginFail: true });\r\n handlePromiseError(response, \"TODO: Logging in failed.\", \"authorization\", () => {\r\n return;\r\n });\r\n });\r\n};\r\n\r\nexport const loggedIn = token => (dispatch, getState) => {\r\n window.localStorage.setItem(\"logged_in\", \"true\");\r\n window.localStorage.setItem(\"id_token\", token);\r\n updateConfig({ AccessToken: token });\r\n return dispatch({ type: actions.LOGGED_IN, didLoginFail: false, token: token });\r\n};\r\n\r\nconst samlLogin = (provider, saml) => (dispatch, getState) => {\r\n let user = getState().user;\r\n if (user.isLoggedIn || user.isLoggingIn) return;\r\n dispatch({ type: actions.LOGGING_IN, samlLogin: true });\r\n auth\r\n .samlLogin(provider, saml)\r\n .then(token => {\r\n dispatch(loggedIn(token));\r\n })\r\n .catch(err => {\r\n return;\r\n });\r\n};\r\n\r\nexport const logout = () => (dispatch, getState) => {\r\n let user = getState().user;\r\n if (user.isLoggedOut || user.isLoggingOut) return;\r\n\r\n window.localStorage.removeItem(\"saml\");\r\n window.localStorage.removeItem(\"saml-provider\");\r\n window.localStorage.removeItem(\"cust-page\");\r\n window.localStorage.removeItem(\"id_token\");\r\n window.localStorage.removeItem(\"logged_in\");\r\n updateConfig({ AccessToken: undefined });\r\n dispatch({ type: actions.CLEAR_DATA });\r\n\r\n dispatch({ type: actions.LOGGING_OUT });\r\n auth\r\n .logout()\r\n .then(response => {\r\n dispatch({ type: actions.LOGGED_OUT });\r\n window.location = \"/#/login\";\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.LOGOUT_FAILED });\r\n handlePromiseError(error, \"TODO: Logging out failed\", \"logout\");\r\n });\r\n};\r\n\r\nexport const getUsers = (companyId, userIds) => (dispatch, getState) => {\r\n let user = getState().user;\r\n if (user.gettingUsers) return;\r\n dispatch({ type: actions.GETTING_USERS, companyId });\r\n auth\r\n .post(\"v1/user/list\", userIds)\r\n .then(response => {\r\n if (util.isString(response.data)) dispatch({ type: actions.GET_USERS_FAILED, companyId });\r\n else dispatch({ type: actions.GOT_USERS, users: response.data, companyId });\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.GET_USERS_FAILED, companyId });\r\n handlePromiseError(error, \"TODO: Getting the list of users failed\", \"user list\");\r\n });\r\n};\r\n\r\nconst getUser = userId => (dispatch, getState) => {\r\n if (isEmpty(userId)) return { userId: null };\r\n return getState().user.userLookup[userId] || {};\r\n};\r\n\r\nconst getUserDisplayName = (userId, isMeDisplayName) => (dispatch, getState) => {\r\n if (isEmpty(userId)) return Resources.Anyone;\r\n let userData = getState().user;\r\n let myUserId = userData.decoded.sub || \"\";\r\n\r\n let user = userData.userLookup[userId] || {};\r\n return (user.userId || \"\").toLowerCase() === (myUserId || \"\").toLowerCase()\r\n ? isMeDisplayName || Resources.Me\r\n : coalesceUserName(user);\r\n};\r\n\r\nexport const getMyUserIdFromToken = () => (dispatch, getState) => {\r\n return (getState().user.decoded || {}).sub;\r\n};\r\n\r\nexport const getMyDisplayNameFromToken = () => (dispatch, getState) => {\r\n let decoded = getState().user.decoded || {};\r\n return decoded.name || decoded.given_name;\r\n};\r\n\r\nexport const getMyUserNameFromToken = () => (dispatch, getState) => {\r\n return (getState().user.decoded || {}).preferred_username;\r\n};\r\n\r\nconst isUserImpersonated = () => (dispatch, getState) => {\r\n let decoded = getState().user.decoded;\r\n let azp = (decoded || {}).azp;\r\n return !isEmpty(azp);\r\n};\r\n\r\nlet RESET_PASSWORD_PROMISE = null;\r\nconst resetPassword = (email, userName) => dispatch => {\r\n RESET_PASSWORD_PROMISE = auth.post(\"v1/user/reset\", email ? { email } : { userName }).then(response => {\r\n if (response.data === \"OK\") {\r\n return \"EMAIL_SENT\";\r\n }\r\n });\r\n\r\n return RESET_PASSWORD_PROMISE;\r\n};\r\n\r\nlet CONFIRM_RESET_PASSWORD_PROMISE = null;\r\nconst confirmResetPassword = (email, password, token) => dispatch => {\r\n let payload = {\r\n email: email,\r\n password: password,\r\n token: token\r\n };\r\n\r\n CONFIRM_RESET_PASSWORD_PROMISE = auth\r\n .post(\"v1/user/reset/confirm\", payload)\r\n .then(response => {\r\n if (response.data === \"OK\") {\r\n return \"PASSWORD_RESET_SUCCESSFUL\";\r\n }\r\n })\r\n .catch(response => {\r\n return \"PASSWORD_RESET_FAILED\";\r\n });\r\n return CONFIRM_RESET_PASSWORD_PROMISE;\r\n};\r\n\r\nlet IS_PASSWORD_VALID_PROMISE;\r\nconst isPasswordValid = password => dispatch => {\r\n const MIN_SECURITY_LEVEL = 1;\r\n dispatch({ type: actions.VALIDATING_PASSWORD });\r\n IS_PASSWORD_VALID_PROMISE = auth\r\n .post(\"v1/user/validate/password\", '\"' + password + '\"', {\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\"\r\n }\r\n })\r\n .then(response => {\r\n let { score, missingRequiredChars, tooShort } = response.data;\r\n let isPasswordScoreValid = score >= MIN_SECURITY_LEVEL;\r\n let isPasswordValid = isPasswordScoreValid && missingRequiredChars === false && tooShort === false;\r\n if (isPasswordValid) {\r\n dispatch({\r\n type: actions.PASSWORD_VALIDATED,\r\n isPasswordScoreValid,\r\n isPasswordLengthValid: tooShort === false,\r\n isPasswordCharsValid: missingRequiredChars === false,\r\n isPasswordValid\r\n });\r\n } else {\r\n let validatePasswordErrors = [];\r\n if (tooShort || missingRequiredChars) {\r\n validatePasswordErrors.push(Resources.MustHaveCorrectPassPatternError);\r\n } else if (isPasswordScoreValid === false) {\r\n validatePasswordErrors.push(Resources.PasswordIsWeakError(score));\r\n }\r\n\r\n dispatch({\r\n type: actions.PASSWORD_VALIDATION_FAILED,\r\n validatePasswordErrors\r\n });\r\n }\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.PASSWORD_VALIDATION_FAILED });\r\n });\r\n return IS_PASSWORD_VALID_PROMISE;\r\n};\r\n\r\nconst getUserRole = roleId => {\r\n switch (roleId) {\r\n case 0:\r\n return Resources.User;\r\n case 1:\r\n return Resources.Administrator;\r\n case 2:\r\n return Resources.Connector;\r\n default:\r\n return Resources.Unknown;\r\n }\r\n};\r\n\r\nexport const getUserConfig = () => (dispatch, getState) => {\r\n let user = getState().user;\r\n if (user.gettingUserConfig) return;\r\n dispatch({ type: actions.GETTING_USER_CONFIG });\r\n data\r\n .get(\"v1/api/user/settings\")\r\n .then(response => {\r\n dispatch({ type: actions.GOT_USER_CONFIG, config: response.data });\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.GET_USER_CONFIG_FAILED });\r\n handlePromiseError(error, \"TODO: Getting user settings failed.\", \"user settings\");\r\n });\r\n};\r\n\r\nconst updateUserConfig = update => (dispatch, getState) => {\r\n if (getState().user.isUpdatingUserConfig) {\r\n return;\r\n }\r\n\r\n const configUpdate = Object.assign({}, getState().user.userConfig, update);\r\n dispatch({ type: actions.UPDATING_USER_CONFIG });\r\n return data\r\n .post(\"v1/api/user/settings\", configUpdate)\r\n .then(response => {\r\n dispatch({ type: actions.UPDATED_USER_CONFIG, configUpdate });\r\n return true;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.UPDATE_USER_CONFIG_FAILED });\r\n handlePromiseError(error, \"TODO: Updating user settings failed.\", \"user settings\");\r\n throw error;\r\n });\r\n};\r\n\r\nexport const postUserUpdate = config => (dispatch, getState) => {\r\n if (getState().user.isUpdatingUserConfig) {\r\n return;\r\n }\r\n //const configUpdate = Object.assign({}, getState().user.userConfig, update);\r\n dispatch({ type: actions.UPDATING_USER });\r\n return auth\r\n .post(\"v1/user/update\", config)\r\n .then(response => {\r\n dispatch({ type: actions.UPDATED_USER, config });\r\n return true;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.UPDATE_USER_FAILED });\r\n handlePromiseError(error, \"TODO: Updating user config failed.\", \"user config\");\r\n });\r\n};\r\n\r\nconst fetchCompanyUserSignatures = companyId => (dispatch, getState) => {\r\n if (getState().user.isFetchingCompanyUserSignatures === true) {\r\n return Promise.reject();\r\n }\r\n dispatch({ type: actions.FETCHING_COMPANY_USER_SIGNATURES });\r\n\r\n return data\r\n .get(`v2/api/company/${companyId}/signatures`)\r\n .then(response => {\r\n dispatch({ type: actions.FETCHED_COMPANY_USER_SIGNATURES, userSignatures: response.data });\r\n return response.data;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.FETCH_COMPANY_USER_SIGNATURES_FAILED });\r\n handlePromiseError(error, \"TODO: Fetching user signatures failed.\", \"signatures\");\r\n });\r\n};\r\n\r\nconst getCompanyUserSignature = (userId, companyId) => (dispatch, getState) => {\r\n const store = getState().user;\r\n\r\n if (store.isFetchingCompanyUserSignatures) {\r\n return null;\r\n } else if (store.fetchedCompanyUserSignatures === false && store.fetchingCompanyUserSignaturesFailed === false) {\r\n dispatch(fetchCompanyUserSignatures(companyId));\r\n return null;\r\n } else {\r\n let userSignatures = store.userSignatures.filter(s => s.userId.toLowerCase() === userId.toLowerCase());\r\n\r\n if (userSignatures.length > 1) {\r\n userSignatures.sort((a, b) => {\r\n return compareDates(a.createdDate, b.createdDate);\r\n });\r\n }\r\n\r\n return userSignatures[0] || {};\r\n }\r\n};\r\n\r\nconst updateSignatureAttachments = (companyId, companySignatureId, uploads) => (dispatch, getState) => {\r\n const formData = new FormData();\r\n\r\n uploads.forEach(u => {\r\n formData.append(\"files\", u);\r\n });\r\n\r\n dispatch({ type: actions.UPDATING_SIGNATURE_ATTACHMENTS });\r\n\r\n return data\r\n .post(`v2/api/company/${companyId}/signatures/${companySignatureId}/attachments`, formData, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.UPDATED_SIGNATURE_ATTACHMENTS });\r\n dispatch(fetchCompanyUserSignatures(companyId));\r\n return response.data;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.UPDATE_SIGNATURE_ATTACHMENTS_FAILED });\r\n handlePromiseError(error, \"TODO: Adding the image failed. Please try again.\", \"signature image\");\r\n throw error;\r\n });\r\n};\r\n\r\nconst updateCompanyUserSignature = (companyId, signatureData) => (dispatch, getState) => {\r\n if (getState().user.isUpdatingCompanyUserSignature) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.UPDATING_COMPANY_USER_SIGNATURE });\r\n\r\n return data\r\n .post(`v2/api/company/${companyId}/signatures`, signatureData)\r\n .then(response => {\r\n dispatch({ type: actions.UPDATED_COMPANY_USER_SIGNATURE });\r\n dispatch(fetchCompanyUserSignatures(companyId));\r\n return response.data;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.UPDATE_COMPANY_USER_SIGNATURE_FAILED });\r\n handlePromiseError(error, \"TODO: Updating your signature failed. Please try again.\", \"signature\");\r\n throw error;\r\n });\r\n};\r\n\r\nconst isCompanyAdmin = () => (dispatch, getState) => {\r\n const { user, accounts } = getState();\r\n if (isEmpty(user) || isEmpty(user.decoded)) return null;\r\n let myUserId = user.decoded.sub;\r\n let myRole =\r\n find(accounts.companyRoles, role => {\r\n return role.userId.toLowerCase() === myUserId.toLowerCase();\r\n }) || {};\r\n if (isEmpty(myRole) && accounts.fetchedCompanyRoles === false) {\r\n return null;\r\n }\r\n return myRole.role === 1;\r\n};\r\n\r\nconst setNavigatingBack = (value) => (dispatch) => {\r\n dispatch({\r\n type: actions.NAVIGATING_BACK,\r\n navigatingBack: value\r\n });\r\n}\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n login: (userName, password) => {\r\n return dispatch(login(userName, password));\r\n },\r\n tokenExpiring: () => {\r\n dispatch({ type: actions.TOKEN_EXPIRING });\r\n },\r\n refreshToken: () => {\r\n dispatch(login(null, null, true));\r\n },\r\n samlLogin: (provider, saml) => {\r\n dispatch(samlLogin(provider, saml));\r\n },\r\n logout: () => {\r\n dispatch(logout());\r\n },\r\n showLoginModal: () => {\r\n dispatch({ type: actions.SHOW_LOGIN_MODAL });\r\n },\r\n hideLoginModal: () => {\r\n dispatch({ type: actions.HIDE_LOGIN_MODAL });\r\n },\r\n isCompanyAdmin: () => {\r\n return dispatch(isCompanyAdmin());\r\n },\r\n loggedIn: token => {\r\n dispatch(loggedIn(token));\r\n },\r\n loginFailedReset: () => {\r\n dispatch({ type: actions.LOGIN_FAILED_RESET });\r\n },\r\n\r\n getUsers: (companyId, userIds) => {\r\n dispatch(getUsers(companyId, userIds));\r\n },\r\n getUser: userId => {\r\n return dispatch(getUser(userId));\r\n },\r\n getUserDisplayName: (userId, isMeDisplayName) => {\r\n return dispatch(getUserDisplayName(userId, isMeDisplayName));\r\n },\r\n getUserRole: roleId => {\r\n return getUserRole(roleId);\r\n },\r\n\r\n getMyUserIdFromToken: () => {\r\n return dispatch(getMyUserIdFromToken());\r\n },\r\n getMyDisplayNameFromToken: () => {\r\n return dispatch(getMyDisplayNameFromToken());\r\n },\r\n getMyUserNameFromToken: () => {\r\n return dispatch(getMyUserNameFromToken());\r\n },\r\n\r\n isUserImpersonated: () => {\r\n return dispatch(isUserImpersonated());\r\n },\r\n resetPassword: (email, username) => {\r\n return dispatch(resetPassword(email, username));\r\n },\r\n confirmResetPassword: (email, password, token) => {\r\n return dispatch(confirmResetPassword(email, password, token));\r\n },\r\n isPasswordValid: password => {\r\n return dispatch(isPasswordValid(password));\r\n },\r\n clearPasswordErrors: () => {\r\n return dispatch({ type: actions.CLEAR_PASSWORD_ERRORS });\r\n },\r\n\r\n getUserConfig: () => {\r\n dispatch(getUserConfig());\r\n },\r\n updateUserConfig: update => {\r\n return dispatch(updateUserConfig(update));\r\n },\r\n\r\n updateCompanyUserSignature: (companyId, signatureData) => {\r\n return dispatch(updateCompanyUserSignature(companyId, signatureData));\r\n },\r\n\r\n getCompanyUserSignature: (userId, companyId) => {\r\n return dispatch(getCompanyUserSignature(userId, companyId));\r\n },\r\n\r\n updateSignatureAttachments: (companyId, companySignatureId, upload) => {\r\n return dispatch(updateSignatureAttachments(companyId, companySignatureId, upload));\r\n },\r\n\r\n userActivity: () => {\r\n dispatch({ type: actions.USER_ACTIVITY });\r\n },\r\n\r\n setNavigatingBack: (value) => {\r\n dispatch(setNavigatingBack(value));\r\n }\r\n});\r\n","import data from \"../lib/data\";\nimport { handlePromiseError } from \"./error-actions\";\nimport Resources from \"../lib/resources\";\nimport { compareDates, isEmpty, find, includes, capStringAtLength } from \"../lib/utils\";\n\nimport { actions as GeneralActions } from \"./general-actions\";\nimport { getUsers } from \"./user-actions\";\n\nexport const actions = {\n ...GeneralActions,\n ...{\n FETCHING_ACCOUNTS: \"FETCHING_ACCOUNTS\",\n FETCHED_ACCOUNTS: \"FETCHED_ACCOUNTS\",\n FETCH_ACCOUNTS_FAILED: \"FETCH_ACCOUNTS_FAILED\",\n\n ASSUMING_ACCOUNT: \"ASSUMING_ACCOUNT\",\n ASSUMED_ACCOUNT: \"ASSUMED_ACCOUNT\",\n ASSUME_ACCOUNT_FAILED: \"ASSUME_ACCOUNT_FAILED\",\n\n CREATING_ACCOUNT: \"CREATING_ACCOUNT\",\n CREATED_ACCOUNT: \"CREATED_ACCOUNT\",\n CREATE_ACCOUNT_FAILED: \"CREATE_ACCOUNT_FAILED\",\n\n GETTING_ACCOUNT: \"GETTING_ACCOUNT\",\n GOT_ACCOUNT: \"GOT_ACCOUNT\",\n GET_ACCOUNT_FAILED: \"GET_ACCOUNT_FAILED\",\n\n UPDATING_ACCOUNT: \"UPDATING_ACCOUNT\",\n UPDATED_ACCOUNT: \"UPDATED_ACCOUNT\",\n UPDATE_ACCOUNT_FAILED: \"UPDATE_ACCOUNT_FAILED\",\n\n SELECT_ACCOUNT: \"SELECT_ACCOUNT\",\n\n FETCHING_SUBSCRIPTION: \"FETCHING_SUBSCRIPTION\",\n FETCHED_SUBSCRIPTION: \"FETCHED_SUBSCRIPTION\",\n FETCH_SUBSCRIPTION_FAILED: \"FETCH_SUBSCRIPTION_FAILED\",\n\n CREATING_COMPANY: \"CREATING_COMPANY\",\n CREATED_COMPANY: \"CREATED_COMPANY\",\n CREATE_COMPANY_FAILED: \"CREATE_COMPANY_FAILED\",\n\n GETTING_COMPANY: \"GETTING_COMPANY\",\n GOT_COMPANY: \"GOT_COMPANY\",\n GET_COMPANY_FAILED: \"GET_COMPANY_FAILED\",\n\n UPDATING_COMPANY: \"UPDATING_COMPANY\",\n UPDATED_COMPANY: \"UPDATED_COMPANY\",\n UPDATE_COMPANY_FAILED: \"UPDATE_COMPANY_FAILED\",\n\n GETTING_COMPANY_ROLES: \"GETTING_COMPANY_ROLES\",\n GOT_COMPANY_ROLES: \"GOT_COMPANY_ROLES\",\n GET_COMPANY_ROLES_FAILED: \"GET_COMPANY_ROLES_FAILED\",\n\n SETTING_COMPANY_USER_ROLE: \"SETTING_COMPANY_USER_ROLE\",\n SET_COMPANY_USER_ROLE: \"SET_COMPANY_USER_ROLE\",\n SET_COMPANY_USER_ROLE_FAILED: \"SET_COMPANY_USER_ROLE_FAILED\",\n\n DELETING_COMPANY_USER: \"DELETING_COMPANY_USER\",\n DELETED_COMPANY_USER: \"DELETED_COMPANY_USER\",\n DELETE_COMPANY_USER_FAILED: \"DELETE_COMPANY_USER_FAILED\",\n\n UPDATING_COMPANY_CONTACT: \"UPDATING_COMPANY_CONTACT\",\n UPDATED_COMPANY_CONTACT: \"UPDATED_COMPANY_CONTACT\",\n UPDATE_COMPANY_CONTACT_FAILED: \"UPDATE_COMPANY_CONTACT_FAILED\",\n\n CREATING_COMPANY_CONTACT: \"CREATING_COMPANY_CONTACT\",\n CREATED_COMPANY_CONTACT: \"CREATED_COMPANY_CONTACT\",\n CREATE_COMPANY_CONTACT_FAILED: \"CREATE_COMPANY_CONTACT_FAILED\",\n\n DELETING_COMPANY_CONTACT: \"DELETING_COMPANY_CONTACT\",\n DELETED_COMPANY_CONTACT: \"DELETED_COMPANY_CONTACT\",\n DELETE_COMPANY_CONTACT_FAILED: \"DELETE_COMPANY_CONTACT_FAILED\",\n\n FETCH_DROPDOWN_CONTENT: \"FETCH_DROPDOWN_CONTENT\",\n UPDATE_DROPDOWN_SORT: \"UPDATE_DROPDOWN_SORT\"\n }\n};\n\nconst fetchAccounts = () => (dispatch, getState) => {\n let state = getState().accounts;\n if (state.fetchingAccounts) return;\n dispatch({ type: actions.FETCHING_ACCOUNTS });\n data\n .get(\"v1/api/account\")\n .then(response => {\n dispatch({ type: actions.FETCHED_ACCOUNTS, accounts: response.data });\n })\n .catch(error => {\n dispatch({ type: actions.FETCH_ACCOUNTS_FAILED });\n handlePromiseError(error, Resources.AccountFetchFailure, \"accounts\");\n });\n};\n\nconst createAccount = accountName => (dispatch, getState) => {\n // let state = getState().accounts;\n // if (state.creatingAccount) return;\n dispatch({ type: actions.CREATING_ACCOUNT });\n return data\n .put(\"v1/api/account\", { accountName: accountName })\n .then(response => {\n dispatch({ type: actions.CREATED_ACCOUNT, account: response.data });\n return response.data;\n })\n .catch(error => {\n dispatch({ type: actions.CREATE_ACCOUNT_FAILED });\n handlePromiseError(error, Resources.AccountCreateFailure, \"account\");\n });\n};\n\nconst getAccount = accountId => (dispatch, getState) => {\n let state = getState().accounts;\n if (state.gettingAccount) return;\n dispatch({ type: actions.GETTING_ACCOUNT });\n data\n .get(`v1/api/account/${accountId}`)\n .then(response => {\n dispatch({ type: actions.GOT_ACCOUNT, account: response.data });\n })\n .catch(error => {\n dispatch({ type: actions.GET_ACCOUNT_FAILED });\n handlePromiseError(error, Resources.AccountFetchFailure, \"account\");\n });\n};\n\nconst assumeAccount = () => (dispatch, getState) => {\n let state = getState().accounts;\n if (state.assumingAccount) return;\n dispatch({ type: actions.ASSUMING_ACCOUNT });\n data\n .post(`v1/api/account/assume`)\n .then(response => {\n dispatch({ type: actions.ASSUMED_ACCOUNT, account: response.data });\n })\n .catch(response => {\n dispatch({ type: actions.ASSUME_ACCOUNT_FAILED });\n handlePromiseError(response, Resources.AccountAssumeFailure);\n });\n};\n\nconst updateAccount = account => (dispatch, getState) => {\n let state = getState().accounts;\n if (state.updatingAccount) return;\n dispatch({ type: actions.UPDATING_ACCOUNT });\n data\n .post(`v1/api/account/${account.accountId}`, {\n accountName: account.accountName\n })\n .then(response => {\n dispatch({ type: actions.UPDATED_ACCOUNT, account: response.data });\n })\n .catch(response => {\n dispatch({ type: actions.UPDATE_ACCOUNT_FAILED });\n handlePromiseError(response, Resources.AccountUpdateFailure, \"account\");\n });\n};\n\nconst fetchSubscription = () => (dispatch, getState) => {\n const store = getState();\n const accountsStore = store.accounts;\n\n const account = accountsStore.selectedAccount;\n const accountId = (account || {}).accountId;\n if (accountsStore.fetchingSubscription || isEmpty(accountId)) {\n return;\n }\n dispatch({ type: actions.FETCHING_SUBSCRIPTION });\n data\n .get(`v1/api/account/${accountId}/subscription`)\n .then(response => {\n dispatch({\n type: actions.FETCHED_SUBSCRIPTION,\n subscription: response.data\n });\n })\n .catch(error => {\n dispatch({ type: actions.FETCH_SUBSCRIPTION_FAILED });\n handlePromiseError(error, Resources.SubscriptionFetchError, \"subscription\");\n });\n};\n\nconst getSubscription = () => (dispatch, getState) => {\n const state = getState().accounts;\n if (state.hasFetchedAccounts !== true) {\n dispatch(fetchAccounts());\n return null;\n } else if (state.hasFetchedSubscription === false) {\n dispatch(fetchSubscription());\n return null;\n } else {\n return state.subscription;\n }\n};\n\nconst createAccountCompany = companyData => (dispatch, getState) => {\n let state = getState().accounts;\n if (state.creatingCompany) return;\n dispatch({ type: actions.CREATING_COMPANY });\n return data\n .put(\"v1/api/account/company\", companyData)\n .then(response => {\n dispatch({\n type: actions.CREATED_COMPANY,\n accountId: companyData.accountId,\n company: response.data\n });\n return response.data;\n })\n .catch(response => {\n dispatch({ type: actions.CREATE_COMPANY_FAILED });\n handlePromiseError(response, Resources.CompanyCreateFailure, \"company\");\n });\n};\n\nconst fetchCompany = companyId => (dispatch, getState) => {\n if (isEmpty(companyId)) {\n return null;\n }\n\n let state = getState().accounts;\n if (state.gettingCompany) return;\n dispatch({ type: actions.GETTING_COMPANY });\n return data\n .get(`v1/api/account/company/${companyId}`)\n .then(response => {\n dispatch({ type: actions.GOT_COMPANY, company: response.data });\n return response.data;\n })\n .catch(response => {\n dispatch({ type: actions.GET_COMPANY_FAILED });\n handlePromiseError(response, Resources.CompanyFetchFailure, \"company data\");\n });\n};\n\nconst getCompany = companyId => (dispatch, getState) => {\n let state = getState().accounts;\n\n let company = find(state.selectedAccount.companies, company => company.companyId === companyId);\n\n if (isEmpty(company)) {\n return dispatch(fetchCompany(companyId));\n } else {\n return company;\n }\n};\n\nconst updateCompany = company => (dispatch, getState) => {\n let state = getState().accounts;\n if (state.updatingCompany) return;\n dispatch({ type: actions.UPDATING_COMPANY });\n data\n .post(`v1/api/account/company/${company.companyId}`, {\n companyName: company.companyName\n })\n .then(response => {\n dispatch({ type: actions.UPDATED_COMPANY, company: response.data });\n })\n .catch(response => {\n dispatch({ type: actions.UPDATE_COMPANY_FAILED });\n handlePromiseError(response, Resources.CompanyUpdateFailure, \"company\");\n });\n};\n\nconst fetchCompanyUserRoles = companyId => (dispatch, getState) => {\n let state = getState().accounts;\n\n if (state.gettingCompanyRoles || isEmpty(companyId)) {\n return;\n }\n\n dispatch({ type: actions.GETTING_COMPANY_ROLES, companyId });\n\n data\n .get(`v1/api/account/company/${companyId}/userroles`)\n .then(response => {\n dispatch({\n type: actions.GOT_COMPANY_ROLES,\n companyRoles: response.data,\n companyId\n });\n\n // The /userroles endpoint retrieves a list of users by role, and then the /users endpoint retrieves the specific info for those users\n let userIds = response.data.map(role => {\n return role.userId;\n });\n\n dispatch(getUsers(companyId, userIds));\n })\n .catch(error => {\n dispatch({ type: actions.GET_COMPANY_ROLES_FAILED });\n handlePromiseError(error, \"Getting company roles failed. Please refresh the page.\", \"userroles\");\n });\n};\n\nconst getCompanyUserRoles = () => (dispatch, getState) => {\n let state = getState().accounts;\n\n if (!state.fetchedCompanyRoles) {\n dispatch(fetchCompanyUserRoles(state.selectedCompanyId));\n }\n\n return state.companyRoles;\n};\n\nconst getPerspectiveUserRoles = perspectiveId => (dispatch, getState) => {\n const companyRoles = dispatch(getCompanyUserRoles());\n return companyRoles.filter(role => {\n return role.role === 1 || includes(role.perspectiveIds, perspectiveId);\n });\n};\n\nconst putCompanyUserRole = (companyId, userId, role, perspectiveIds) => (dispatch, getState) => {\n dispatch({ type: actions.SETTING_COMPANY_USER_ROLE, companyId, userId });\n let payload = { userId, role };\n if (!isEmpty(perspectiveIds)) {\n payload.perspectiveIds = perspectiveIds;\n }\n data\n .put(`v1/api/account/company/${companyId}/userroles`, payload)\n .then(response => {\n dispatch({\n type: actions.SET_COMPANY_USER_ROLE,\n data: response.data,\n companyId,\n userId,\n role\n });\n dispatch(fetchCompanyUserRoles(companyId));\n })\n .catch(rejection => {\n dispatch({\n type: actions.SET_COMPANY_USER_ROLE_FAILED,\n companyId,\n userId\n });\n handlePromiseError(\n rejection,\n \"TODO: Changing company user role failed. Please refresh the page and try again.\",\n \"userrole\"\n );\n });\n};\n\nconst deleteCompanyUser = (companyId, userId) => (dispatch, getState) => {\n dispatch({ type: actions.DELETING_COMPANY_USER, companyId, userId });\n data\n .delete(`v1/api/account/company/${companyId}/userroles/${userId}`)\n .then(response => {\n dispatch({\n type: actions.DELETED_COMPANY_USER,\n data: response.data,\n companyId,\n userId\n });\n dispatch(fetchCompanyUserRoles(companyId));\n })\n .catch(rejection => {\n dispatch({ type: actions.DELETE_COMPANY_USER_FAILED, companyId, userId });\n handlePromiseError(\n rejection,\n \"TODO: Delete of company user failed. Please refresh the page and try again.\" < \"userrole\"\n );\n });\n};\n\n// Fetches given company and falls back on oldest company\nconst getDefaultCompany = defaultCompanyId => (dispatch, getState) => {\n let accounts = getState().accounts.accounts;\n let defaultCompany;\n let companies = [];\n accounts.forEach(account => {\n account.companies.forEach(company => {\n if (company.companyId === defaultCompanyId) {\n defaultCompany = company;\n }\n companies.push(company);\n });\n });\n if (defaultCompany) return defaultCompany;\n companies.sort((a, b) => {\n return compareDates(a.createdDate, b.createdDate);\n });\n return companies[0] || {};\n};\n\nconst getCompanyApprovers = companyId => (dispatch, getState) => {\n let approvers = {};\n ((dispatch(getDefaultCompany(companyId)) || {}).companyContacts || []).forEach(contact => {\n if (contact.isApprover) {\n contact.perspectives.forEach(perspectiveId => {\n if (isEmpty(approvers[perspectiveId])) {\n approvers[perspectiveId] = [contact];\n } else {\n approvers[perspectiveId].push(contact);\n }\n });\n }\n });\n\n return approvers;\n};\n\nconst getCompanyContact = (companyId, companyContactId) => (dispatch, getState) => {\n return find((dispatch(getDefaultCompany(companyId)) || {}).companyContacts || [], contact => {\n contact.companyContactId = companyContactId;\n });\n};\n\nconst createCompanyContact = (companyId, contact) => dispatch => {\n dispatch({ type: actions.CREATING_COMPANY_CONTACT });\n data\n .put(`v1/api/account/company/${companyId}/contacts`, contact)\n .then(response => {\n dispatch(fetchAccounts());\n dispatch({ type: actions.CREATED_COMPANY_CONTACT });\n })\n .catch(rejection => {\n dispatch({ type: actions.CREATE_COMPANY_CONTACT_FAILED });\n handlePromiseError(\n rejection,\n \"TODO: Creating the company contact failed. Please refresh the page and try again.\",\n \"company contact\"\n );\n });\n};\n\nconst updateCompanyContact = (companyId, companyContactId, contact) => dispatch => {\n dispatch({ type: actions.UPDATING_COMPANY_CONTACT });\n data\n .post(`v1/api/account/company/${companyId}/contacts/${companyContactId}`, contact)\n .then(response => {\n dispatch(fetchAccounts());\n dispatch({ type: actions.UPDATED_COMPANY_CONTACT });\n })\n .catch(error => {\n dispatch({ type: actions.UPDATE_COMPANY_CONTACT_FAILED });\n if (error.response && error.response.status === 400) {\n if (error.response.data && error.response.data.companyContactId) {\n const message = error.response.data.companyContactId[0];\n handlePromiseError(error.response, message || \"This approver is set as a default and cannot be deleted.\");\n }\n } else {\n handlePromiseError(\n error,\n \"TODO: Update of company contact failed. Please refresh the page and try again.\",\n \"company contact\"\n );\n }\n });\n};\n\nconst deleteCompanyContact = (companyId, companyContactId) => dispatch => {\n dispatch({ type: actions.DELETING_COMPANY_CONTACT });\n data\n .delete(`v1/api/account/company/${companyId}/contacts/${companyContactId}`)\n .then(response => {\n dispatch(fetchAccounts());\n dispatch({ type: actions.DELETED_COMPANY_CONTACT });\n })\n .catch(rejection => {\n dispatch({ type: actions.DELETE_COMPANY_CONTACT_FAILED });\n handlePromiseError(\n rejection,\n \"TODO: Delete of company contact failed. Please refresh the page and try again.\",\n \"company contact\"\n );\n });\n};\n\nconst selectAccount = accountId => dispatch => {\n dispatch({ type: actions.SELECT_ACCOUNT, accountId: accountId });\n};\n\nconst fetchDropdownContent = () => dispatch => {\n data.get('v1/api/account/dropdown').then(response => {\n const dropdownContent = createDropdownData(response.data.account.companies, response.data.keyToAggregatedStatements);\n let primaryCompany = {};\n\n // In order to be able to accurately switch between a child company and viewing all accounts, we need to store the primary company. If the user\n // decides to view all accounts, we will need to set various state values that makes the currently selected company this primary company.\n if (response.data.account.companies.length > 0) {\n primaryCompany = response.data.account.companies[0];\n }\n\n dispatch({ type: actions.FETCH_DROPDOWN_CONTENT, data: { ...dropdownContent }, primaryCompany })\n })\n}\n\n// Iterate through companies and summaries (dictionary) matching values based on companyId,\n// \"___--\" prefix is cross-currency-total\n// \"USD--\" prefix for USD openInvoices\nconst createDropdownData = (companies, summaries) => {\n const combinedDropdownData = [];\n let longestCustomerName = 0;\n\n companies.map(comp => {\n let temp = {}\n let tempId = '___--'.concat(comp.companyId);\n\n if (longestCustomerName < comp.companyName.length && comp.companyName.length <= 69) {\n longestCustomerName = comp.companyName.length;\n }\n\n if (summaries[tempId]) {\n temp.value = comp.companyId\n temp.companyName = comp.companyName\n temp.openInvoiceCount = summaries[tempId].count;\n } else {\n temp.value = comp.companyId\n temp.companyName = comp.companyName\n temp.openInvoiceCount = 0;\n }\n\n let constructedRow = setDropdownRowValues(temp);\n combinedDropdownData.push(constructedRow);\n })\n\n const allAccountObj = {\n openInvoices: summaries['___--'].count,\n companyName: 'All Accounts',\n value: \"ALL_ACCOUNTS_ID\",\n displayName: 'All Accounts'\n }\n\n return { combinedDropdownData, longestCustomerName, allAccountObj };\n}\n\nconst setDropdownRowValues = (company) => {\n return {\n value: company.value,\n displayName: company.companyName.length >= Resources.TruncateLimit ? capStringAtLength(company.companyName, Resources.TruncateLimit) : company.companyName,\n fullName: company.companyName,\n openInvoices: company.openInvoiceCount\n }\n}\n\nconst updateDropdownSort = (updatedArray) => dispatch => {\n dispatch({type: actions.UPDATE_DROPDOWN_SORT, data: updatedArray})\n}\n\nexport const dispatchToProps = dispatch => ({\n fetchAccounts: () => {\n dispatch(fetchAccounts());\n },\n \n fetchDropdownContent: () => {\n return dispatch(fetchDropdownContent());\n },\n\n updateDropdownSort: (updatedArray) => {\n return dispatch(updateDropdownSort(updatedArray));\n },\n\n assumeAccount: () => {\n dispatch(assumeAccount());\n },\n\n createAccount: accountName => {\n return dispatch(createAccount(accountName));\n },\n getAccount: accountId => {\n dispatch(getAccount(accountId));\n },\n updateAccount: account => {\n dispatch(updateAccount(account));\n },\n selectAccount: accountId => {\n dispatch(selectAccount(accountId));\n },\n\n fetchSubscription: () => {\n dispatch(fetchSubscription());\n },\n\n getSubscription: () => {\n return dispatch(getSubscription());\n },\n\n // TODO: add managment of account userroles\n // GET - /v1/api/account/{accountId}/userroles\n // PUT - /v1/api/account/{accountId}/userroles\n // POST - no way to change role for existing user but a user can have multiple roles\n // DELETE - /v1/api/account/{accountId}/userroles/{userId}\n\n createAccountCompany: companyData => {\n return dispatch(createAccountCompany(companyData));\n },\n getCompany: companyId => {\n dispatch(getCompany(companyId));\n },\n updateCompany: company => {\n dispatch(updateCompany(company));\n },\n getDefaultCompany: defaultCompanyId => {\n return dispatch(getDefaultCompany(defaultCompanyId));\n },\n\n getCompanyContact: (companyId, companyContactId) => {\n return dispatch(getCompanyContact(companyId, companyContactId));\n },\n\n getCompanyApprovers: companyId => {\n return dispatch(getCompanyApprovers(companyId));\n },\n\n // TODO: add managment of company userroles\n fetchCompanyUserRoles: companyId => {\n return dispatch(fetchCompanyUserRoles(companyId));\n },\n getCompanyUserRoles: () => {\n return dispatch(getCompanyUserRoles());\n },\n getPerspectiveUserRoles: perspectiveId => {\n return dispatch(getPerspectiveUserRoles(perspectiveId));\n },\n putCompanyUserRole: (companyId, userId, role, perspectiveIds) => {\n dispatch(putCompanyUserRole(companyId, userId, role, perspectiveIds));\n },\n deleteCompanyUser: (companyId, userId) => {\n dispatch(deleteCompanyUser(companyId, userId));\n },\n\n createCompanyContact: (companyId, contact) => {\n dispatch(createCompanyContact(companyId, contact));\n },\n updateCompanyContact: (companyId, companyContactId, contact) => {\n dispatch(updateCompanyContact(companyId, companyContactId, contact));\n },\n deleteCompanyContact: (companyId, companyContactId) => {\n dispatch(deleteCompanyContact(companyId, companyContactId));\n }\n\n // TODO: add managment of company emails\n // GET - comes with getCompany results...\n // PUT /v1/api/account/company/{companyId}/emails\n // POST - no way to edit state...can't make it \"inactive\"\n // DELETE - no way to remove an email from a company\n\n // TODO: add managment of company locations\n // GET - comes with getCompany results...\n // PUT - /v1/api/account/company/{companyId}/location\n // POST - /v1/api/account/company/{companyId}/location/{companyLocationId}\n // - no way to set the isActive state...\n // DELETE - no way to remove a location\n});\n","import { actions } from \"./accounts-actions\";\r\nimport { replaceAt, find, isEmpty, findIndex } from \"../lib/utils\";\r\n\r\nexport const defaultCompanyRolesState = {\r\n gettingCompanyRoles: false,\r\n fetchedCompanyRoles: false,\r\n companyRoles: [],\r\n settingCompanyUserRole: false,\r\n deletingCompanyUser: false\r\n};\r\n\r\nconst defaultSubscriptionState = {\r\n subscription: {},\r\n fetchingSubscription: false,\r\n hasFetchedSubscription: false\r\n};\r\n\r\nexport const defaultAccountsState = {\r\n ...{\r\n assumingAccount: false,\r\n hasAssumedAccount: false,\r\n fetchingAccounts: false,\r\n hasFetchedAccounts: false,\r\n creatingAccount: false,\r\n gettingAccount: false,\r\n updatingAccount: false,\r\n creatingCompany: false,\r\n gettingCompany: false,\r\n updatingCompany: false,\r\n creatingCompanyContact: false,\r\n updatingCompanyContact: false,\r\n deletingCompanyContact: false,\r\n loggingAccountActivity: false,\r\n loggedAccountActivity: false,\r\n failedLogAccountActivity: false,\r\n hasDropdownContent: false,\r\n setAsAll: false,\r\n accounts: [],\r\n selectedAccount: {\r\n companies: [],\r\n features: {}\r\n },\r\n dropdownContent: {\r\n combinedDropdownData: []\r\n },\r\n primaryCompany: {},\r\n selectedCompany: {},\r\n ...defaultSubscriptionState\r\n },\r\n ...defaultCompanyRolesState\r\n};\r\n\r\nfunction accountsReducer(state = defaultAccountsState, action) {\r\n if (window.logToConsole) {\r\n console.log(action);\r\n }\r\n\r\n switch (action.type) {\r\n case actions.FETCHING_ACCOUNTS:\r\n return { ...state, ...{ fetchingAccounts: true } };\r\n case actions.FETCH_ACCOUNTS_FAILED:\r\n return {\r\n ...state,\r\n ...{ fetchingAccounts: false, hasFetchedAccounts: true }\r\n };\r\n case actions.FETCHED_ACCOUNTS:\r\n if (state.fetchingAccounts === false) return state;\r\n let fetchedAccounts = action.accounts || [];\r\n let fetchedState = { ...state, accounts: fetchedAccounts };\r\n updateSelected(fetchedState);\r\n return {\r\n ...fetchedState,\r\n ...{ fetchingAccounts: false, hasFetchedAccounts: true }\r\n };\r\n\r\n case actions.ASSUMING_ACCOUNT:\r\n return { ...state, ...{ assumingAccount: true } };\r\n case actions.ASSUME_ACCOUNT_FAILED:\r\n return {\r\n ...state,\r\n ...{ assumingAccount: false, hasAssumedAccount: true }\r\n };\r\n case actions.ASSUMED_ACCOUNT:\r\n if (state.assumingAccount === false) return state;\r\n return {\r\n ...state,\r\n ...{\r\n hasFetchedAccounts: false,\r\n assumingAccount: false,\r\n hasAssumedAccount: true\r\n }\r\n };\r\n\r\n case actions.GETTING_ACCOUNT:\r\n return { ...state, ...{ gettingAccount: true } };\r\n case actions.GET_ACCOUNT_FAILED:\r\n return { ...state, ...{ gettingAccount: false } };\r\n case actions.GOT_ACCOUNT:\r\n if (state.gettingAccount === false) return state;\r\n return {\r\n ...updateAccount(state, action.account),\r\n ...{ gettingAccount: false }\r\n };\r\n\r\n case actions.CREATING_ACCOUNT:\r\n return { ...state, ...{ creatingAccount: true } };\r\n case actions.CREATE_ACCOUNT_FAILED:\r\n return { ...state, ...{ creatingAccount: false } };\r\n case actions.CREATED_ACCOUNT:\r\n if (state.creatingAccount === false) return state;\r\n let newAccounts = [...state.accounts];\r\n newAccounts.push(action.account);\r\n let newAccountState = { ...state, ...{ accounts: newAccounts } };\r\n return { ...newAccountState, ...{ creatingAccount: false } };\r\n\r\n case actions.UPDATING_ACCOUNT:\r\n return { ...state, ...{ updatingAccount: true } };\r\n case actions.UPDATE_ACCOUNT_FAILED:\r\n return { ...state, ...{ updatingAccount: false } };\r\n case actions.UPDATED_ACCOUNT:\r\n if (state.updatingAccount === false) return state;\r\n return {\r\n ...updateAccount(state, action.account),\r\n ...{ updatingAccount: false }\r\n };\r\n\r\n case actions.SELECT_ACCOUNT:\r\n if (action.accountId === state.selectedAccountId) return { ...state };\r\n let selectAccountState = {\r\n ...state,\r\n ...{ selectedAccountId: action.accountId }\r\n };\r\n updateSelected(selectAccountState);\r\n return selectAccountState;\r\n\r\n case actions.FETCHING_SUBSCRIPTION:\r\n return { ...state, fetchingSubscription: true };\r\n case actions.FETCH_SUBSCRIPTION_FAILED:\r\n return {\r\n ...state,\r\n fetchingSubscription: false,\r\n hasFetchedSubscription: true\r\n };\r\n case actions.FETCHED_SUBSCRIPTION:\r\n return {\r\n ...state,\r\n fetchingSubscription: false,\r\n hasFetchedSubscription: true,\r\n subscription: action.subscription\r\n };\r\n\r\n case actions.GETTING_COMPANY:\r\n return { ...state, ...{ gettingCompany: true } };\r\n case actions.GET_COMPANY_FAILED:\r\n return { ...state, ...{ gettingCompany: false } };\r\n case actions.GOT_COMPANY:\r\n if (state.gettingCompany === false) return state;\r\n return {\r\n ...updateCompany(state, action.company),\r\n ...{ gettingCompany: false }\r\n };\r\n\r\n case actions.CREATING_COMPANY:\r\n return { ...state, ...{ creatingCompany: true } };\r\n case actions.CREATE_COMPANY_FAILED:\r\n return { ...state, ...{ creatingCompany: false } };\r\n case actions.CREATED_COMPANY:\r\n if (state.creatingCompany === false) return state;\r\n let newCompaniesState = {\r\n ...state,\r\n ...{\r\n creatingCompany: false,\r\n selectedCompanyId: action.company.companyId\r\n }\r\n };\r\n let newCompanyAccount = find(newCompaniesState.accounts || [], a => {\r\n return a.accountId === action.accountId;\r\n });\r\n let newCompanies = newCompanyAccount.companies || [];\r\n newCompanies.push(action.company);\r\n newCompanyAccount = {\r\n ...newCompanyAccount,\r\n ...{ companies: newCompanies }\r\n };\r\n return updateAccount(newCompaniesState, newCompanyAccount);\r\n\r\n case actions.UPDATING_COMPANY:\r\n return { ...state, ...{ updatingCompany: true } };\r\n case actions.UPDATE_COMPANY_FAILED:\r\n return { ...state, ...{ updatingCompany: false } };\r\n case actions.UPDATED_COMPANY:\r\n if (state.updatingCompany === false) return state;\r\n return {\r\n ...updateCompany(state, action.company),\r\n ...{ updatingCompany: false }\r\n };\r\n\r\n case actions.GETTING_COMPANY_ROLES:\r\n return {\r\n ...state,\r\n ...{ gettingCompanyRoles: true, fetchedCompanyRoles: false }\r\n };\r\n case actions.GET_COMPANY_ROLES_FAILED:\r\n return {\r\n ...state,\r\n ...{ gettingCompanyRoles: false, fetchedCompanyRoles: true }\r\n };\r\n case actions.GOT_COMPANY_ROLES:\r\n if (state.gettingCompanyRoles === false || action.companyId !== state.selectedCompanyId) return state;\r\n return {\r\n ...state,\r\n ...{\r\n gettingCompanyRoles: false,\r\n fetchedCompanyRoles: true,\r\n companyRoles: action.companyRoles\r\n }\r\n };\r\n\r\n case actions.SETTING_COMPANY_USER_ROLE:\r\n return { ...state, settingCompanyUserRole: true };\r\n case actions.SET_COMPANY_USER_ROLE_FAILED:\r\n return { ...state, settingCompanyUserRole: false };\r\n case actions.SET_COMPANY_USER_ROLE:\r\n if (action.companyId !== state.selectedCompanyId) return state;\r\n return { ...state, settingCompanyUserRole: false };\r\n\r\n case actions.DELETING_COMPANY_USER:\r\n return { ...state, deletingCompanyUser: true };\r\n case actions.DELETE_COMPANY_USER_FAILED:\r\n return { ...state, deletingCompanyUser: false };\r\n case actions.DELETED_COMPANY_USER:\r\n if (action.companyId !== state.selectedCompanyId) return state;\r\n return { ...state, deletingCompanyUser: false };\r\n\r\n case actions.SELECT_COMPANY:\r\n if (action.companyId === state.selectedCompanyId && isEmpty(state.selectedCompany) === false && !state.setAsAll) {\r\n return { ...state };\r\n }\r\n\r\n // If the user is working with child accounts and is trying to view all accounts, set the current state to the primary company which was\r\n // stored when all the child accounts were fetched.\r\n if (action.companyId === 'ALL_ACCOUNTS_ID') {\r\n return {\r\n ...state,\r\n selectedCompany: state.primaryCompany,\r\n selectedCompanyId: state.primaryCompany.companyId,\r\n setAsAll: true\r\n }\r\n }\r\n\r\n let selectCompanyState = {\r\n ...state,\r\n selectedCompanyId: action.companyId,\r\n setAsAll: false\r\n };\r\n\r\n const selectedAccount = find(state.accounts, a => {\r\n return !isEmpty(\r\n find(a.companies, c => {\r\n return c.companyId === action.companyId;\r\n })\r\n );\r\n });\r\n\r\n updateSelected(selectCompanyState);\r\n\r\n return {\r\n ...selectCompanyState,\r\n ...defaultCompanyRolesState,\r\n ...defaultSubscriptionState,\r\n selectedAccount\r\n };\r\n case actions.CREATING_COMPANY_CONTACT:\r\n return { ...state, creatingCompanyContact: true };\r\n case actions.CREATED_COMPANY_CONTACT:\r\n return { ...state, creatingCompanyContact: false };\r\n case actions.CREATE_COMPANY_CONTACT_FAILED:\r\n return { ...state, creatingCompanyContact: false };\r\n\r\n case actions.UPDATING_COMPANY_CONTACT:\r\n return { ...state, updatingCompanyContact: true };\r\n case actions.UPDATED_COMPANY_CONTACT:\r\n return { ...state, updatingCompanyContact: false };\r\n case actions.UPDATE_COMPANY_CONTACT_FAILED:\r\n return { ...state, updatingCompanyContact: false };\r\n\r\n case actions.DELETING_COMPANY_CONTACT:\r\n return { ...state, deletingCompanyContact: true };\r\n case actions.DELETED_COMPANY_CONTACT:\r\n return { ...state, deletingCompanyContact: false };\r\n case actions.DELETE_COMPANY_CONTACT_FAILED:\r\n return { ...state, deletingCompanyContact: false };\r\n\r\n case actions.FETCH_DROPDOWN_CONTENT:\r\n return { ...state, dropdownContent: action.data, hasDropdownContent: true, primaryCompany: action.primaryCompany }\r\n case actions.UPDATE_DROPDOWN_SORT:\r\n return { \r\n ...state, \r\n dropdownContent: updateDropDownSort(state, action.data)\r\n };\r\n\r\n case actions.CLEAR_DATA:\r\n return defaultAccountsState;\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nconst updateDropDownSort = (state, array) => {\r\n return { \r\n combinedDropdownData: array,\r\n longestCustomerName: state.dropdownContent.longestCustomerName,\r\n allAccountObj: state.dropdownContent.allAccountObj\r\n }\r\n}\r\n\r\nfunction updateAccount(state, account) {\r\n let updatedAccounts = state.accounts || [];\r\n updatedAccounts = replaceAt(\r\n updatedAccounts,\r\n findIndex(updatedAccounts, u => {\r\n return u.accountId === account.accountId;\r\n }),\r\n account\r\n );\r\n let updatedState = { ...state, accounts: updatedAccounts };\r\n updateSelected(updatedState);\r\n return updatedState;\r\n}\r\n\r\nfunction updateCompany(state, company) {\r\n let foundAccount = find(state.accounts || [], a => {\r\n return (\r\n findIndex(a.companies || [], c => {\r\n return c.companyId === company.companyId;\r\n }) >= 0\r\n );\r\n });\r\n if (!foundAccount) return state;\r\n let updatedCompanies = foundAccount.companies || [];\r\n updatedCompanies = replaceAt(\r\n updatedCompanies,\r\n findIndex(updatedCompanies, u => {\r\n return u.companyId === company.companyId;\r\n }),\r\n company\r\n );\r\n return updateAccount(state, {\r\n ...foundAccount,\r\n ...{ companies: updatedCompanies }\r\n });\r\n}\r\n\r\nfunction updateSelected(state) {\r\n let accounts = state.accounts || [];\r\n const selectedAccountId = state.selectedAccountId || (accounts[0] || {}).accountId;\r\n\r\n let foundAccount = find(accounts, a => {\r\n return selectedAccountId === a.accountId;\r\n });\r\n\r\n state.selectedAccountId = (foundAccount || {}).accountId;\r\n state.selectedAccount = foundAccount || {};\r\n\r\n let companies = [];\r\n\r\n accounts.forEach(account => {\r\n companies = [...companies, ...account.companies];\r\n });\r\n\r\n let foundCompany = find(companies, c => {\r\n return state.selectedCompanyId && state.selectedCompanyId === c.companyId;\r\n });\r\n\r\n state.selectedCompany = foundCompany || {};\r\n}\r\n\r\nexport default accountsReducer;\r\n","import { actions } from \"./user-actions\";\r\nimport jwt_decode from \"jwt-decode\";\r\n\r\nconst defaultCompanyUsersState = {\r\n usersCompanyId: null,\r\n gettingUsers: false,\r\n fetchedUsers: false,\r\n users: [],\r\n userLookup: {}\r\n};\r\n\r\nconst defaultUserState = {\r\n isLoginModalVisible: false,\r\n isLoggedIn: false,\r\n isLoggingIn: false,\r\n isSamlLogin: false,\r\n isLoggingOut: false,\r\n didLoginFail: false,\r\n isTokenExpiring: false,\r\n shouldRefreshToken: false,\r\n lastTokenRefresh: null,\r\n\r\n isValidatingPassword: false,\r\n isPasswordValid: false,\r\n isPasswordScoreValid: false,\r\n isPasswordLengthValid: false,\r\n isPasswordCharsValid: false,\r\n validatePasswordErrors: [],\r\n\r\n gettingUserConfig: false,\r\n fetchedUserConfig: false,\r\n userConfig: {},\r\n updatingUserConfig: false,\r\n updatedUserConfig: false,\r\n updatedUserConfigFailed: false,\r\n\r\n\r\n updatingUserStatus: \"idle\",\r\n\r\n isUpdatingCompanyUserSignature: false,\r\n updatedCompanyUserSignature: false,\r\n updatingCompanyUserSignatureFailed: false,\r\n\r\n isUpdatingSignatureAttachments: false,\r\n updatedSignatureAttachments: false,\r\n updatingSignatureAttachmentsFailed: false,\r\n\r\n isFetchingCompanyUserSignatures: false,\r\n fetchedCompanyUserSignatures: false,\r\n fetchingCompanyUserSignaturesFailed: false,\r\n userSignatures: [],\r\n\r\n navigatingBack: false,\r\n\r\n ...defaultCompanyUsersState\r\n};\r\n\r\nconst userReducer = (state = defaultUserState, action) => {\r\n switch (action.type) {\r\n case actions.SHOW_LOGIN_MODAL:\r\n return { ...state, ...{ isLoginModalVisible: true } };\r\n case actions.HIDE_LOGIN_MODAL:\r\n return { ...state, ...{ isLoginModalVisible: false } };\r\n\r\n case actions.LOGGING_IN:\r\n return {\r\n ...state,\r\n ...{ isLoggingIn: true, didLoginFail: action.didLoginFail, isSamlLogin: action.samlLogin }\r\n };\r\n case actions.LOGIN_FAILED:\r\n return {\r\n ...state,\r\n ...{ isLoggingIn: false, didLoginFail: action.didLoginFail }\r\n };\r\n case actions.LOGIN_FAILED_RESET:\r\n return { ...state, didLoginFail: false };\r\n case actions.LOGGED_IN:\r\n let decoded = null;\r\n if (action.token) decoded = jwt_decode(action.token);\r\n return {\r\n ...state,\r\n ...{\r\n isLoggingIn: false,\r\n isLoggedIn: true,\r\n token: action.token,\r\n decoded: decoded,\r\n isTokenExpiring: false,\r\n shouldRefreshToken: false,\r\n lastTokenRefresh: new Date()\r\n }\r\n };\r\n case actions.TOKEN_EXPIRING:\r\n return { ...state, isTokenExpiring: true };\r\n case actions.LOGGING_OUT:\r\n return {\r\n ...state,\r\n ...{ isLoggingOut: true, isLoggedIn: false, token: null, decoded: null }\r\n };\r\n case actions.LOGOUT_FAILED:\r\n return { ...state, ...{ isLoggingOut: false } };\r\n case actions.LOGGED_OUT:\r\n return {\r\n ...state,\r\n ...{\r\n isLoggingOut: false,\r\n isLoggedIn: false,\r\n token: null,\r\n decoded: null\r\n }\r\n };\r\n\r\n case actions.VALIDATING_PASSWORD:\r\n return { ...state, isValidatingPassword: true, isPasswordValid: false };\r\n case actions.PASSWORD_VALIDATED:\r\n return {\r\n ...state,\r\n isValidatingPassword: false,\r\n isPasswordScoreValid: action.isPasswordScoreValid,\r\n isPasswordLengthValid: action.isPasswordLengthValid,\r\n isPasswordCharsValid: action.isPasswordCharsValid,\r\n isPasswordValid: action.isPasswordValid,\r\n validatePasswordErrors: []\r\n };\r\n case actions.PASSWORD_VALIDATION_FAILED:\r\n return {\r\n ...state,\r\n isValidatingPassword: false,\r\n isPasswordValid: false,\r\n validatePasswordErrors: action.validatePasswordErrors\r\n };\r\n\r\n case actions.GETTING_USERS:\r\n let gettingUsers = { ...state };\r\n if (state.usersCompanyId !== action.companyId) {\r\n gettingUsers.users = [];\r\n gettingUsers.userLookup = {};\r\n }\r\n return {\r\n ...gettingUsers,\r\n ...{\r\n gettingUsers: true,\r\n fetchedUsers: false,\r\n usersCompanyId: action.companyId\r\n }\r\n };\r\n case actions.GET_USERS_FAILED:\r\n if (state.usersCompanyId !== action.companyId) {\r\n return state;\r\n }\r\n\r\n return { ...state, ...{ gettingUsers: false, fetchedUsers: true } };\r\n case actions.GOT_USERS:\r\n if (state.usersCompanyId !== action.companyId) {\r\n return state;\r\n }\r\n\r\n let users = [...action.users];\r\n let userLookup = {};\r\n\r\n users.forEach(u => {\r\n userLookup[u.userId] = u;\r\n });\r\n\r\n return {\r\n ...state,\r\n ...{ gettingUsers: false, fetchedUsers: true, users, userLookup }\r\n };\r\n\r\n case actions.GETTING_USER_CONFIG:\r\n return {\r\n ...state,\r\n ...{ gettingUserConfig: true, fetchedUserConfig: false }\r\n };\r\n case actions.GET_USER_CONFIG_FAILED:\r\n return {\r\n ...state,\r\n ...{ gettingUserConfig: false, fetchedUserConfig: true }\r\n };\r\n case actions.GOT_USER_CONFIG:\r\n return {\r\n ...state,\r\n ...{\r\n gettingUserConfig: false,\r\n fetchedUserConfig: true,\r\n userConfig: action.config\r\n }\r\n };\r\n\r\n case actions.UPDATING_USER_CONFIG:\r\n return { ...state, updatingUserConfig: true, updatedUserConfig: false, updatedUserConfigFailed: false };\r\n case actions.UPDATED_USER_CONFIG:\r\n return { ...state, updatingUserConfig: false, updatedUserConfig: true, userConfig: { ...state.userConfig, ...action.configUpdate } };\r\n case actions.UPDATE_USER_CONFIG_FAILED:\r\n return { ...state, updatingUserConfig: false, updatedUserConfigFailed: true };\r\n\r\n case actions.UPDATING_USER:\r\n return { ...state, updatingUserStatus: \"fetching\" };\r\n case actions.UPDATED_USER:\r\n return { ...state, updatingUserStatus: \"succeeded\" };\r\n case actions.UPDATE_USER_FAILED:\r\n return { ...state, updatingUserStatus: \"failed\" };\r\n\r\n case actions.FETCHING_COMPANY_USER_SIGNATURES:\r\n return {\r\n ...state,\r\n isFetchingCompanyUserSignatures: true,\r\n fetchedCompanyUserSignatures: false,\r\n fetchingCompanyUserSignaturesFailed: false\r\n };\r\n case actions.FETCHED_COMPANY_USER_SIGNATURES:\r\n return {\r\n ...state,\r\n isFetchingCompanyUserSignatures: false,\r\n fetchedCompanyUserSignatures: true,\r\n fetchingCompanyUserSignaturesFailed: false,\r\n userSignatures: action.userSignatures\r\n };\r\n case actions.FETCH_COMPANY_USER_SIGNATURES_FAILED:\r\n return {\r\n ...state,\r\n isFetchingCompanyUserSignatures: false,\r\n fetchedCompanyUserSignatures: false,\r\n fetchingCompanyUserSignaturesFailed: true\r\n };\r\n\r\n case actions.UPDATING_COMPANY_USER_SIGNATURE:\r\n return {\r\n ...state,\r\n isUpdatingCompanyUserSignature: true,\r\n updatedCompanyUserSignature: false,\r\n updatingCompanyUserSignatureFailed: false\r\n };\r\n case actions.UPDATED_COMPANY_USER_SIGNATURE:\r\n return {\r\n ...state,\r\n isUpdatingCompanyUserSignature: false,\r\n updatedCompanyUserSignature: true,\r\n updatingCompanyUserSignatureFailed: false\r\n };\r\n case actions.UPDATE_COMPANY_USER_SIGNATURE_FAILED:\r\n return {\r\n ...state,\r\n isUpdatingCompanyUserSignature: false,\r\n updatedCompanyUserSignature: false,\r\n updatingCompanyUserSignatureFailed: true\r\n };\r\n\r\n case actions.UPDATING_SIGNATURE_ATTACHMENTS:\r\n return {\r\n ...state,\r\n isUpdatingSignatureAttachments: true,\r\n updatedSignatureAttachments: false,\r\n updatingSignatureAttachmentsFailed: false\r\n };\r\n case actions.UPDATED_SIGNATURE_ATTACHMENTS:\r\n return {\r\n ...state,\r\n isUpdatingSignatureAttachments: false,\r\n updatedSignatureAttachments: true,\r\n updatingSignatureAttachmentsFailed: false\r\n };\r\n case actions.UPDATE_SIGNATURE_ATTACHMENTS_FAILED:\r\n return {\r\n ...state,\r\n isUpdatingSignatureAttachments: false,\r\n updatedSignatureAttachments: false,\r\n updatingSignatureAttachmentsFailed: true\r\n };\r\n\r\n case actions.SELECT_COMPANY:\r\n if (state.usersCompanyId !== action.companyId) return { ...state, ...defaultCompanyUsersState };\r\n else return state;\r\n case actions.CLEAR_PASSWORD_ERRORS:\r\n return { ...state, validatePasswordErrors: [] };\r\n case actions.CLEAR_DATA:\r\n return defaultUserState;\r\n case actions.USER_ACTIVITY:\r\n return { ...state, shouldRefreshToken: true };\r\n\r\n case actions.NAVIGATING_BACK:\r\n return { ...state, navigatingBack: action.navigatingBack };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default userReducer;\r\n","import util from \"util\";\r\n\r\nimport data from \"../lib/data\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\n\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport { actions as UserActions } from \"./user-actions\";\r\nimport { isEmpty, isGuid, removeLeading, find, debounce } from \"../lib/utils\";\r\nimport { isNumeric } from \"jquery\";\r\nimport _ from \"lodash\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n GETTING_CONVERSATION_STATUSES: \"GETTING_CONVERSATION_STATUSES\",\r\n GOT_CONVERSATION_STATUSES: \"GOT_CONVERSATION_STATUSES\",\r\n GET_CONVERSATION_STATUSES_FAILED: \"GET_CONVERSATION_STATUSES_FAILED\",\r\n\r\n GETTING_CONVERSATIONS: \"GETTING_CONVERSATIONS\",\r\n GOT_CONVERSATIONS: \"GOT_CONVERSATIONS\",\r\n GET_CONVERSATIONS_FAILED: \"GET_CONVERSATIONS_FAILED\",\r\n\r\n GETTING_CONVERSATIONS_SEARCH_RESULTS: \"GETTING_CONVERSATIONS_SEARCH_RESULTS\",\r\n GOT_CONVERSATIONS_SEARCH_RESULTS: \"GOT_CONVERSATIONS_SEARCH_RESULTS\",\r\n FAILED_GET_CONVERSATIONS_SEARCH_RESULTS: \"FAILED_GET_CONVERSATIONS_SEARCH_RESULTS\",\r\n\r\n CLEAR_CONVERSATIONS_SEARCH_RESULTS: \"CLEAR_CONVERSATIONS_SEARCH_RESULTS\",\r\n\r\n GETTING_CONVERSATION: \"GETTING_CONVERSATION\",\r\n GOT_CONVERSATION: \"GOT_CONVERSATION\",\r\n GET_CONVERSATION_FAILED: \"GET_CONVERSATION_FAILED\",\r\n\r\n UPDATING_CONVERSATION_READ_STATUSES: \"UPDATING_CONVERSATION_READ_STATUSES\",\r\n UPDATED_CONVERSATION_READ_STATUSES: \"UPDATED_CONVERSATION_READ_STATUSES\",\r\n UPDATE_CONVERSATION_READ_STATUSES_FAILED: \"UPDATE_CONVERSATION_READ_STATUSES_FAILED\",\r\n\r\n DELETING_CONVERSATION: \"DELETING_CONVERSATION\",\r\n DELETED_CONVERSATION: \"DELETED_CONVERSATION\",\r\n DELETE_CONVERSATION_FAILED: \"DELETE_CONVERSATION_FAILED\",\r\n\r\n CREATING_CONVERSATION: \"CREATING_CONVERSATION\",\r\n CREATED_CONVERSATION: \"CREATED_CONVERSATION\",\r\n CREATE_CONVERSATION_FAILED: \"CREATE_CONVERSATION_FAILED\",\r\n\r\n ASSOCIATION_ADDED: \"ASSOCIATION_ADDED\",\r\n\r\n START_CONVERSATION: \"START_CONVERSATION\",\r\n CLEAR_CONVERSATION: \"CLEAR_CONVERSATION\",\r\n GOT_RELATED: \"GOT_RELATED\",\r\n SET_MAX_RELATED_LENGTH: \"SET_MAX_RELATED_LENGTH\",\r\n\r\n ASSIGNING_CONVERSATIONS: \"ASSIGNING_CONVERSATIONS\",\r\n ASSIGNED_CONVERSATIONS: \"ASSIGNED_CONVERSATIONS\",\r\n ASSIGN_CONVERSATIONS_FAILED: \"ASSIGN_CONVERSATIONS_FAILED\",\r\n\r\n SETTING_CONVERSATION_STATUSES: \"SETTING_CONVERSATION_STATUSES\",\r\n SET_CONVERSATION_STATUSES: \"SET_CONVERSATION_STATUSES\",\r\n SET_CONVERSATION_STATUSES_FAILED: \"SET_CONVERSATION_STATUSES_FAILED\",\r\n\r\n SET_CONVERSATION_MOVE_TO_NEXT: \"SET_CONVERSATION_MOVE_TO_NEXT\",\r\n\r\n SET_CONVERSATION_SORT: \"SET_CONVERSATION_SORT\",\r\n SET_DOCUMENT_SORT: \"SET_DOCUMENT_SORT\",\r\n\r\n GETTING_DOCUMENTS: \"GETTING_DOCUMENTS\",\r\n GOT_DOCUMENTS: \"GOT_DOCUMENTS\",\r\n GET_DOCUMENTS_FAILED: \"GET_DOCUMENTS_FAILED\",\r\n\r\n GETTING_REMINDERS: \"GETTING_REMINDERS\",\r\n GOT_REMINDERS: \"GOT_REMINDERS\",\r\n GET_REMINDERS_FAILED: \"GET_REMINDERS_FAILED\",\r\n\r\n GETTING_APPROVAL_REQUEST: \"GETTING_APPROVAL_REQUEST\",\r\n GOT_APPROVAL_REQUEST: \"GOT_APPROVAL_REQUEST\",\r\n GET_APPROVAL_REQUEST_FAILED: \"GET_APPROVAL_REQUEST_FAILED\",\r\n\r\n PUTTING_APPROVAL_REQUEST_ACTION: \"PUTTING_APPROVAL_REQUEST_ACTION\",\r\n PUT_APPROVAL_REQUEST_ACTION: \"PUT_APPROVAL_REQUEST_ACTION\",\r\n PUT_APPROVAL_REQUEST_ACTION_FAILED: \"PUT_APPROVAL_REQUEST_ACTION_FAILED\",\r\n\r\n SET_CONVERSATIONS_TO_SEARCH_RESULT: \"SET_CONVERSATIONS_TO_SEARCH_RESULT\",\r\n\r\n CLEAR_CONVERSATIONS: \"CLEAR_CONVERSATIONS\",\r\n\r\n // These actions are for the updated implementation of the conversation table component that uses SWR for data fetching. Eventually we can\r\n // remove any similar existing actions once we determine they aren't being used by any self-service portal components.\r\n SET_CONVERSATIONS_VIEW_SEARCH_TERM: \"SET_CONVERSATIONS_VIEW_SEARCH_TERM\",\r\n SET_CONVERSATIONS_VIEW_DATA: \"SET_CONVERSATIONS_VIEW_DATA\",\r\n SET_CONVERSATIONS_READ_STATUS: \"SET_CONVERSATIONS_READ_STATUS\",\r\n SET_CONVERSATIONS_CURRENT_PAGE: \"SET_CONVERSATIONS_CURRENT_PAGE\",\r\n SET_CONVERSATIONS_SEARCH_RESULTS_CURRENT_PAGE: \"SET_CONVERSATIONS_SEARCH_RESULTS_CURRENT_PAGE\",\r\n SET_CONVERSATIONS_LABEL: \"SET_CONVERSATIONS_LABEL\",\r\n SET_DISPLAYING_SEARCH_RESULTS: \"SET_DISPLAYING_SEARCH_RESULTS\",\r\n SET_UPDATING_SEARCH_RESULTS: \"SET_UPDATING_SEARCH_RESULTS\"\r\n }\r\n};\r\n\r\nconst getConversationStatuses = companyId => (dispatch, getState) => {\r\n let state = getState().conversations;\r\n if (state.companyId && state.companyId !== companyId) return;\r\n\r\n if (state.gettingStatuses) return;\r\n dispatch({ type: actions.GETTING_CONVERSATION_STATUSES, companyId });\r\n data\r\n .get(`v1/api/conversation/status/for/${companyId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_CONVERSATION_STATUSES,\r\n statuses: response.data,\r\n companyId\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_CONVERSATION_STATUSES_FAILED, companyId });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Getting the list of conversation statuses for the company failed. Please refresh the page.\",\r\n \"activity statuses\"\r\n );\r\n });\r\n};\r\n\r\nconst ensureConversationStatuses = () => (dispatch, getState) => {\r\n let state = getState().conversations;\r\n if (state.fetchedStatuses !== true && state.gettingStatuses !== true && isEmpty(state.companyId) === false)\r\n dispatch(getConversationStatuses(state.companyId));\r\n};\r\n\r\nconst getConversationStatus = statusId => (dispatch, getState) => {\r\n let statusesLookup = getState().conversations.statusesLookup;\r\n return statusesLookup[statusId];\r\n};\r\n\r\nconst getConversationStatusByName = name => (dispatch, getState) => {\r\n const statuses = getState().conversations.statuses;\r\n return find(statuses, status => {\r\n return status.conversationStatusName.toLowerCase() === name.toLowerCase();\r\n });\r\n};\r\n\r\n// TODO: companyId needs to be changed to contextGroupId, action and reducer are being worked on in another branch.\r\n// Needs a general overhaul\r\nconst refreshConversations = (companyId, perspective, withCompanyId) => (dispatch, getState) => {\r\n let state = getState().conversations;\r\n\r\n if (state.companyId && state.companyId !== companyId) return;\r\n if (isEmpty(state.conversations[perspective])) return;\r\n if (state.gettingConversations[perspective]) return;\r\n\r\n let withCompany = withCompanyId || state.withCompanyId;\r\n\r\n let label = isNumeric(withCompany) || isGuid(withCompany) ? \"\" : withCompany;\r\n let queryCompanyId = isEmpty(label) ? withCompany : undefined;\r\n dispatch({\r\n type: actions.GETTING_CONVERSATIONS,\r\n companyId,\r\n perspective,\r\n withCompany,\r\n clearConversations: true\r\n });\r\n data\r\n .get(\r\n `v2/api/conversation/for/${companyId}/${perspective}${\r\n isEmpty(queryCompanyId) === true ? \"\" : `/with/${withCompany}`\r\n }?$orderby=${state.sortBy}%20${state.sortDirection}&$top=${state.conversations[perspective].value.length}${\r\n isEmpty(label) ? \"\" : `&$label=${label}`\r\n }`\r\n )\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_CONVERSATIONS,\r\n conversations: response.data,\r\n companyId,\r\n perspective,\r\n withCompany\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: actions.GET_CONVERSATIONS_FAILED,\r\n companyId,\r\n perspective,\r\n withCompany\r\n });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Refreshing the list of conversations failed. Please refresh the page.\",\r\n \"conversations\"\r\n );\r\n });\r\n};\r\n\r\nconst getConversations = (companyId, perspective, withCompanyId, next, moveToNext, top, skip) => (\r\n dispatch,\r\n getState\r\n) => {\r\n let state = getState().conversations;\r\n if (state.companyId && state.companyId !== companyId) return;\r\n\r\n if ((state.withCompanyId === withCompanyId && state.gettingConversations[perspective]) || isEmpty(withCompanyId)) {\r\n return;\r\n }\r\n\r\n let label = isNumeric(withCompanyId) || isGuid(withCompanyId) ? \"\" : withCompanyId;\r\n let queryCompanyId = isEmpty(label) ? withCompanyId : undefined;\r\n\r\n let nextLink = next !== true ? null : removeLeading(\"/\", state.conversations[perspective].nextLink);\r\n if (next === true && isEmpty(nextLink)) return;\r\n\r\n dispatch({\r\n type: actions.GETTING_CONVERSATIONS,\r\n companyId,\r\n perspective,\r\n withCompanyId\r\n });\r\n data\r\n .get(\r\n nextLink ||\r\n `v2/api/conversation/for/${companyId}/${perspective}${\r\n isEmpty(queryCompanyId) === true ? \"?\" : `/with/${withCompanyId}?`\r\n }$orderby=${state.sortBy}%20${state.sortDirection}&$top=${top || getState().general.pageRowCount}${\r\n isEmpty(label) ? \"\" : `&$label=${label}`\r\n }${isEmpty(skip) ? \"\" : `&$skip=${skip}`}`\r\n )\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_CONVERSATIONS,\r\n conversations: response.data,\r\n companyId,\r\n perspective,\r\n withCompanyId,\r\n nextLink\r\n });\r\n dispatch({ type: actions.SET_CONVERSATION_MOVE_TO_NEXT, moveToNext });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: actions.GET_CONVERSATIONS_FAILED,\r\n companyId,\r\n perspective,\r\n withCompanyId\r\n });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Getting the list of conversations failed. Please refresh the page.\",\r\n \"conversations\"\r\n );\r\n });\r\n};\r\n\r\nconst getLabeledWithCompanyConversations = (companyId, perspective, withCompanyId, label, top, skip) => (\r\n dispatch,\r\n getState\r\n) => {\r\n let state = getState().conversations;\r\n if (state.companyId && state.companyId !== companyId) return;\r\n\r\n if (state.withCompanyId === withCompanyId && state.gettingConversations[perspective] && state.label === label) {\r\n return;\r\n }\r\n\r\n const gettingAction = {\r\n type: actions.GETTING_CONVERSATIONS,\r\n companyId,\r\n perspective,\r\n withCompanyId,\r\n label\r\n };\r\n\r\n if (label !== state.label) {\r\n gettingAction.clearConversations = true;\r\n }\r\n\r\n dispatch(gettingAction);\r\n data\r\n .get(\r\n `v2/api/conversation/for/${companyId}/${perspective}/with/${withCompanyId}?$orderby=${state.sortBy}%20${\r\n state.sortDirection\r\n }&$top=${top || getState().general.pageRowCount}&$label=${label}${isEmpty(skip) ? \"\" : `&$skip=${skip}`}`\r\n )\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_CONVERSATIONS,\r\n conversations: response.data,\r\n label,\r\n companyId,\r\n perspective,\r\n withCompanyId\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n label,\r\n type: actions.GET_CONVERSATIONS_FAILED,\r\n companyId,\r\n perspective,\r\n withCompanyId\r\n });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Getting the list of conversations failed. Please refresh the page.\",\r\n \"conversations\"\r\n );\r\n });\r\n};\r\n\r\nconst fetchConversationsSearchResults = (companyId, perspective, withCompanyId, params = {}) => (\r\n dispatch,\r\n getState\r\n) => {\r\n let state = getState().conversations;\r\n const { top = getState().general.pageRowCount, skip = 0, searchTerm, searchAttribute = \"subject\" } = params;\r\n\r\n if (state.companyId && state.companyId !== companyId) return;\r\n\r\n if ((state.withCompanyId === withCompanyId && state.gettingConversations[perspective]) || isEmpty(withCompanyId)) {\r\n return;\r\n }\r\n\r\n let label = isNumeric(withCompanyId) || isGuid(withCompanyId) ? \"\" : withCompanyId;\r\n let queryCompanyId = isEmpty(label) ? withCompanyId : undefined;\r\n\r\n let endpoint = `v2/api/conversation/for/${companyId}/${perspective}${\r\n isEmpty(queryCompanyId) === true ? \"?\" : `/with/${withCompanyId}?`\r\n }$orderby=${state.sortBy}%20${state.sortDirection}`;\r\n\r\n if (!isEmpty(top)) {\r\n endpoint = `${endpoint}?$top=${top}`;\r\n }\r\n if (!isEmpty(skip)) {\r\n endpoint = `${endpoint}&$skip=${skip}`;\r\n }\r\n if (!isEmpty(label)) {\r\n endpoint = `${endpoint}&$label=${label}`;\r\n }\r\n if (!isEmpty(searchTerm)) {\r\n endpoint = `${endpoint}&$filter=${searchAttribute}%20LIKE%20\"${searchTerm}\"`;\r\n }\r\n\r\n dispatch({\r\n type: actions.GETTING_CONVERSATIONS_SEARCH_RESULTS,\r\n companyId,\r\n perspective,\r\n withCompanyId,\r\n searchTerm\r\n });\r\n data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_CONVERSATIONS_SEARCH_RESULTS,\r\n conversations: response.data,\r\n companyId,\r\n perspective,\r\n withCompanyId,\r\n searchTerm\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: actions.FAILED_GET_CONVERSATIONS_SEARCH_RESULTS,\r\n companyId,\r\n perspective,\r\n withCompanyId\r\n });\r\n handlePromiseError(response, \"TODO: Searching conversations failed. Please refresh the page.\", \"conversations\");\r\n });\r\n};\r\n\r\nconst debouncedFetchConversationsSearchResultsGet = debounce(\r\n (companyId, perspective, withCompanyId, params = {}, dispatch, getState) => {\r\n let state = getState().conversations;\r\n const { top = getState().general.pageRowCount, skip = 0, searchTerm, searchAttribute = \"subject\" } = params;\r\n\r\n if (state.companyId && state.companyId !== companyId) return;\r\n\r\n if ((state.withCompanyId === withCompanyId && state.gettingConversations[perspective]) || isEmpty(withCompanyId)) {\r\n return;\r\n }\r\n\r\n let label = isNumeric(withCompanyId) || isGuid(withCompanyId) ? \"\" : withCompanyId;\r\n let queryCompanyId = isEmpty(label) ? withCompanyId : undefined;\r\n\r\n let endpoint = `v2/api/conversation/for/${companyId}/${perspective}${\r\n isEmpty(queryCompanyId) === true ? \"?\" : `/with/${withCompanyId}?`\r\n }$orderby=${state.sortBy}%20${state.sortDirection}`;\r\n\r\n if (!isEmpty(top)) {\r\n endpoint = `${endpoint}?$top=${top}`;\r\n }\r\n if (!isEmpty(skip)) {\r\n endpoint = `${endpoint}&$skip=${skip}`;\r\n }\r\n if (!isEmpty(label)) {\r\n endpoint = `${endpoint}&$label=${label}`;\r\n }\r\n if (!isEmpty(searchTerm)) {\r\n endpoint = `${endpoint}&$filter=${searchAttribute}%20LIKE%20\"${searchTerm}\"`;\r\n }\r\n\r\n dispatch({\r\n type: actions.GETTING_CONVERSATIONS_SEARCH_RESULTS,\r\n companyId,\r\n perspective,\r\n withCompanyId,\r\n searchTerm\r\n });\r\n data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_CONVERSATIONS_SEARCH_RESULTS,\r\n conversations: response.data,\r\n companyId,\r\n perspective,\r\n withCompanyId,\r\n searchTerm\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: actions.FAILED_GET_CONVERSATIONS_SEARCH_RESULTS,\r\n companyId,\r\n perspective,\r\n withCompanyId\r\n });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Searching conversations failed. Please refresh the page.\",\r\n \"conversations\"\r\n );\r\n });\r\n },\r\n 400\r\n);\r\n\r\nconst debouncedFetchConversationsSearchResults = (companyId, perspective, withCompanyId, params) => (\r\n dispatch,\r\n getState\r\n) => {\r\n const store = getState().conversations;\r\n if (store.gettingNetworkAccountSearchResults && _.isEqual(params.searchTerm, store.conversationsSearchTerm)) {\r\n return;\r\n }\r\n debouncedFetchConversationsSearchResultsGet(companyId, perspective, withCompanyId, params, dispatch, getState);\r\n};\r\n\r\nexport const fetchConversation = conversationId => (dispatch, getState) => {\r\n return data.get(`v1/api/conversation/${conversationId}`);\r\n};\r\n\r\nconst getConversation = conversationId => (dispatch, getState) => {\r\n dispatch({ type: UserActions.USER_ACTIVITY });\r\n let state = getState().conversations;\r\n if (state.gettingConversation) return;\r\n\r\n dispatch({ type: actions.GETTING_CONVERSATION, conversationId });\r\n return data\r\n .get(`v1/api/conversation/${conversationId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_CONVERSATION,\r\n conversation: response.data,\r\n conversationId\r\n });\r\n return response.data;\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_CONVERSATION_FAILED, conversationId });\r\n handlePromiseError(response, \"TODO: Getting the conversation failed. Please try again.\", \"conversation\");\r\n });\r\n};\r\n\r\nexport const refreshConversation = () => (dispatch, getState) => {\r\n let state = getState().conversations;\r\n if (isEmpty(state.conversationId) === true || state.conversationId === \"new\") return;\r\n\r\n return dispatch(getConversation(state.conversationId));\r\n};\r\n\r\nlet RELATED_PROMISES = {};\r\nconst fetchRelated = addressId => (dispatch, getState) => {\r\n let state = getState().conversations;\r\n let related = state.related[addressId];\r\n if (related) {\r\n return Promise.resolve({ data: related });\r\n }\r\n\r\n if (RELATED_PROMISES[addressId]) return RELATED_PROMISES[addressId];\r\n\r\n RELATED_PROMISES[addressId] = data\r\n .get(`v2/api/conversation/about/${addressId}?$top=${getState().general.pageRowCount}&$orderby=modifiedDate%20desc`)\r\n .then(response => {\r\n delete RELATED_PROMISES[addressId];\r\n dispatch({\r\n type: actions.GOT_RELATED,\r\n related: response.data,\r\n addressId\r\n });\r\n })\r\n .catch(response => {\r\n handlePromiseError(\r\n response,\r\n \"TODO: Getting related conversations failed. Please refresh the page.\",\r\n \"related conversations\"\r\n );\r\n });\r\n return RELATED_PROMISES[addressId];\r\n};\r\n\r\nconst deleteConversation = conversationId => (dispatch, getState) => {\r\n if (getState().conversations.isDeletingConversation) {\r\n return;\r\n }\r\n dispatch({ type: actions.DELETING_CONVERSATION });\r\n return data\r\n .delete(`v2/api/conversation/${conversationId}`)\r\n .then(response => {\r\n dispatch({ type: actions.DELETED_CONVERSATION });\r\n return true;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.DELETE_CONVERSATION_FAILED });\r\n handlePromiseError(error, \"TODO: Deleting the conversation failed. Please try again.\", \"conversation\");\r\n throw error;\r\n });\r\n};\r\n\r\nconst getRelated = addressId => (dispatch, getState) => {\r\n let state = getState().conversations;\r\n return state.related[addressId];\r\n};\r\n\r\nconst assignConversationsTo = (conversationIds, perspective, userId) => (dispatch, getState) => {\r\n let ids = util.isString(conversationIds) ? [conversationIds] : util.isArray(conversationIds) ? conversationIds : null;\r\n if (isEmpty(ids)) return Promise.resolve();\r\n if (getState().conversations.assigningConversations === true) throw new Error(\"already assigning...you must wait\");\r\n\r\n dispatch({ type: UserActions.USER_ACTIVITY });\r\n dispatch({ type: actions.ASSIGNING_CONVERSATIONS });\r\n return data\r\n .post(`v1/api/conversation/bulk/assign`, {\r\n conversationIds: ids,\r\n perspective,\r\n userId\r\n })\r\n .then(response => {\r\n dispatch({\r\n type: actions.ASSIGNED_CONVERSATIONS\r\n });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.ASSIGN_CONVERSATIONS_FAILED });\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Assigning the conversation failed. Please refresh the page and try again.\",\r\n \"conversation assignment\"\r\n );\r\n });\r\n};\r\n\r\nlet SET_CONVERSATION_STATUSES_PROMISE = null;\r\nconst setConversationStatusesTo = (conversations, statusId, suppressError) => (dispatch, getState) => {\r\n let items = util.isArray(conversations) ? conversations : [conversations];\r\n if (isEmpty(items)) throw new Error(\"invalid parameter type for conversations\");\r\n if (isEmpty(SET_CONVERSATION_STATUSES_PROMISE) !== true) throw new Error(\"already setting status...you must wait\");\r\n\r\n let statusToConversations = {};\r\n items.forEach(conversation =>\r\n statusToConversations[conversation.conversationStatusId]\r\n ? statusToConversations[conversation.conversationStatusId].push(conversation)\r\n : (statusToConversations[conversation.conversationStatusId] = [conversation])\r\n );\r\n\r\n dispatch({ type: UserActions.USER_ACTIVITY });\r\n dispatch({ type: actions.SETTING_CONVERSATION_STATUSES });\r\n SET_CONVERSATION_STATUSES_PROMISE = Promise.all(\r\n Object.keys(statusToConversations).map(key => {\r\n let fromConversationStatusId = statusToConversations[key][0].conversationStatusId;\r\n return data.post(`v1/api/conversation/status/workflow/advance/bulk`, {\r\n conversationIds: statusToConversations[key].map(conversation => conversation.conversationId),\r\n fromConversationStatusId,\r\n toConversationStatusId: statusId\r\n });\r\n })\r\n )\r\n .then(responses => {\r\n SET_CONVERSATION_STATUSES_PROMISE = null;\r\n dispatch({\r\n type: actions.SET_CONVERSATION_STATUSES,\r\n conversations: responses.map(response => {\r\n return response.data;\r\n })\r\n });\r\n return true;\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.SET_CONVERSATION_STATUSES_FAILED });\r\n if (suppressError !== true) {\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Setting the conversation status failed. Please refresh the page and try again.\",\r\n \"conversation status\"\r\n );\r\n }\r\n\r\n throw rejection;\r\n });\r\n return SET_CONVERSATION_STATUSES_PROMISE;\r\n};\r\n\r\nconst isSelectedCompanyMatch = companyId => (dispatch, getState) => {\r\n return companyId === getState().conversations.companyId;\r\n};\r\n\r\nexport const getConversationDocuments = (companyId, selector, next, perspective, top, skip) => (dispatch, getState) => {\r\n let state = getState().conversations.documents;\r\n\r\n let selectorIsGuid = isGuid(selector);\r\n\r\n // label acts as the withCompanyId or the label. ie. unassigned or mine\r\n let queryCompanyId = selectorIsGuid ? selector : undefined;\r\n\r\n let nextLink = next !== true ? null : removeLeading(\"/\", state.nextLink);\r\n if (next === true && isEmpty(nextLink)) return;\r\n\r\n dispatch({ type: actions.GETTING_DOCUMENTS, companyId, selector, perspectiveId: perspective, next });\r\n return data\r\n .get(\r\n nextLink ||\r\n `v2/api/ledger/attachments/list/${companyId}${selectorIsGuid ? `/with/${queryCompanyId}?` : \"?\"}$orderby=${\r\n state.sortBy\r\n }%20${state.sortDirection}&$top=${top || getState().general.pageRowCount}${\r\n selectorIsGuid ? \"\" : `&$label=${selector}`\r\n }&$filter=perspectiveid%20eq%20${perspective}${isEmpty(skip) ? \"\" : `&$skip=${skip}`}`\r\n )\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_DOCUMENTS,\r\n documents: response.data.value,\r\n companyId,\r\n selector,\r\n nextLink: response.data.nextLink,\r\n count: response.data.count,\r\n perspectiveId: perspective\r\n });\r\n return response.data.value;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"TODO: Getting the list of documents failed. Please refresh the page.\", \"documents\");\r\n dispatch({ type: actions.GET_DOCUMENTS_FAILED, companyId, selector, perspectiveId: perspective });\r\n });\r\n};\r\n\r\nexport const getReminders = (companyId, perspectiveId) => (dispatch, getState) => {\r\n dispatch({ type: actions.GETTING_REMINDERS, companyId, perspectiveId });\r\n return data\r\n .get(`v1/api/conversation/for/${companyId}/${perspectiveId}?$top=0&$label=reminder`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_REMINDERS,\r\n reminders: response.data.value,\r\n companyId,\r\n perspectiveId,\r\n count: response.data.count\r\n });\r\n return response.data.value;\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_REMINDERS_FAILED, companyId, perspectiveId });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Getting the list of reminders failed. Please refresh the page.\",\r\n \"reminders\"\r\n );\r\n });\r\n};\r\n\r\nexport const getApprovalRequest = (conversationId, signature) => (dispatch, getState) => {\r\n let state = getState().conversations;\r\n if (state.gettingApprovalRequest === true) return;\r\n\r\n dispatch({ type: actions.GETTING_APPROVAL_REQUEST, conversationId, signature });\r\n return data\r\n .get(`v2/api/approvalrequest/${conversationId}/${signature}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_APPROVAL_REQUEST,\r\n approvalRequest: response.data,\r\n conversationId,\r\n signature\r\n });\r\n return response.data;\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_APPROVAL_REQUEST_FAILED, conversationId, signature });\r\n handlePromiseError(response, \"TODO: We were unable to locate the approval information. Please try again.\");\r\n throw response;\r\n });\r\n};\r\n\r\nexport const putApprovalRequestAction = (conversationId, signature, action, comment) => (dispatch, getState) => {\r\n let state = getState().conversations;\r\n if (state.gettingConversation) return;\r\n\r\n dispatch({ type: actions.PUTTING_APPROVAL_REQUEST_ACTION, conversationId, signature, action });\r\n return data\r\n .put(\r\n `v2/api/approvalrequest/${conversationId}/${action}/${signature}`,\r\n { comment: comment },\r\n { headers: { Authorization: null } }\r\n )\r\n .then(response => {\r\n dispatch({\r\n type: actions.PUT_APPROVAL_REQUEST_ACTION,\r\n approvalRequest: response.data,\r\n conversationId,\r\n signature,\r\n action\r\n });\r\n return true;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.PUT_APPROVAL_REQUEST_ACTION_FAILED, conversationId, signature, action });\r\n handlePromiseError(\r\n error,\r\n \"TODO: Sending response to approval request failed, please try again or notify us if the issue persists.\"\r\n );\r\n throw error;\r\n });\r\n};\r\n\r\nexport const updateConversationReadStatuses = (conversationIds, isRead) => (dispatch, getState) => {\r\n let state = getState().conversations;\r\n\r\n if (state.isUpdatingConversationReadStatuses) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.UPDATING_CONVERSATION_READ_STATUSES });\r\n\r\n return data\r\n .post(\"v2/api/conversation/read\", { conversationIds, isRead })\r\n .then(response => {\r\n // This action will update the new store property for conversation data used by the updated conversation table component. Eventually once we\r\n // are using a single store property for conversation data, one of these dispatch calls can be removed.\r\n dispatch({\r\n type: actions.SET_CONVERSATIONS_READ_STATUS,\r\n conversationIds,\r\n isRead\r\n });\r\n\r\n dispatch({\r\n type: actions.UPDATED_CONVERSATION_READ_STATUSES,\r\n conversationIds,\r\n isRead\r\n });\r\n\r\n return true;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.UPDATE_CONVERSATION_READ_STATUSES_FAILED });\r\n handlePromiseError(\r\n error,\r\n \"TODO: Updating conversation read status failed, please try again or notify us if the issue persists.\"\r\n );\r\n throw error;\r\n });\r\n};\r\n\r\nconst setConversationsViewSearchTerm = (searchTerm) => (dispatch) => {\r\n dispatch({\r\n type: actions.SET_CONVERSATIONS_VIEW_SEARCH_TERM,\r\n conversationsViewSearchTerm: searchTerm\r\n });\r\n}\r\n\r\nconst setConversationsViewData = (data) => (dispatch) => {\r\n dispatch({\r\n type: actions.SET_CONVERSATIONS_VIEW_DATA,\r\n conversationsViewData: data\r\n });\r\n}\r\n\r\nconst setConversationsCurrentPage = (page) => (dispatch) => {\r\n dispatch({\r\n type: actions.SET_CONVERSATIONS_CURRENT_PAGE,\r\n conversationsCurrentPage: page\r\n });\r\n}\r\n\r\nconst setConversationsSearchResultsCurrentPage = (page) => (dispatch) => {\r\n dispatch({\r\n type: actions.SET_CONVERSATIONS_SEARCH_RESULTS_CURRENT_PAGE,\r\n conversationsSearchResultsCurrentPage: page\r\n });\r\n}\r\n\r\nconst setConversationsLabel = (value) => (dispatch) => {\r\n dispatch({\r\n type: actions.SET_CONVERSATIONS_LABEL,\r\n conversationsLabel: value\r\n });\r\n}\r\n\r\nconst setDisplayingSearchResults = (value) => (dispatch) => {\r\n dispatch({\r\n type: actions.SET_DISPLAYING_SEARCH_RESULTS,\r\n displayingSearchResults: value\r\n });\r\n}\r\n\r\nconst setUpdatingSearchResults = (value) => (dispatch) => {\r\n dispatch({\r\n type: actions.SET_UPDATING_SEARCH_RESULTS,\r\n updatingSearchResults: value\r\n });\r\n}\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n isSelectedCompanyMatch: companyId => {\r\n return dispatch(isSelectedCompanyMatch(companyId));\r\n },\r\n setConversationsToSearchResult: (searchResult, perspectiveId) => {\r\n dispatch({ type: actions.SET_CONVERSATIONS_TO_SEARCH_RESULT, perspectiveId, conversations: searchResult });\r\n },\r\n getConversationStatuses: companyId => {\r\n dispatch(getConversationStatuses(companyId));\r\n },\r\n ensureConversationStatuses: () => {\r\n dispatch(ensureConversationStatuses());\r\n },\r\n getConversationStatus: statusId => {\r\n return dispatch(getConversationStatus(statusId));\r\n },\r\n getConversationStatusByName: name => {\r\n return dispatch(getConversationStatusByName(name));\r\n },\r\n startConversation: activityType => {\r\n dispatch({ type: actions.START_CONVERSATION, activityType });\r\n },\r\n getConversations: (companyId, perspective, withCompanyId, next, moveToNext, top, skip) => {\r\n dispatch(getConversations(companyId, perspective, withCompanyId, next, moveToNext, top, skip));\r\n },\r\n fetchConversationsSearchResults: (companyId, perspective, withCompanyId, params) => {\r\n dispatch(fetchConversationsSearchResults(companyId, perspective, withCompanyId, params));\r\n },\r\n debouncedFetchConversationsSearchResultsGet: (companyId, perspective, withCompanyId, params) => {\r\n dispatch(debouncedFetchConversationsSearchResultsGet(companyId, perspective, withCompanyId, params));\r\n },\r\n debouncedFetchConversationsSearchResults: (companyId, perspective, withCompanyId, params) => {\r\n dispatch(debouncedFetchConversationsSearchResults(companyId, perspective, withCompanyId, params));\r\n },\r\n clearConversationsSearchResults: () => {\r\n dispatch({ type: actions.CLEAR_CONVERSATIONS_SEARCH_RESULTS });\r\n },\r\n getLabeledWithCompanyConversations: (companyId, perspective, withCompanyId, label, top, skip) => {\r\n dispatch(getLabeledWithCompanyConversations(companyId, perspective, withCompanyId, label, top, skip));\r\n },\r\n refreshConversations: (companyId, perspective, withCompanyId) => {\r\n dispatch(refreshConversations(companyId, perspective, withCompanyId));\r\n },\r\n fetchConversation: conversationId => {\r\n dispatch(fetchConversation(conversationId));\r\n },\r\n getConversation: conversationId => {\r\n return dispatch(getConversation(conversationId));\r\n },\r\n deleteConversation: conversationId => {\r\n return dispatch(deleteConversation(conversationId));\r\n },\r\n refreshConversation: () => {\r\n return dispatch(refreshConversation());\r\n },\r\n clearConversations: () => dispatch({ type: actions.CLEAR_CONVERSATIONS }),\r\n clearConversation: () => {\r\n dispatch({ type: actions.CLEAR_CONVERSATION });\r\n dispatch({ type: UserActions.USER_ACTIVITY });\r\n },\r\n assignConversationsTo: (conversationIds, perspective, userId) => {\r\n return dispatch(assignConversationsTo(conversationIds, perspective, userId));\r\n },\r\n setConversationStatusesTo: (conversations, statusId, suppressError) => {\r\n return dispatch(setConversationStatusesTo(conversations, statusId, suppressError));\r\n },\r\n getRelated: addressId => {\r\n return dispatch(getRelated(addressId));\r\n },\r\n fetchRelated: addressId => {\r\n return dispatch(fetchRelated(addressId));\r\n },\r\n setMaxRelatedLength: maxStorageSize => {\r\n dispatch({\r\n type: actions.SET_MAX_RELATED_LENGTH,\r\n maxLength: maxStorageSize\r\n });\r\n },\r\n setMoveToNext: bool => {\r\n return dispatch({\r\n type: actions.SET_CONVERSATION_MOVE_TO_NEXT,\r\n moveToNext: bool\r\n });\r\n },\r\n setConversationSort: (sortBy, sortDirection) => {\r\n return dispatch({\r\n type: actions.SET_CONVERSATION_SORT,\r\n sortBy,\r\n sortDirection\r\n });\r\n },\r\n setDocumentSort: (sortBy, sortDirection) => {\r\n return dispatch({\r\n type: actions.SET_DOCUMENT_SORT,\r\n sortBy,\r\n sortDirection\r\n });\r\n },\r\n getConversationDocuments: (companyId, perspective, withCompanyId, next, top, skip) => {\r\n return dispatch(getConversationDocuments(companyId, perspective, withCompanyId, next, top, skip));\r\n },\r\n getReminders: (companyId, perspectiveId) => {\r\n return dispatch(getReminders(companyId, perspectiveId));\r\n },\r\n getApprovalRequest: (conversationId, signature) => {\r\n return dispatch(getApprovalRequest(conversationId, signature));\r\n },\r\n putApprovalRequestAction: (conversationId, signature, action, comment) => {\r\n return dispatch(putApprovalRequestAction(conversationId, signature, action, comment));\r\n },\r\n updateConversationReadStatuses: (conversationIds, isRead) => {\r\n return dispatch(updateConversationReadStatuses(conversationIds, isRead));\r\n },\r\n setConversationsViewSearchTerm: (searchTerm) => {\r\n dispatch(setConversationsViewSearchTerm(searchTerm));\r\n },\r\n setConversationsViewData: (data) => {\r\n dispatch(setConversationsViewData(data));\r\n },\r\n setConversationsCurrentPage: (page) => {\r\n dispatch(setConversationsCurrentPage(page));\r\n },\r\n setConversationsSearchResultsCurrentPage: (page) => {\r\n dispatch(setConversationsSearchResultsCurrentPage(page));\r\n },\r\n setConversationsLabel: (value) => {\r\n dispatch(setConversationsLabel(value));\r\n },\r\n setDisplayingSearchResults: (value) => {\r\n dispatch(setDisplayingSearchResults(value));\r\n },\r\n setUpdatingSearchResults: (value) => {\r\n dispatch(setUpdatingSearchResults(value));\r\n }\r\n});\r\n","import { actions } from \"./conversations-actions\";\r\nimport { replaceAt, findIndex, isEmpty, includes } from \"../lib/utils\";\r\n\r\nexport const defaultConversationsState = {\r\n companyId: null,\r\n withCompanyId: null,\r\n\r\n isShowingSearchResult: false,\r\n\r\n gettingConversations: {},\r\n fetchedConversations: {},\r\n conversations: {},\r\n gettingConversation: false,\r\n conversationId: null,\r\n conversation: {},\r\n related: {\r\n maxLength: 500,\r\n keys: []\r\n },\r\n creatingConversation: false,\r\n gettingStatuses: false,\r\n fetchedStatuses: false,\r\n statuses: [],\r\n statusesLookup: {},\r\n isUpdatingConversationReadStatuses: false,\r\n updatedConversationReadStatuses: false,\r\n failedUpdatingConversationReadStatuses: false,\r\n\r\n assigningConversations: false,\r\n settingConversationStatuses: false,\r\n setConversationStatuses: false,\r\n failedSetConversationStatuses: false,\r\n moveToNext: false,\r\n sortBy: \"ModifiedDate\",\r\n sortDirection: \"desc\",\r\n\r\n isDeletingConversation: false,\r\n\r\n gettingDocuments: false,\r\n gotDocuments: false,\r\n failedGetDocuments: null,\r\n documents: {\r\n value: [],\r\n nextLink: null,\r\n count: null,\r\n sortBy: \"CreatedDate\",\r\n sortDirection: \"desc\"\r\n },\r\n\r\n perspectiveId: null,\r\n gettingReminders: false,\r\n gotReminders: false,\r\n failedGetReminders: false,\r\n reminders: {\r\n value: [],\r\n nextLink: null,\r\n count: null,\r\n sortBy: \"createdDate\",\r\n sortDirection: \"desc\"\r\n },\r\n\r\n gettingApprovalRequest: false,\r\n getApprovalRequest: false,\r\n failedGetApprovalRequest: false,\r\n approvalRequest: {},\r\n\r\n puttingApprovalRequestAction: false,\r\n putApprovalRequestAction: false,\r\n failedPutApprovalRequestAction: false,\r\n\r\n gettingConversationsSearchResults: false,\r\n gotConversationsSearchResults: false,\r\n failedGetConversationsSearchResults: false,\r\n conversationsSearchTerm: \"\",\r\n conversationsSearchResults: {\r\n value: [],\r\n count: 0\r\n },\r\n\r\n // These properties are for the updated implementation of the conversation table component that uses SWR for data fetching. Eventually we can\r\n // remove any similar existing properties once we determine they aren't being used by any self-service portal components.\r\n conversationsViewSearchTerm: \"\",\r\n conversationsViewData: {\r\n value: [],\r\n count: 0\r\n },\r\n conversationsCurrentPage: 1,\r\n conversationsSearchResultsCurrentPage: 1,\r\n conversationsLabel: \"mine\",\r\n displayingSearchResults: false,\r\n updatingSearchResults: false\r\n};\r\n\r\nconst ItemTypes = {\r\n Conversations: \"CONVERSATIONS\",\r\n Conversation: \"CONVERSATION\"\r\n};\r\n\r\nfunction conversationsReducer(state = defaultConversationsState, action) {\r\n if (window.logToConsole) {\r\n console.log(action);\r\n }\r\n\r\n if (action.type === actions.SELECT_COMPANY) {\r\n if (state.companyId === action.companyId) return state;\r\n return { ...defaultConversationsState, companyId: action.companyId };\r\n }\r\n\r\n switch (action.type) {\r\n case actions.SET_CONVERSATIONS_TO_SEARCH_RESULT:\r\n return {\r\n ...state,\r\n isShowingSearchResult: true,\r\n conversations: {\r\n ...state.conversations,\r\n [action.perspectiveId]: { ...state.conversations[action.perspectiveId], value: action.conversations }\r\n }\r\n };\r\n case actions.GETTING_CONVERSATION_STATUSES:\r\n return { ...state, ...{ gettingStatuses: true, fetchedStatuses: false } };\r\n case actions.GET_CONVERSATION_STATUSES_FAILED:\r\n return {\r\n ...state,\r\n ...{ gettingStatuses: false, fetchedStatuses: false }\r\n };\r\n case actions.GOT_CONVERSATION_STATUSES:\r\n if (state.gettingStatuses !== true) return state;\r\n let statuses = [...action.statuses];\r\n let statusesLookup = {};\r\n statuses.sort((a, b) => {\r\n return a < b ? 1 : a === b ? 0 : -1;\r\n });\r\n statuses.forEach(s => {\r\n const getDisplayStyle = name => {\r\n switch (name) {\r\n case \"active\":\r\n return \"highlight\";\r\n case \"closed\":\r\n case \"spam\":\r\n return \"lowlight\";\r\n default:\r\n return \"normal\";\r\n }\r\n };\r\n s.displayStyle = s.displayStyle || getDisplayStyle(s.conversationStatusName.toLocaleLowerCase());\r\n statusesLookup[s.conversationStatusId] = s;\r\n });\r\n return {\r\n ...state,\r\n ...{\r\n gettingStatuses: false,\r\n fetchedStatuses: true,\r\n statuses,\r\n statusesLookup\r\n }\r\n };\r\n\r\n case actions.UPDATING_CONVERSATION_READ_STATUSES:\r\n return {\r\n ...state,\r\n isUpdatingConversationReadStatuses: true,\r\n updatedConversationReadStatuses: false,\r\n failedUpdatingConversationReadStatuses: false\r\n };\r\n\r\n case actions.UPDATED_CONVERSATION_READ_STATUSES:\r\n let nextConversations = {};\r\n Object.keys(state.conversations).forEach(perspectiveId => {\r\n const newValue = state.conversations[perspectiveId].value.map(conv => {\r\n const _conv = { ...conv };\r\n if (includes(action.conversationIds, conv.conversationId)) {\r\n _conv.hasUnreads = !action.isRead;\r\n }\r\n\r\n return _conv;\r\n });\r\n\r\n nextConversations[perspectiveId] = {\r\n ...state.conversations[perspectiveId],\r\n value: newValue\r\n };\r\n });\r\n\r\n return {\r\n ...state,\r\n isUpdatingConversationReadStatuses: false,\r\n updatedConversationReadStatuses: true,\r\n failedUpdatingConversationReadStatuses: false,\r\n conversations: nextConversations\r\n };\r\n case actions.UPDATE_CONVERSATION_READ_STATUSES_FAILED:\r\n return {\r\n ...state,\r\n isUpdatingConversationReadStatuses: false,\r\n updatedConversationReadStatuses: false,\r\n failedUpdatingConversationReadStatuses: true\r\n };\r\n\r\n case actions.CLEAR_CONVERSATIONS:\r\n return { ...state, conversations: {} };\r\n\r\n case actions.GETTING_CONVERSATIONS:\r\n let gcState = updateGettingFetched(state, action.perspective, true, ItemTypes.Conversations);\r\n if (gcState.withCompanyId !== action.withCompanyId && action.withCompanyId) {\r\n gcState.withCompanyId = action.withCompanyId;\r\n gcState.conversations = {};\r\n }\r\n if (action.clearConversations) {\r\n gcState.conversations = {};\r\n }\r\n gcState.label = action.label;\r\n gcState.isShowingSearchResult = false;\r\n return gcState;\r\n case actions.GET_CONVERSATIONS_FAILED:\r\n return updateGettingFetched(state, action.perspective, false, ItemTypes.Conversations);\r\n case actions.GOT_CONVERSATIONS:\r\n if (action.label && state.label !== action.label) {\r\n if (action.label === \"unassigned\" && isEmpty(state.unassignedUnreads)) {\r\n // allow state to update unassignedUnreads with out of order fetch\r\n return { ...state, unassignedUnreads: getUnreadCount(action.conversations.value) };\r\n }\r\n return state;\r\n }\r\n if (state.gettingConversations[action.perspective] !== true) return state;\r\n if (state.withCompanyId !== action.withCompanyId && action.withCompanyId) return state;\r\n\r\n let gcsState = updateGettingFetched(state, action.perspective, false, ItemTypes.Conversations);\r\n let gcs = action.conversations;\r\n\r\n if (action.nextLink) {\r\n gcs.value = [...gcsState.conversations[action.perspective].value, ...action.conversations.value];\r\n }\r\n\r\n gcsState.conversations[action.perspective] = gcs;\r\n if (action.label === \"unassigned\") {\r\n gcsState.unassignedUnreads = getUnreadCount(gcs.value);\r\n }\r\n gcsState.withCompanyId = action.withCompanyId;\r\n return gcsState;\r\n\r\n case actions.GETTING_CONVERSATIONS_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n gettingConversationsSearchResults: true,\r\n gotConversationsSearchResults: false,\r\n failedGetConversationsSearchResults: false,\r\n conversationsSearchTerm: action.searchTerm\r\n };\r\n case actions.GOT_CONVERSATIONS_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n gettingConversationsSearchResults: false,\r\n gotConversationsSearchResults: true,\r\n failedGetConversationsSearchResults: false,\r\n conversationsSearchResults: {\r\n ...action.conversations\r\n }\r\n };\r\n case actions.FAILED_GET_CONVERSATIONS_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n gettingConversationsSearchResults: false,\r\n gotConversationsSearchResults: false,\r\n failedGetConversationsSearchResults: true\r\n };\r\n case actions.CLEAR_CONVERSATIONS_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n gettingConversationsSearchResults: false,\r\n gotConversationsSearchResults: false,\r\n failedGetConversationsSearchResults: false,\r\n conversationsSearchResults: defaultConversationsState.conversationsSearchResults,\r\n conversationsSearchTerm: defaultConversationsState.conversationsSearchTerm\r\n };\r\n\r\n case actions.ASSOCIATION_ADDED:\r\n let aaState = { ...state };\r\n aaState = updateConversations(aaState, \"conversations\", action.conversation);\r\n if (aaState.conversationId === action.conversation.conversationId) {\r\n aaState.conversation = action.conversation;\r\n }\r\n return aaState;\r\n\r\n case actions.GETTING_CONVERSATION:\r\n return {\r\n ...state,\r\n ...{ gettingConversation: true, conversationId: action.conversationId }\r\n };\r\n case actions.GET_CONVERSATION_FAILED:\r\n if (action.conversationId !== state.conversationId) {\r\n return state;\r\n }\r\n return {\r\n ...state,\r\n ...{\r\n gettingConversation: false,\r\n conversationId: null,\r\n conversation: {}\r\n }\r\n };\r\n case actions.CLEAR_CONVERSATION:\r\n return {\r\n ...state,\r\n ...{\r\n gettingConversation: false,\r\n conversationId: null,\r\n conversation: {}\r\n }\r\n };\r\n case actions.GOT_CONVERSATION:\r\n if (action.conversationId !== state.conversationId) {\r\n return state;\r\n }\r\n return {\r\n ...state,\r\n ...{\r\n gettingConversation: false,\r\n conversation: action.conversation,\r\n conversationId: action.conversationId\r\n }\r\n };\r\n case actions.START_CONVERSATION:\r\n return {\r\n ...state,\r\n ...{\r\n gettingConversation: false,\r\n conversationId: \"new\",\r\n conversation: { new: true, participantIds: [], activityType: action.activityType }\r\n }\r\n };\r\n\r\n case actions.SET_MAX_RELATED_LENGTH:\r\n if (state.related.maxLength > action.maxLength) return state;\r\n let smrLength = { ...state.related };\r\n smrLength.maxLength = action.maxLength;\r\n return { ...state, ...{ related: smrLength } };\r\n\r\n case actions.GOT_RELATED:\r\n if (state.related[action.addressId]) return state;\r\n let grState = { ...state };\r\n let gr = { ...grState.related };\r\n grState.related = gr;\r\n let grKeys = [...gr.keys];\r\n gr.keys = grKeys;\r\n grKeys.unshift(action.addressId);\r\n gr[action.addressId] = action.related;\r\n if (grKeys.length > gr.maxLength) {\r\n let popped = grKeys.pop();\r\n delete gr[popped];\r\n }\r\n return grState;\r\n\r\n case actions.CREATING_CONVERSATION:\r\n return { ...state, creatingConversation: true };\r\n case actions.CREATE_CONVERSATION_FAILED:\r\n return { ...state, creatingConversation: false };\r\n case actions.CREATED_CONVERSATION:\r\n let createdState = { ...state, creatingConversation: false };\r\n\r\n createdState = insertConversation(createdState, \"conversations\", action.conversation);\r\n\r\n return createdState;\r\n\r\n case actions.DELETING_CONVERSATION:\r\n return { ...state, isDeletingConversation: true };\r\n case actions.DELETED_CONVERSATION:\r\n return { ...state, isDeletingConversation: false };\r\n case actions.DELETE_CONVERSATION_FAILED:\r\n return { ...state, isDeletingConversation: false };\r\n\r\n case actions.ASSIGNING_CONVERSATIONS:\r\n return { ...state, assigningConversations: true };\r\n case actions.ASSIGN_CONVERSATIONS_FAILED:\r\n return { ...state, assigningConversations: false };\r\n\r\n case actions.SETTING_CONVERSATION_STATUSES:\r\n return {\r\n ...state,\r\n settingConversationStatuses: true,\r\n setConversationStatuses: false,\r\n failedSetConversationStatuses: false\r\n };\r\n case actions.SET_CONVERSATION_STATUSES_FAILED:\r\n return {\r\n ...state,\r\n settingConversationStatuses: false,\r\n setConversationStatuses: false,\r\n failedSetConversationStatuses: true\r\n };\r\n\r\n case actions.SET_CONVERSATION_STATUSES:\r\n return {\r\n ...state,\r\n settingConversationStatuses: false,\r\n setConversationStatuses: true,\r\n failedSetConversationStatuses: false\r\n };\r\n case actions.ASSIGNED_CONVERSATIONS:\r\n return {\r\n ...state,\r\n assigningConversations: false\r\n };\r\n\r\n case actions.SET_CONVERSATION_MOVE_TO_NEXT:\r\n return { ...state, moveToNext: action.moveToNext };\r\n\r\n case actions.SET_CONVERSATION_SORT:\r\n return {\r\n ...state,\r\n sortBy: action.sortBy,\r\n sortDirection: action.sortDirection\r\n };\r\n\r\n case actions.SET_DOCUMENT_SORT:\r\n return {\r\n ...state,\r\n documents: { ...state.documents, sortBy: action.sortBy, sortDirection: action.sortDirection }\r\n };\r\n\r\n case actions.GETTING_DOCUMENTS:\r\n if (!action.next) {\r\n return {\r\n ...state,\r\n gettingDocuments: true,\r\n failedGetDocuments: false,\r\n gotDocuments: false,\r\n documents: { ...state.documents, value: [] },\r\n selector: action.selector,\r\n perspectiveId: action.perspectiveId\r\n };\r\n }\r\n return {\r\n ...state,\r\n gettingDocuments: true,\r\n failedGetDocuments: false,\r\n gotDocuments: false,\r\n selector: action.selector\r\n };\r\n case actions.GET_DOCUMENTS_FAILED:\r\n if (action.selector !== state.selector || state.perspectiveId !== action.perspectiveId) {\r\n return state;\r\n }\r\n return {\r\n ...state,\r\n gettingDocuments: false,\r\n failedGetDocuments: true,\r\n gotDocuments: false,\r\n documents: defaultConversationsState.documents\r\n };\r\n case actions.GOT_DOCUMENTS:\r\n if (\r\n (!isEmpty(state.selector) && state.selector !== action.selector) ||\r\n state.companyId !== action.companyId ||\r\n state.perspectiveId !== action.perspectiveId\r\n ) {\r\n return state;\r\n }\r\n\r\n return {\r\n ...state,\r\n gettingDocuments: false,\r\n failedGetDocuments: false,\r\n gotDocuments: true,\r\n documents: {\r\n ...state.documents,\r\n nextLink: action.nextLink,\r\n count: action.count,\r\n value: [...state.documents.value, ...action.documents]\r\n },\r\n selector: action.selector\r\n };\r\n case actions.GETTING_REMINDERS:\r\n if (state.perspectiveId !== action.perspectiveId || state.companyId !== action.companyId) {\r\n return {\r\n ...state,\r\n gettingReminders: true,\r\n failedGetReminders: false,\r\n gotReminders: false,\r\n reminders: defaultConversationsState.reminders,\r\n perspectiveId: action.perspectiveId,\r\n companyId: action.companyId\r\n };\r\n }\r\n return {\r\n ...state,\r\n gettingReminders: true,\r\n failedGetReminders: false,\r\n gotReminders: false,\r\n perspectiveId: action.perspectiveId\r\n };\r\n case actions.GET_REMINDERS_FAILED:\r\n if (action.perspectiveId !== state.perspectiveId) {\r\n return state;\r\n }\r\n return {\r\n ...state,\r\n gettingReminders: false,\r\n failedGetReminders: true,\r\n gotReminders: false,\r\n reminders: { ...defaultConversationsState.reminders, count: state.reminders.count }\r\n };\r\n case actions.GOT_REMINDERS:\r\n if (state.perspectiveId !== action.perspectiveId || state.companyId !== action.companyId) {\r\n return state;\r\n }\r\n return {\r\n ...state,\r\n gettingReminders: false,\r\n failedGetReminders: false,\r\n gotReminders: true,\r\n reminders: {\r\n nextLink: action.nextLink,\r\n count: action.count,\r\n value: [...state.reminders.value, ...action.reminders]\r\n },\r\n perspectiveId: action.perspectiveId\r\n };\r\n case actions.GETTING_APPROVAL_REQUEST:\r\n return {\r\n ...state,\r\n gettingApprovalRequest: true,\r\n getApprovalRequest: false,\r\n failedGetApprovalRequest: false,\r\n approvalRequest: {}\r\n };\r\n case actions.GOT_APPROVAL_REQUEST:\r\n return {\r\n ...state,\r\n gettingApprovalRequest: false,\r\n getApprovalRequest: true,\r\n failedGetApprovalRequest: false,\r\n approvalRequest: action.approvalRequest\r\n };\r\n case actions.GET_APPROVAL_REQUEST_FAILED:\r\n return {\r\n ...state,\r\n gettingApprovalRequest: false,\r\n getApprovalRequest: false,\r\n failedGetApprovalRequest: true\r\n };\r\n\r\n case actions.PUTTING_APPROVAL_REQUEST_ACTION:\r\n return {\r\n ...state,\r\n puttingApprovalRequestAction: true,\r\n putApprovalRequestAction: false,\r\n failedPutApprovalRequestAction: false\r\n };\r\n case actions.PUT_APPROVAL_REQUEST_ACTION:\r\n return {\r\n ...state,\r\n puttingApprovalRequestAction: false,\r\n putApprovalRequestAction: true,\r\n failedPutApprovalRequestAction: false\r\n };\r\n case actions.PUT_APPROVAL_REQUEST_ACTION_FAILED:\r\n return {\r\n ...state,\r\n puttingApprovalRequestAction: false,\r\n putApprovalRequestAction: false,\r\n failedPutApprovalRequestAction: true\r\n };\r\n case actions.CLEAR_DATA:\r\n return defaultConversationsState;\r\n case actions.SET_CONVERSATIONS_VIEW_SEARCH_TERM:\r\n return {\r\n ...state,\r\n conversationsViewSearchTerm: action.conversationsViewSearchTerm\r\n }\r\n case actions.SET_CONVERSATIONS_VIEW_DATA:\r\n return {\r\n ...state,\r\n conversationsViewData: {\r\n ...action.conversationsViewData\r\n }\r\n }\r\n case actions.SET_CONVERSATIONS_READ_STATUS:\r\n const updatedConversationsViewData = { ...state.conversationsViewData };\r\n let conversation;\r\n\r\n action.conversationIds.forEach(conversationId => {\r\n conversation = updatedConversationsViewData.value.find(row => row.conversationId === conversationId);\r\n\r\n if (conversation) {\r\n conversation.hasUnreads = !action.isRead;\r\n }\r\n })\r\n\r\n return {\r\n ...state,\r\n conversationsViewData: {\r\n ...updatedConversationsViewData\r\n }\r\n }\r\n case actions.SET_CONVERSATIONS_CURRENT_PAGE:\r\n return {\r\n ...state,\r\n conversationsCurrentPage: action.conversationsCurrentPage\r\n }\r\n case actions.SET_CONVERSATIONS_SEARCH_RESULTS_CURRENT_PAGE:\r\n return {\r\n ...state,\r\n conversationsSearchResultsCurrentPage: action.conversationsSearchResultsCurrentPage\r\n }\r\n case actions.SET_CONVERSATIONS_LABEL:\r\n return {\r\n ...state,\r\n conversationsLabel: action.conversationsLabel\r\n }\r\n case actions.SET_DISPLAYING_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n displayingSearchResults: action.displayingSearchResults\r\n }\r\n case actions.SET_UPDATING_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n updatingSearchResults: action.updatingSearchResults\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nfunction updateGettingFetched(state, perspective, value, type) {\r\n let newState = { ...state };\r\n let getting = {};\r\n let fetched = {};\r\n switch (type) {\r\n case ItemTypes.Conversations:\r\n getting = { ...newState.gettingConversations };\r\n newState.gettingConversations = getting;\r\n fetched = { ...newState.fetchedConversations };\r\n newState.fetchedConversations = fetched;\r\n break;\r\n default:\r\n return state;\r\n }\r\n\r\n if (value) getting[perspective] = value;\r\n else {\r\n delete getting[perspective];\r\n fetched[perspective] = true;\r\n }\r\n return newState;\r\n}\r\n\r\nfunction getUnreadCount(messageList){\r\n let unreadCount = 0;\r\n messageList.forEach( (msg) => {\r\n if(msg.conversationAddresses[0].unread){\r\n unreadCount++;\r\n }\r\n })\r\n return unreadCount;\r\n}\r\n\r\nfunction updateConversations(state, type, conversation) {\r\n let conversations = { ...state[type] };\r\n let perspectives = Object.keys(conversations);\r\n perspectives.forEach(perspective => {\r\n let item = { ...conversations[perspective] };\r\n let found = findIndex(item.value, i => {\r\n return i.conversationId === conversation.conversationId;\r\n });\r\n if (found >= 0) {\r\n item.value = replaceAt(item.value, found, conversation);\r\n conversations[perspective] = item;\r\n }\r\n });\r\n return { ...state, [type]: conversations };\r\n}\r\n\r\nfunction insertConversation(state, type, perspective, conversation) {\r\n let conversations = { ...state[type] };\r\n let items = { ...conversations[perspective] };\r\n\r\n items.value = [conversation, ...items.value];\r\n conversations[perspective] = items;\r\n\r\n return { ...state, [type]: conversations };\r\n}\r\n\r\nexport default conversationsReducer;\r\n","import moment from \"moment\";\r\n\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport { refreshConversation } from \"./conversations-actions\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\n\r\nimport data from \"../lib/data\";\r\nimport Resources from \"../lib/resources\";\r\nimport {\r\n isEmpty,\r\n compareDates,\r\n getQueryParameters,\r\n find,\r\n createKey,\r\n getAttatchedDocumentLedgerContent,\r\n saveBlobAsDownload\r\n} from \"../lib/utils\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n SELECT_RELATIONSHIP: \"SELECT_RELATIONSHIP\",\r\n\r\n GETTING_GRANTS_FROM: \"GETTING_GRANTS_FROM\",\r\n GOT_GRANTS_FROM: \"GOT_GRANTS_FROM\",\r\n GET_GRANTS_FROM_FAILED: \"GET_GRANTS_FROM_FAILED\",\r\n\r\n GETTING_GRANTS_TO: \"GETTING_GRANTS_TO\",\r\n GOT_GRANTS_TO: \"GOT_GRANTS_TO\",\r\n GET_GRANTS_TO_FAILED: \"GET_GRANTS_TO_FAILED\",\r\n\r\n FETCHING_RESOURCES: \"FETCHING_RESOURCES\",\r\n FETCHED_RESOURCES: \"FETCHED_RESOURCES\",\r\n FETCH_RESOURCES_FAILED: \"FETCH_RESOURCES_FAILED\",\r\n\r\n FETCHING_RESOURCE_CONFIG_SCHEMA: \"FETCHING_RESOURCE_CONFIG_SCHEMA\",\r\n FETCHED_RESOURCE_CONFIG_SCHEMA: \"FETCHED_RESOURCE_CONFIG_SCHEMA\",\r\n FETCH_RESOURCE_CONFIG_SCHEMA_FAILED: \"FETCH_RESOURCE_CONFIG_SCHEMA_FAILED\",\r\n\r\n GETTING_RESOURCES_FROM: \"GETTING_RESOURCES_FROM\",\r\n GOT_RESOURCES_FROM: \"GOT_RESOURCES_FROM\",\r\n GET_RESOURCES_FROM_FAILED: \"GET_RESOURCES_FROM_FAILED\",\r\n\r\n GETTING_RESOURCES_TO: \"GETTING_RESOURCES_TO\",\r\n GOT_RESOURCES_TO: \"GOT_RESOURCES_TO\",\r\n GET_RESOURCES_TO_FAILED: \"GET_RESOURCES_TO_FAILED\",\r\n\r\n FETCHING_COMPANY_RESOURCES: \"FETCHING_COMPANY_RESOURCES\",\r\n FETCHED_COMPANY_RESOURCES: \"FETCHED_COMPANY_RESOURCES\",\r\n FETCH_COMPANY_RESOURCES_FAILED: \"FETCH_COMPANY_RESOURCES_FAILED\",\r\n\r\n CREATING_DRAFT: \"CREATING_DRAFT\",\r\n CREATED_DRAFT: \"CREATED_DRAFT\",\r\n CREATE_DRAFT_FAILED: \"CREATE_DRAFT_FAILED\",\r\n\r\n FORWARDING_DRAFT: \"FORWARDING_DRAFT\",\r\n FORWARDED_DRAFT: \"FORWARDED_DRAFT\",\r\n FORWARDED_DRAFT_FAILED: \"FORWARDED_DRAFT_FAILED\",\r\n\r\n COMMITTING_DRAFT: \"COMMITTING_DRAFT\",\r\n COMMITTED_DRAFT: \"COMMITTED_DRAFT\",\r\n COMMIT_DRAFT_FAILED: \"COMMIT_DRAFT_FAILED\",\r\n\r\n CREATING_ENTRY: \"CREATING_ENTRY\",\r\n CREATED_ENTRY: \"CREATED_ENTRY\",\r\n CREATE_ENTRY_FAILED: \"CREATE_ENTRY_FAILED\",\r\n\r\n FETCHING_ENTRY: \"FETCHING_ENTRY\",\r\n GOT_ENTRY: \"GOT_ENTRY\",\r\n SET_MAX_ENTRIES_LENGTH: \"SET_MAX_ENTRIES_LENGTH\",\r\n\r\n GETTING_ATTACHMENTS: \"GETTING_ATTACHMENTS\",\r\n GOT_ATTACHMENTS: \"GOT_ATTACHMENTS\",\r\n GET_ATTACHMENTS_FAILED: \"GET_ATTACHMENTS_FAILED\",\r\n\r\n UPLOADING_DOCUMENT: \"UPLOADING_DOCUMENT\",\r\n UPLOADED_DOCUMENT: \"UPLOADED_DOCUMENT\",\r\n UPLOAD_DOCUMENT_FAILED: \"UPLOAD_DOCUMENT_FAILED\",\r\n\r\n DELETING_ATTACHMENTS: \"DELETING_ATTACHMENTS\",\r\n DELETED_ATTACHMENTS: \"DELETED_ATTACHMENTS\",\r\n DELETE_ATTACHMENTS_FAILED: \"DELETE_ATTACHMENTS_FAILED\",\r\n\r\n SET_MAX_ATTACHMENTS_LENGTH: \"SET_MAX_ATTACHMENTS_LENGTH\",\r\n ADDING_ATTACHMENT: \"ADDING_ATTACHMENT\",\r\n ADDED_ATTACHMENT: \"ADDED_ATTACHMENT\",\r\n ADD_ATTACHMENT_FAILED: \"ADD_ATTACHMENT_FAILED\",\r\n\r\n ADDED_DOCUMENT_ATTACHMENT: \"ADDED_DOCUMENT_ATTACHMENT\",\r\n\r\n GETTING_ATTACHMENT_URL: \"GETTING_ATTACHMENT_URL\",\r\n GOT_ATTACHMENT_URL: \"GOT_ATTACHMENT_URL\",\r\n GET_ATTACHMENT_URL_FAILED: \"GET_ATTACHMENT_URL_FAILED\",\r\n CLEAR_ATTACHMENT_URL: \"CLEAR_ATTACHMENT_URL\",\r\n\r\n GETTING_ATTACHMENT_URLS: \"GETTING_ATTACHMENT_URLS\",\r\n GOT_ATTACHMENT_URLS: \"GOT_ATTACHMENT_URLS\",\r\n GET_ATTACHMENT_URLS_FAILED: \"GET_ATTACHMENT_URLS_FAILED\",\r\n\r\n GETTING_ATTACHMENTS_ZIP: \"GETTING_ATTACHMENTS_ZIP\",\r\n GOT_ATTACHMENTS_ZIP: \"GOT_ATTACHMENTS_ZIP\",\r\n GET_ATTACHMENTS_ZIP_FAILED: \"GET_ATTACHMENTS_ZIP_FAILED\",\r\n\r\n FETCHING_ENTRY_CONFIG: \"FETCHING_ENTRY_CONFIG\",\r\n FETCHED_ENTRY_CONFIG: \"FETCHED_ENTRY_CONFIG\",\r\n FETCH_ENTRY_CONFIG_FAILED: \"FETCH_ENTRY_CONFIG_FAILED\",\r\n\r\n UPDATING_ENTRY_CONFIG: \"UPDATING_ENTRY_CONFIG\",\r\n UPDATED_ENTRY_CONFIG: \"UPDATED_ENTRY_CONFIG\",\r\n UPDATE_ENTRY_CONFIG_FAILED: \"UPDATE_ENTRY_CONFIG_FAILED\",\r\n\r\n PUTTING_CONVERSATION_REMINDER: \"PUTTING_CONVERSATION_REMINDER\",\r\n PUT_CONVERSATION_REMINDER: \"PUT_CONVERSATION_REMINDER\",\r\n FAILED_PUT_CONVERSATION_REMINDER: \"FAILED_PUT_CONVERSATION_REMINDER\",\r\n\r\n SET_MAX_ATTACHMENT_URLS_LENGTH: \"SET_MAX_ATTACHMENT_URLS_LENGTH\"\r\n }\r\n};\r\n\r\nconst getGrantsFrom = companyId => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n if (state.gettingGrantsFrom) return;\r\n dispatch({ type: actions.GETTING_GRANTS_FROM });\r\n data\r\n .get(`v1/api/permission/grants/from/${companyId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_GRANTS_FROM,\r\n grantsFrom: response.data,\r\n companyId: companyId\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_GRANTS_FROM_FAILED });\r\n handlePromiseError(response, Resources.GrantsFetchFailure, \"granted permissions\");\r\n });\r\n};\r\n\r\nconst getResourcesFrom = (companyId, resourceName, continuation) => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n if (state.gettingResourcesFrom) return;\r\n dispatch({ type: actions.GETTING_RESOURCES_FROM });\r\n data\r\n .get(`v1/api/ledger/from/${companyId}/${resourceName}${continuation ? `?continuation=${continuation}` : \"\"}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_RESOURCES_FROM,\r\n companyId: companyId,\r\n resourceName: resourceName,\r\n continuation: continuation,\r\n resourcesFrom: response.data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_RESOURCES_FROM_FAILED });\r\n handlePromiseError(response, Resources.ResourcesFetchFailure, \"company resources\");\r\n });\r\n};\r\n\r\nconst getGrantsTo = companyId => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n if (state.gettingGrantsTo) return;\r\n dispatch({ type: actions.GETTING_GRANTS_TO });\r\n data\r\n .get(`v1/api/permission/grants/to/${companyId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_GRANTS_TO,\r\n grantsTo: response.data,\r\n companyId: companyId\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_GRANTS_TO_FAILED });\r\n handlePromiseError(response, Resources.GrantsFetchFailure, \"granted permissions\");\r\n });\r\n};\r\n\r\nconst fetchResources = () => (dispatch, getState) => {\r\n if (getState().ledger.isFetchingResources) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_RESOURCES });\r\n data\r\n .get(\"v1/api/resource\")\r\n .then(response => {\r\n dispatch({ type: actions.FETCHED_RESOURCES, resources: response.data });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FETCH_RESOURCES_FAILED });\r\n handlePromiseError(rejection, Resources.FetchResourcesFailure, \"lockstep resources\");\r\n });\r\n};\r\n\r\nconst getResourcesForPerspective = perspectiveId => (dispatch, getState) => {\r\n return getState().ledger.resources.filter(resource => {\r\n return resource.perspectiveId === perspectiveId || resource.perspective === null;\r\n });\r\n};\r\n\r\nconst getResource = (key, value) => (dispatch, getState) => {\r\n return find(getState().ledger.resources, r => {\r\n return r[key].toLowerCase() === value.toLowerCase();\r\n });\r\n};\r\n\r\nconst fetchResourceConfigSchema = resourceId => (dispatch, getState) => {\r\n if (getState().ledger.isFetchingResourceConfigSchema[resourceId]) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_RESOURCE_CONFIG_SCHEMA, resourceId });\r\n data\r\n .get(`v1/api/resource/${resourceId}/config/schema`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_RESOURCE_CONFIG_SCHEMA,\r\n resourceId,\r\n configSchema: response.data\r\n });\r\n })\r\n .catch(error => {\r\n dispatch({\r\n type: actions.FETCH_RESOURCE_CONFIG_SCHEMA_FAILED,\r\n resourceId\r\n });\r\n handlePromiseError(\r\n error,\r\n \"TODO: Fetching the configuration schema for the resource failed.\",\r\n \"configuration schema\"\r\n );\r\n });\r\n};\r\n\r\nconst getResourceConfigSchema = resourceId => (dispatch, getState) => {\r\n const store = getState().ledger;\r\n if (store.fetchingResourceConfigSchemaFailed[resourceId] === undefined) {\r\n dispatch(fetchResourceConfigSchema(resourceId));\r\n return null;\r\n }\r\n return store.resourceConfigSchemas[resourceId];\r\n};\r\n\r\nconst getResourcesTo = (companyId, resourceName, nextLink) => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n if (state.gettingResourcesTo) return;\r\n dispatch({ type: actions.GETTING_RESOURCES_TO });\r\n data\r\n .get(nextLink || `v1/api/ledger/to/${companyId}/${resourceName}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_RESOURCES_TO,\r\n companyId: companyId,\r\n resourceName: resourceName,\r\n nextLink: nextLink,\r\n resourcesTo: response.data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_RESOURCES_TO_FAILED });\r\n handlePromiseError(response, Resources.ResourcesFetchFailure, \"company resources\");\r\n });\r\n};\r\n\r\n// This fetches resources that exist between two companies\r\nconst fetchCompanyResources = (fromCompanyId, toCompanyId, resourceName, nextLink) => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n\r\n if (state.isFetchingCompanyResources[createKey(toCompanyId, resourceName)]) {\r\n return;\r\n }\r\n dispatch({\r\n type: actions.FETCHING_COMPANY_RESOURCES,\r\n toCompanyId,\r\n resourceName\r\n });\r\n data\r\n .get(nextLink || `v1/api/ledger/from/${fromCompanyId}/to/${toCompanyId}/${resourceName}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_COMPANY_RESOURCES,\r\n toCompanyId,\r\n resourceName,\r\n nextLink,\r\n resources: response.data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: actions.FETCH_COMPANY_RESOURCES_FAILED,\r\n toCompanyId,\r\n resourceName\r\n });\r\n handlePromiseError(response, Resources.ResourcesFetchFailure, \"company resources\");\r\n });\r\n};\r\n\r\nconst getCompanyResources = (fromCompanyId, toCompanyId, resourceName, nextLink) => (dispatch, getState) => {\r\n const state = getState().ledger;\r\n const resourceKey = createKey(toCompanyId, resourceName);\r\n if (state.fetchingCompanyResourcesFailed[resourceKey] === undefined) {\r\n dispatch(fetchCompanyResources(fromCompanyId, toCompanyId, resourceName, nextLink));\r\n return null;\r\n }\r\n return state.companyResources[resourceKey];\r\n};\r\n\r\nconst createEntry = (companyId, resourceName, content, headers) => (dispatch, getState) => {\r\n if (getState().ledger.creatingEntry === true) {\r\n return;\r\n }\r\n dispatch({ type: actions.CREATING_ENTRY });\r\n return data\r\n .put(`v1/api/ledger/from/${companyId}/${resourceName}/create`, content, {\r\n headers: headers\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.CREATED_ENTRY });\r\n return response.data;\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.CREATE_ENTRY_FAILED });\r\n if (resourceName === \"approval\") {\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Approving the transaction failed. Please refresh and try again.\",\r\n \"approval\"\r\n );\r\n } else if (resourceName === \"approvalRequest\") {\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Creating the approval request failed. Please refresh and try again.\",\r\n \"approval request\"\r\n );\r\n }\r\n throw rejection;\r\n });\r\n};\r\n\r\nconst createEntryToContextGroup = (companyId, withContextGroupId, resourceName, content, headers) => (\r\n dispatch,\r\n getState\r\n) => {\r\n if (getState().ledger.creatingEntry === true) {\r\n return;\r\n }\r\n dispatch({ type: actions.CREATING_ENTRY });\r\n return data\r\n .put(`v2/api/ledger/from/${companyId}/to/${withContextGroupId}/${resourceName}/create`, content, {\r\n headers: headers\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.CREATED_ENTRY });\r\n return response.data;\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.CREATE_ENTRY_FAILED });\r\n switch (resourceName) {\r\n case \"approval\":\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Approving the transaction failed. Please refresh and try again.\",\r\n \"approval\"\r\n );\r\n break;\r\n case \"approvalRequest\":\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Creating the approval request failed. Please refresh and try again.\",\r\n \"approval request\"\r\n );\r\n break;\r\n case \"ApplicationResponse\":\r\n handlePromiseError(rejection, \"TODO: Creating the dispute failed. Please refresh and try again.\", \"dispute\");\r\n break;\r\n case \"DebitNote\":\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Creating the promise to pay failed. Please refresh and try again.\",\r\n \"promise to pay\"\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n throw rejection;\r\n });\r\n};\r\n\r\nexport const createDraft = (companyId, resourceName, content) => (dispatch, getState) => {\r\n dispatch({ type: actions.CREATING_DRAFT });\r\n return data\r\n .put(`v1/api/ledger/from/${companyId}/draft/${resourceName}/create`, content)\r\n .then(res => {\r\n dispatch({ type: actions.CREATED_DRAFT });\r\n return res;\r\n })\r\n .catch(err => {\r\n dispatch({ type: actions.CREATE_DRAFT_FAILED });\r\n throw err;\r\n });\r\n};\r\n\r\nexport const forwardDraft = (companyId, resourceName, content) => (dispatch, getState) => {\r\n dispatch({ type: actions.FORWARDING_DRAFT });\r\n return data\r\n .put(`v1/api/ledger/from/${companyId}/draft/${resourceName}/create`, content)\r\n .then(res => {\r\n dispatch({ type: actions.FORWARDED_DRAFT });\r\n return res;\r\n })\r\n .catch(err => {\r\n dispatch({ type: actions.FORWARDED_DRAFT_FAILED });\r\n throw err;\r\n });\r\n};\r\n\r\nexport const saveDraft = (ledgerHash, content) => (dispatch, getState) => {\r\n return data.post(`v1/api/ledger/draft/${ledgerHash}`, content);\r\n};\r\n\r\nexport const deleteDraft = ledgerHash => (dispatch, getState) => {\r\n data\r\n .delete(`v1/api/ledger/draft/${ledgerHash}`)\r\n .then(() => {\r\n dispatch(refreshConversation());\r\n })\r\n .catch(rejection => {\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Delete of the draft failed. Please refresh the page and try again.\",\r\n \"draft\"\r\n );\r\n });\r\n};\r\n\r\nexport const commitDraft = ledgerHash => (dispatch, getState) => {\r\n dispatch({ type: actions.COMMITTING_DRAFT });\r\n return data\r\n .post(`v1/api/ledger/draft/${ledgerHash}/commit`)\r\n .then(res => {\r\n dispatch({ type: actions.COMMITTED_DRAFT });\r\n return res;\r\n })\r\n .catch(err => {\r\n dispatch({ type: actions.COMMIT_DRAFT_FAILED });\r\n throw err;\r\n });\r\n};\r\n\r\nexport const deleteAttachments = attachmentIds => (dispatch, getState) => {\r\n dispatch({ type: actions.DELETING_ATTACHMENTS });\r\n let deletionPromises = attachmentIds.map(attachmentId => {\r\n return dispatch(deleteAttachment(attachmentId));\r\n });\r\n return Promise.all(deletionPromises)\r\n .then(() => {\r\n dispatch({ type: actions.DELETED_ATTACHMENTS });\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.DELETE_ATTACHMENTS_FAILED });\r\n });\r\n};\r\n\r\nexport const deleteAttachment = attachmentId => (dispatch, getState) => {\r\n return data.delete(`v1/api/ledger/attachments/${attachmentId}`);\r\n};\r\n\r\nconst addAttachment = (ledgerHash, file) => (dispatch, getState) => {\r\n let body = new FormData();\r\n body.append(\"file\", file);\r\n dispatch({ type: actions.ADDING_ATTACHMENT });\r\n return data\r\n .post(`v1/api/ledger/attachments/${ledgerHash}`, body, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n })\r\n .then(response => {\r\n dispatch({\r\n type: actions.ADDED_ATTACHMENT,\r\n attachment: response.data,\r\n ledgerHash\r\n });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.ADD_ATTACHMENT_FAILED });\r\n handlePromiseError(rejection, \"TODO: Adding the attachment failed. Please try again.\", \"attachment\");\r\n });\r\n};\r\n\r\nconst uploadDocument = (companyId, withContextGroupId, file) => (dispatch, getState) => {\r\n dispatch({ type: actions.UPLOADING_DOCUMENT });\r\n return dispatch(\r\n createEntryToContextGroup(companyId, withContextGroupId, \"AttachedDocument\", getAttatchedDocumentLedgerContent(), {\r\n \"Content-Type\": \"application/xml\"\r\n })\r\n )\r\n .then(result => {\r\n dispatch(addAttachment(result.ledgerHash, file)).then(result => {\r\n dispatch({ type: actions.UPLOADED_DOCUMENT });\r\n });\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.UPLOAD_DOCUMENT_FAILED });\r\n });\r\n};\r\n\r\nconst addDocumentAttachment = (ledgerHash, companyDocumentId) => (dispatch, getState) => {\r\n return data\r\n .post(`v1/api/ledger/attachments/${ledgerHash}/document`, JSON.stringify(companyDocumentId), {\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n }\r\n })\r\n .then(response => {\r\n dispatch({\r\n type: actions.ADDED_DOCUMENT_ATTACHMENT,\r\n attachment: response.data,\r\n ledgerHash\r\n });\r\n })\r\n .catch(rejection => {\r\n handlePromiseError(rejection, \"TODO: Adding the attachment failed. Please try again.\", \"attachment\");\r\n });\r\n};\r\n\r\nlet ENTRY_PROMISES = {};\r\nexport const fetchEntry = (ledgerHash, isDraft) => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n let entry = state.entries[ledgerHash];\r\n if (entry) {\r\n return Promise.resolve({ data: entry });\r\n }\r\n\r\n if (ENTRY_PROMISES[ledgerHash]) return ENTRY_PROMISES[ledgerHash];\r\n\r\n dispatch({ type: actions.FETCHING_ENTRY, ledgerHash });\r\n\r\n ENTRY_PROMISES[ledgerHash] = data\r\n .get(`v1/api/ledger/${isDraft === true ? \"draft\" : \"entry\"}/${ledgerHash}`)\r\n .then(response => {\r\n delete ENTRY_PROMISES[ledgerHash];\r\n dispatch({ type: actions.GOT_ENTRY, entry: response.data, ledgerHash });\r\n })\r\n .catch(rejection => {\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Fetching a conversation element failed. Please retry your request.\",\r\n \"entry\"\r\n );\r\n });\r\n return ENTRY_PROMISES[ledgerHash];\r\n};\r\n\r\nexport const getEntry = ledgerHash => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n return state.entries[ledgerHash];\r\n};\r\n\r\nconst fetchAttachments = ledgerHash => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n let attachments = state.attachments[ledgerHash];\r\n if (attachments || state.gettingAttachments[ledgerHash] === true) return;\r\n\r\n dispatch({ type: actions.GETTING_ATTACHMENTS, ledgerHash });\r\n data\r\n .get(`v1/api/ledger/attachments/for/${ledgerHash}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_ATTACHMENTS,\r\n attachments: response.data,\r\n ledgerHash\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_ATTACHMENTS_FAILED, ledgerHash });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Getting the related attachments failed. Please refresh your page.\",\r\n \"attachments\"\r\n );\r\n });\r\n};\r\n\r\nconst getAttachments = ledgerHash => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n return state.attachments[ledgerHash];\r\n};\r\n\r\nconst fetchAttachmentUrl = attachmentId => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n let attachmentUrl = state.attachmentUrls[attachmentId];\r\n if (attachmentUrl || state.gettingAttachmentUrl[attachmentId] === true) return;\r\n\r\n dispatch({ type: actions.GETTING_ATTACHMENT_URL, attachmentId });\r\n data\r\n .get(`v1/api/ledger/attachments/${attachmentId}/url`)\r\n .then(response => {\r\n let url = response.data;\r\n let res = getQueryParameters(url);\r\n let expiresIn = parseInt(res[\"X-Amz-Expires\"], 10) || 600;\r\n let strDate = res[\"X-Amz-Date\"];\r\n let date = isEmpty(strDate) ? moment() : moment(strDate);\r\n let expirationDate = date.add(expiresIn, \"seconds\");\r\n dispatch({\r\n type: actions.GOT_ATTACHMENT_URL,\r\n attachmentUrl: { url, expirationDate },\r\n attachmentId\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_ATTACHMENT_URL_FAILED, attachmentId });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Getting the attachment url failed. Please refresh your page.\",\r\n \"attachment url\"\r\n );\r\n });\r\n};\r\n\r\nconst fetchAttachmentUrls = attachmentIds => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n if (state.gettingAttachmentUrl[attachmentIds] === true) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.GETTING_ATTACHMENT_URLS, attachmentIds });\r\n data\r\n .post(\"v1/api/ledger/attachments/urls\", attachmentIds)\r\n .then(response => {\r\n let attachmentUrls = response.data.map((attachmentUrl, i) => {\r\n let urlWithExpiration = {};\r\n urlWithExpiration.url = attachmentUrl.signedUrl;\r\n let res = getQueryParameters(attachmentUrl.signedUrl);\r\n let expiresIn = parseInt(res[\"X-Amz-Expires\"], 10) || 600;\r\n let strDate = res[\"X-Amz-Date\"];\r\n let date = isEmpty(strDate) ? moment() : moment(strDate);\r\n urlWithExpiration.expirationDate = date.add(expiresIn, \"seconds\");\r\n urlWithExpiration.attachmentId = attachmentUrl.attachmentId;\r\n return urlWithExpiration;\r\n });\r\n dispatch({\r\n type: actions.GOT_ATTACHMENT_URLS,\r\n attachmentUrls,\r\n attachmentIds\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_ATTACHMENT_URLS_FAILED, attachmentIds });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Getting the attachment url failed. Please refresh your page.\",\r\n \"attachment urls\"\r\n );\r\n });\r\n};\r\n\r\nconst fetchAttachmentsZip = (attachmentIds, fileName) => (dispatch, getState) => {\r\n dispatch({ type: actions.GETTING_ATTACHMENTS_ZIP });\r\n return data\r\n .post(\"v1/api/ledger/attachments/download\", attachmentIds, {\r\n responseType: \"arraybuffer\",\r\n headers: { Accept: \"application/zip\" }\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.GOT_ATTACHMENTS_ZIP });\r\n saveBlobAsDownload(response.data, fileName);\r\n\r\n return true;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.GET_ATTACHMENTS_ZIP_FAILED });\r\n return error;\r\n });\r\n};\r\n\r\nconst fetchEntryConfig = (ledgerHash, perspectiveId) => (dispatch, getState) => {\r\n const entryPerspectiveKey = createKey(ledgerHash, perspectiveId);\r\n if (getState().ledger.isFetchingEntryConfig[entryPerspectiveKey]) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_ENTRY_CONFIG, ledgerHash, perspectiveId });\r\n data\r\n .get(`v1/api/ledger/entry/${ledgerHash}/config/${perspectiveId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_ENTRY_CONFIG,\r\n ledgerHash,\r\n perspectiveId,\r\n config: response.data\r\n });\r\n })\r\n .catch(rejected => {\r\n dispatch({ type: actions.FETCH_ENTRY_CONFIG_FAILED, ledgerHash, perspectiveId });\r\n handlePromiseError(rejected, Resources.FetchSettingsFailure, \"configuration data\");\r\n });\r\n};\r\n\r\nconst getEntryConfig = (ledgerHash, perspectiveId) => (dispatch, getState) => {\r\n const state = getState().ledger;\r\n const entryPerspectiveKey = createKey(ledgerHash, perspectiveId);\r\n if (state.fetchingEntryConfigFailed[entryPerspectiveKey] === undefined) {\r\n dispatch(fetchEntryConfig(ledgerHash, perspectiveId));\r\n return null;\r\n }\r\n return state.entryConfigs[entryPerspectiveKey];\r\n};\r\n\r\nconst updateEntryConfig = (ledgerHash, perspectiveId, config) => (dispatch, getState) => {\r\n dispatch({ type: actions.UPDATING_ENTRY_CONFIG });\r\n return data\r\n .put(`v1/api/ledger/entry/${ledgerHash}/config/${perspectiveId}`, config)\r\n .then(response => {\r\n dispatch({\r\n type: actions.UPDATED_ENTRY_CONFIG,\r\n ledgerHash,\r\n perspectiveId,\r\n config: response.data\r\n });\r\n return response;\r\n })\r\n .catch(rejected => {\r\n handlePromiseError(rejected, Resources.SavingSettingsFailure, \"configuration data\");\r\n dispatch({ type: actions.UPDATE_ENTRY_CONFIG_FAILED });\r\n });\r\n};\r\n\r\nconst getAttachmentUrl = attachmentId => (dispatch, getState) => {\r\n let state = getState().ledger;\r\n let urlData = state.attachmentUrls[attachmentId];\r\n if (isEmpty(urlData)) {\r\n return;\r\n }\r\n if (compareDates(moment(), urlData.expirationDate) >= 0) {\r\n dispatch({ type: actions.CLEAR_ATTACHMENT_URL, attachmentId });\r\n return;\r\n }\r\n\r\n return urlData.url;\r\n};\r\n\r\nconst getEntries = () => (dispatch, getState) => {\r\n let ledger = getState().ledger;\r\n if (!ledger.fromCompanyId || !ledger.toCompanyId || !ledger.resourceName) return [];\r\n let isAR = ledger.companies[ledger.fromCompanyId] !== undefined;\r\n let companyId = isAR ? ledger.toCompanyId : ledger.fromCompanyId;\r\n let company = ledger.companies[isAR ? ledger.fromCompanyId : ledger.toCompanyId];\r\n let grants = isAR ? company.grantsTo : company.grantsFrom;\r\n let resources = ((grants[companyId].resources || {})[ledger.resourceName] || {}).items || [];\r\n return resources;\r\n};\r\n\r\nconst putReminder = (companyId, reminderLedgerHash, conversationId, recurrenceRule, dueDate) => (\r\n dispatch,\r\n getState\r\n) => {\r\n dispatch({ type: actions.CREATING_ENTRY });\r\n return data\r\n .put(`v1/api/ledger/from/${companyId}/on/${reminderLedgerHash}/reminder/set`, {\r\n conversationId,\r\n recurrenceRule,\r\n dueDate\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.CREATED_ENTRY });\r\n return true;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.CREATE_ENTRY_FAILED });\r\n handlePromiseError(error, \"TODO: Setting the reminder failed.\", \"reminder\");\r\n throw error;\r\n });\r\n};\r\n\r\nconst unsetReminder = (companyId, reminderLedgerHash) => (dispatch, getState) => {\r\n dispatch({ type: actions.CREATING_ENTRY });\r\n return data\r\n .put(`v1/api/ledger/from/${companyId}/on/${reminderLedgerHash}/reminder/unset`, {})\r\n .then(response => {\r\n dispatch({ type: actions.CREATED_ENTRY });\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.CREATE_ENTRY_FAILED });\r\n handlePromiseError(error, \"TODO: Setting the reminder failed.\", \"reminder\");\r\n });\r\n};\r\n\r\nconst putLedgerActionEntry = (companyId, ledgerHash, resourceName, actionName, content) => (dispatch, getState) => {\r\n dispatch({ type: actions.CREATING_ENTRY });\r\n return data\r\n .put(`v1/api/ledger/from/${companyId}/on/${ledgerHash}/${resourceName}/${actionName}`, content)\r\n .then(response => {\r\n dispatch({ type: actions.CREATED_ENTRY });\r\n return response;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.CREATE_ENTRY_FAILED });\r\n handlePromiseError(\r\n error,\r\n \"TODO: Adding the ledger entry failed. If this continues, please contact us.\",\r\n \"reminder\"\r\n );\r\n throw error;\r\n });\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n getGrantsFrom: companyId => {\r\n dispatch(getGrantsFrom(companyId));\r\n },\r\n getGrantsTo: companyId => {\r\n dispatch(getGrantsTo(companyId));\r\n },\r\n getResourcesFrom: (companyId, resourceName, continuation) => {\r\n dispatch(getResourcesFrom(companyId, resourceName, continuation));\r\n },\r\n getResourcesTo: (companyId, resourceName, continuation) => {\r\n dispatch(getResourcesTo(companyId, resourceName, continuation));\r\n },\r\n selectRelationship: (fromCompanyId, toCompanyId, resourceName) => {\r\n dispatch({\r\n type: actions.SELECT_RELATIONSHIP,\r\n fromCompanyId: fromCompanyId,\r\n toCompanyId: toCompanyId,\r\n resourceName: resourceName\r\n });\r\n },\r\n getEntries: () => {\r\n return dispatch(getEntries());\r\n },\r\n\r\n fetchCompanyResources: (fromCompanyId, toCompanyId, resourceName, nextLink) => {\r\n dispatch(fetchCompanyResources(fromCompanyId, toCompanyId, resourceName, nextLink));\r\n },\r\n getCompanyResources: (fromCompanyId, toCompanyId, resourceName, nextLink) => {\r\n return dispatch(getCompanyResources(fromCompanyId, toCompanyId, resourceName, nextLink));\r\n },\r\n\r\n fetchResources: () => {\r\n dispatch(fetchResources());\r\n },\r\n getResourcesForPerspective: perspectiveId => {\r\n return dispatch(getResourcesForPerspective(perspectiveId));\r\n },\r\n getResource: (key, value) => {\r\n return dispatch(getResource(key, value));\r\n },\r\n fetchResourceConfigSchema: resourceId => {\r\n dispatch(fetchResourceConfigSchema(resourceId));\r\n },\r\n getResourceConfigSchema: resourceId => {\r\n return dispatch(getResourceConfigSchema(resourceId));\r\n },\r\n\r\n fetchEntry: (ledgerHash, isDraft) => {\r\n return dispatch(fetchEntry(ledgerHash, isDraft));\r\n },\r\n getEntry: ledgerHash => {\r\n return dispatch(getEntry(ledgerHash));\r\n },\r\n setMaxEntriesLength: maxStorageSize => {\r\n dispatch({\r\n type: actions.SET_MAX_ENTRIES_LENGTH,\r\n maxLength: maxStorageSize\r\n });\r\n },\r\n\r\n createDraft: (companyId, resourceName, content) => {\r\n return dispatch(createDraft(companyId, resourceName, content));\r\n },\r\n forwardDraft: (companyId, resourceName, content) => {\r\n return dispatch(forwardDraft(companyId, resourceName, content));\r\n },\r\n saveDraft: (ledgerHash, content) => {\r\n return dispatch(saveDraft(ledgerHash, content));\r\n },\r\n deleteDraft: ledgerHash => {\r\n dispatch(deleteDraft(ledgerHash));\r\n },\r\n commitDraft: ledgerHash => {\r\n return dispatch(commitDraft(ledgerHash));\r\n },\r\n\r\n createEntry: (companyId, resourceName, content, headers) => {\r\n return dispatch(createEntry(companyId, resourceName, content, headers));\r\n },\r\n createEntryToContextGroup: (companyId, withContextGroupId, resourceName, content, headers) => {\r\n return dispatch(createEntryToContextGroup(companyId, withContextGroupId, resourceName, content, headers));\r\n },\r\n\r\n fetchEntryConfig: (ledgerHash, perspectiveId) => {\r\n return dispatch(fetchEntryConfig(ledgerHash, perspectiveId));\r\n },\r\n getEntryConfig: (ledgerHash, perspectiveId) => {\r\n return dispatch(getEntryConfig(ledgerHash, perspectiveId));\r\n },\r\n updateEntryConfig: (ledgerHash, perspectiveId, config) => {\r\n return dispatch(updateEntryConfig(ledgerHash, perspectiveId, config));\r\n },\r\n\r\n addAttachment: (ledgerHash, file) => {\r\n return dispatch(addAttachment(ledgerHash, file));\r\n },\r\n uploadDocument: (companyId, withContextGroupId, file) => {\r\n return dispatch(uploadDocument(companyId, withContextGroupId, file));\r\n },\r\n addDocumentAttachment: (ledgerHash, companyDocumentId) => {\r\n return dispatch(addDocumentAttachment(ledgerHash, companyDocumentId));\r\n },\r\n deleteAttachments: attachmentIds => {\r\n return dispatch(deleteAttachments(attachmentIds));\r\n },\r\n deleteAttachment: attachmentId => {\r\n return dispatch(deleteAttachment(attachmentId));\r\n },\r\n fetchAttachments: ledgerHash => {\r\n dispatch(fetchAttachments(ledgerHash));\r\n },\r\n getAttachments: ledgerHash => {\r\n return dispatch(getAttachments(ledgerHash));\r\n },\r\n setMaxAttachmentsLength: maxStorageSize => {\r\n dispatch({\r\n type: actions.SET_MAX_ATTACHMENTS_LENGTH,\r\n maxLength: maxStorageSize\r\n });\r\n },\r\n\r\n fetchAttachmentUrl: attachmentId => {\r\n dispatch(fetchAttachmentUrl(attachmentId));\r\n },\r\n fetchAttachmentUrls: attachmentIds => {\r\n dispatch(fetchAttachmentUrls(attachmentIds));\r\n },\r\n fetchAttachmentsZip: (attachmentIds, fileName) => {\r\n return dispatch(fetchAttachmentsZip(attachmentIds, fileName));\r\n },\r\n getAttachmentUrl: attachmentId => {\r\n return dispatch(getAttachmentUrl(attachmentId));\r\n },\r\n setMaxAttachmentUrlsLength: maxStorageSize => {\r\n dispatch({\r\n type: actions.SET_MAX_ATTACHMENT_URLS_LENGTH,\r\n maxLength: maxStorageSize\r\n });\r\n },\r\n putReminder: (companyId, reminderLedgerHash, conversationId, recurrenceRule) => {\r\n return dispatch(putReminder(companyId, reminderLedgerHash, conversationId, recurrenceRule));\r\n },\r\n unsetReminder: (companyId, reminderLedgerHash) => {\r\n return dispatch(unsetReminder(companyId, reminderLedgerHash));\r\n },\r\n putLedgerActionEntry: (companyId, ledgerHash, resourceName, actionName, content) => {\r\n return dispatch(putLedgerActionEntry(companyId, ledgerHash, resourceName, actionName, content));\r\n }\r\n});\r\n","import { actions } from \"./ledger-actions\";\r\nimport { createKey } from \"../lib/utils\";\r\n\r\nconst defaultCompanyState = {\r\n grantsFrom: {},\r\n grantsTo: {},\r\n resourcesFrom: {},\r\n resourcesTo: {},\r\n attachments: []\r\n};\r\n\r\nexport const defaultLedgerState = {\r\n companyResources: {},\r\n isFetchingCompanyResources: {},\r\n fetchingCompanyResourcesFailed: {},\r\n companyResourceNextLinks: {},\r\n\r\n gettingGrantsFrom: false,\r\n gettingResourcesFrom: false,\r\n gettingGrantsTo: false,\r\n gettingResourcesTo: false,\r\n companies: {},\r\n entries: {\r\n maxLength: 500,\r\n keys: []\r\n },\r\n gettingAttachments: {},\r\n attachments: {\r\n maxLength: 500,\r\n keys: []\r\n },\r\n gettingAttachmentUrl: {},\r\n gettingAttachmentUrls: false,\r\n attachmentUrls: {\r\n maxLength: 500,\r\n keys: []\r\n },\r\n\r\n uploadingDocument: false,\r\n uploadedDocument: false,\r\n uploadDocumentFailed: false,\r\n\r\n gettingAttachmentsZip: false,\r\n gotAttachmentsZip: false,\r\n getAttachmentsZipFailed: null,\r\n\r\n isAddingAttachment: false,\r\n\r\n deletingAttachments: false,\r\n deletedAttachments: false,\r\n deleteAttachmentsFailed: null,\r\n\r\n creatingEntry: false,\r\n createdEntry: false,\r\n createEntryFailed: false,\r\n\r\n creatingDraft: false,\r\n createdDraft: false,\r\n createDraftFailed: false,\r\n\r\n forwardingDraft: false,\r\n forwardedDraft: false,\r\n forwardDraftFailed: false,\r\n\r\n committingDraft: false,\r\n committedDraft: false,\r\n commitDraftFailed: false,\r\n\r\n isFetchingResources: false,\r\n fetchingResourcesFailed: null,\r\n resourceMaps: {},\r\n resources: [],\r\n\r\n isFetchingResourceConfigSchema: {},\r\n fetchingResourceConfigSchemaFailed: {},\r\n resourceConfigSchemas: {},\r\n\r\n isFetchingEntryConfig: {},\r\n fetchingEntryConfigFailed: {},\r\n entryConfigs: {},\r\n\r\n isUpdatingEntryConfig: false,\r\n updatingEntryConfigFailed: null\r\n};\r\n\r\nfunction ledgerReducer(state = defaultLedgerState, action) {\r\n if (window.logToConsole) {\r\n console.log(action);\r\n }\r\n\r\n switch (action.type) {\r\n case actions.SELECT_COMPANY:\r\n if (action.companyId === state.selectedCompanyId) {\r\n return state;\r\n }\r\n\r\n let companyId = action.companyId;\r\n\r\n if (action.companyId === \"ALL_ACCOUNTS_SELECTED\") {\r\n companyId = action.primaryCompanyId;\r\n }\r\n\r\n return { ...defaultLedgerState, selectedCompanyId: companyId };\r\n case actions.SELECT_RELATIONSHIP:\r\n return {\r\n ...state,\r\n fromCompanyId: action.fromCompanyId,\r\n toCompanyId: action.toCompanyId,\r\n resourceName: action.resourceName\r\n };\r\n\r\n case actions.GETTING_GRANTS_FROM:\r\n return { ...state, ...{ gettingGrantsFrom: true } };\r\n case actions.GET_GRANTS_FROM_FAILED:\r\n return { ...state, ...{ gettingGrantsFrom: false } };\r\n case actions.GOT_GRANTS_FROM:\r\n if (state.gettingGrantsFrom === false) return state;\r\n let gfCompany = getCompany(state, action.companyId);\r\n gfCompany.grantsFrom = mergeGrants(gfCompany.grantsFrom, action.grantsFrom);\r\n return {\r\n ...state,\r\n ...{\r\n gettingGrantsFrom: false,\r\n companies: updateCompany(state, action.companyId, gfCompany)\r\n }\r\n };\r\n\r\n case actions.GETTING_GRANTS_TO:\r\n return { ...state, ...{ gettingGrantsTo: true } };\r\n case actions.GET_GRANTS_TO_FAILED:\r\n return { ...state, ...{ gettingGrantsTo: false } };\r\n case actions.GOT_GRANTS_TO:\r\n if (state.gettingGrantsTo === false) return state;\r\n let gtCompany = getCompany(state, action.companyId);\r\n gtCompany.grantsTo = mergeGrants(gtCompany.grantsTo, action.grantsTo);\r\n return {\r\n ...state,\r\n ...{\r\n gettingGrantsTo: false,\r\n companies: updateCompany(state, action.companyId, gtCompany)\r\n }\r\n };\r\n\r\n case actions.GETTING_RESOURCES_FROM:\r\n return { ...state, ...{ gettingResourcesFrom: true } };\r\n case actions.GET_RESOURCES_FROM_FAILED:\r\n return { ...state, ...{ gettingResourcesFrom: false } };\r\n case actions.GOT_RESOURCES_FROM:\r\n if (state.gettingResourcesFrom === false) return state;\r\n let gfResources = action.resourcesFrom.resources || action.resourcesFrom || [];\r\n let grfCompany = getCompany(state, action.companyId);\r\n let grf = (grfCompany.resourcesFrom = {\r\n ...(grfCompany.resourcesFrom || {})\r\n });\r\n let grfResources = (grf[action.resourceName] = {\r\n ...(grf[action.resourceName] || {})\r\n });\r\n let grfExisting = grfResources.items || [];\r\n if (action.continuation) gfResources = [...grfExisting, ...gfResources];\r\n grfResources.items = gfResources;\r\n grfResources.continuation = action.resourcesFrom.continuation;\r\n return {\r\n ...state,\r\n ...{\r\n gettingResourcesFrom: false,\r\n companies: updateCompany(state, action.companyId, grfCompany)\r\n }\r\n };\r\n\r\n case actions.GETTING_RESOURCES_TO:\r\n return { ...state, ...{ gettingResourcesTo: true } };\r\n case actions.GET_RESOURCES_TO_FAILED:\r\n return { ...state, ...{ gettingResourcesTo: false } };\r\n case actions.GOT_RESOURCES_TO:\r\n if (state.gettingResourcesTo === false) return state;\r\n let gtResources = action.resourcesTo.resources || action.resourcesTo || [];\r\n let grtCompany = getCompany(state, action.companyId);\r\n let grt = (grtCompany.resourcesTo = {\r\n ...(grtCompany.resourcesTo || {})\r\n });\r\n let grtResources = (grt[action.resourceName] = {\r\n ...(grt[action.resourceName] || {})\r\n });\r\n let grtExisting = grtResources.items || [];\r\n if (action.continuation) gtResources = [...grtExisting, ...gtResources];\r\n grtResources.items = gtResources;\r\n grtResources.continuation = action.resourcesTo.continuation;\r\n return {\r\n ...state,\r\n ...{\r\n gettingResourcesTo: false,\r\n companies: updateCompany(state, action.companyId, grtCompany)\r\n }\r\n };\r\n\r\n case actions.FETCHING_COMPANY_RESOURCES:\r\n let resourceKey = createKey(action.toCompanyId, action.resourceName);\r\n return {\r\n ...state,\r\n isFetchingCompanyResources: {\r\n ...state.isFetchingCompanyResources,\r\n [resourceKey]: true\r\n }\r\n };\r\n case actions.FETCHED_COMPANY_RESOURCES:\r\n resourceKey = createKey(action.toCompanyId, action.resourceName);\r\n return {\r\n ...state,\r\n isFetchingCompanyResources: {\r\n ...state.isFetchingCompanyResources,\r\n [resourceKey]: false\r\n },\r\n fetchingCompanyResourcesFailed: {\r\n ...state.fetchingCompanyResourcesFailed,\r\n [resourceKey]: false\r\n },\r\n companyResources: {\r\n ...state.companyResources,\r\n [resourceKey]: action.resources\r\n },\r\n companyResourceNextLinks: {\r\n ...state.companyResourceNextLinks,\r\n [resourceKey]: action.nextLink\r\n }\r\n };\r\n case actions.FETCH_COMPANY_RESOURCES_FAILED:\r\n resourceKey = createKey(action.toCompanyId, action.resourceName);\r\n return {\r\n ...state,\r\n isFetchingCompanyResources: {\r\n ...state.isFetchingCompanyResources,\r\n [resourceKey]: false\r\n },\r\n fetchingCompanyResourcesFailed: {\r\n ...state.fetchingCompanyResourcesFailed,\r\n [resourceKey]: true\r\n }\r\n };\r\n\r\n case actions.FETCHING_RESOURCES:\r\n return {\r\n ...state,\r\n isFetchingResources: true,\r\n fetchingResourcesFailed: null\r\n };\r\n case actions.FETCHED_RESOURCES:\r\n const resourceMaps = {};\r\n action.resources.forEach(resource => (resourceMaps[resource.resourceId] = resource));\r\n return {\r\n ...state,\r\n isFetchingResources: false,\r\n resources: action.resources,\r\n resourceMaps: resourceMaps,\r\n fetchingResourcesFailed: false\r\n };\r\n case actions.FETCH_RESOURCES_FAILED:\r\n return {\r\n ...state,\r\n isFetchingResources: false,\r\n fetchingResourcesFailed: true\r\n };\r\n\r\n case actions.FETCHING_RESOURCE_CONFIG_SCHEMA:\r\n return {\r\n ...state,\r\n isFetchingResourceConfigSchema: {\r\n ...state.isFetchingResourceConfigSchema,\r\n [action.resourceId]: true\r\n }\r\n };\r\n case actions.FETCHED_RESOURCE_CONFIG_SCHEMA:\r\n return {\r\n ...state,\r\n isFetchingResourceConfigSchema: {\r\n ...state.isFetchingResourceConfigSchema,\r\n [action.resourceId]: false\r\n },\r\n resourceConfigSchemas: {\r\n ...state.resourceConfigSchemas,\r\n [action.resourceId]: action.configSchema\r\n },\r\n fetchingResourceConfigSchemaFailed: {\r\n ...state.fetchingResourceConfigSchemaFailed,\r\n [action.resourceId]: false\r\n }\r\n };\r\n case actions.FETCH_RESOURCE_CONFIG_SCHEMA_FAILED:\r\n return {\r\n ...state,\r\n isFetchingResourceConfigSchema: {\r\n ...state.isFetchingResourceConfigSchema,\r\n [action.resourceId]: false\r\n },\r\n fetchingResourceConfigSchemaFailed: {\r\n ...state.fetchingResourceConfigSchemaFailed,\r\n [action.resourceId]: true\r\n }\r\n };\r\n\r\n case actions.SET_MAX_ENTRIES_LENGTH:\r\n if (state.entries.maxLength > action.maxLength) return state;\r\n let smeLength = { ...state.entries };\r\n smeLength.maxLength = action.maxLength;\r\n return { ...state, ...{ entries: smeLength } };\r\n\r\n case actions.CREATING_ENTRY:\r\n return { ...state, creatingEntry: true, createdEntry: false, createEntryFailed: false };\r\n case actions.CREATED_ENTRY:\r\n return { ...state, creatingEntry: false, createdEntry: true, createEntryFailed: false };\r\n case actions.CREATE_ENTRY_FAILED:\r\n return { ...state, creatingEntry: false, createdEntry: false, createEntryFailed: true };\r\n\r\n case actions.CREATING_DRAFT:\r\n return { ...state, creatingDraft: true, createdDraft: false, createDraftFailed: false, committedDraft: false };\r\n case actions.CREATED_DRAFT:\r\n return { ...state, creatingDraft: false, createdDraft: true, createDraftFailed: false };\r\n case actions.CREATE_DRAFT_FAILED:\r\n return { ...state, creatingDraft: false, createdDraft: false, createDraftFailed: true };\r\n\r\n case actions.FORWARDING_DRAFT:\r\n return { ...state, forwardingDraft: true, forwardedDraft: false, forwardDraftFailed: false };\r\n case actions.FORWARDED_DRAFT:\r\n return { ...state, forwardingDraft: false, forwardedDraft: true, forwardDraftFailed: false };\r\n\r\n case actions.FORWARDED_DRAFT_FAILED:\r\n return { ...state, forwardingDraft: false, forwardedDraft: false, forwardDraftFailed: true };\r\n\r\n case actions.COMMITTING_DRAFT:\r\n return { ...state, committingDraft: true, committedDraft: false, commitDraftFailed: false };\r\n case actions.COMMITTED_DRAFT:\r\n return { ...state, committingDraft: false, committedDraft: true, commitDraftFailed: false };\r\n case actions.COMMIT_DRAFT_FAILED:\r\n return { ...state, committingDraft: false, committedDraft: false, commitDraftFailed: true };\r\n\r\n case actions.FETCHING_ENTRY_CONFIG:\r\n let entryPerspectiveKey = createKey(action.ledgerHash, action.perspectiveId);\r\n return {\r\n ...state,\r\n isFetchingEntryConfig: {\r\n ...state.isFetchingEntryConfig,\r\n [entryPerspectiveKey]: true\r\n }\r\n };\r\n case actions.FETCHED_ENTRY_CONFIG:\r\n entryPerspectiveKey = createKey(action.ledgerHash, action.perspectiveId);\r\n return {\r\n ...state,\r\n isFetchingEntryConfig: {\r\n ...state.isFetchingEntryConfig,\r\n [entryPerspectiveKey]: false\r\n },\r\n fetchingEntryConfigFailed: {\r\n ...state.fetchingEntryConfigFailed,\r\n [entryPerspectiveKey]: false\r\n },\r\n entryConfigs: {\r\n ...state.entryConfigs,\r\n [entryPerspectiveKey]: action.config\r\n }\r\n };\r\n case actions.FETCH_ENTRY_CONFIG_FAILED:\r\n entryPerspectiveKey = createKey(action.ledgerHash, action.perspectiveId);\r\n return {\r\n ...state,\r\n isFetchingEntryConfig: {\r\n ...state.isFetchingEntryConfig,\r\n [entryPerspectiveKey]: false\r\n },\r\n fetchingEntryConfigFailed: {\r\n ...state.fetchingEntryConfigFailed,\r\n [entryPerspectiveKey]: true\r\n }\r\n };\r\n\r\n case actions.UPDATING_ENTRY_CONFIG:\r\n return { ...state, isUpdatingEntryConfig: true };\r\n case actions.UPDATED_ENTRY_CONFIG:\r\n entryPerspectiveKey = createKey(action.ledgerHash, action.perspectiveId);\r\n return {\r\n ...state,\r\n isUpdatingEntryConfig: false,\r\n updatingEntryConfigFailed: false,\r\n entryConfigs: {\r\n ...state.entryConfigs,\r\n [entryPerspectiveKey]: action.config\r\n }\r\n };\r\n case actions.UPDATE_ENTRY_CONFIG_FAILED:\r\n return {\r\n ...state,\r\n isUpdatingEntryConfig: false,\r\n updatingEntryConfigFailed: true\r\n };\r\n\r\n case actions.FETCHING_ENTRY:\r\n return { ...state, fetchingEntries: { ...state.fetchingEntries, [action.ledgerHash]: true } };\r\n\r\n case actions.GOT_ENTRY:\r\n const nextFetchingEntries = { ...state.fetchingEntries };\r\n delete nextFetchingEntries[action.ledgerHash];\r\n return {\r\n ...state,\r\n entries: { ...state.entries, [action.ledgerHash]: action.entry },\r\n fetchingEntries: nextFetchingEntries\r\n };\r\n\r\n case actions.SET_MAX_ATTACHMENTS_LENGTH:\r\n if (state.attachments.maxLength > action.maxLength) return state;\r\n let smaLength = { ...state.attachments };\r\n smaLength.maxLength = action.maxLength;\r\n return { ...state, ...{ attachments: smaLength } };\r\n\r\n case actions.UPLOADING_DOCUMENT:\r\n return { ...state, uploadingDocument: true, uploadedDocument: false, uploadDocumentFailed: false };\r\n case actions.UPLOADED_DOCUMENT:\r\n return { ...state, uploadingDocument: false, uploadedDocument: true, uploadDocumentFailed: false };\r\n case actions.UPLOAD_DOCUMENT_FAILED:\r\n return { ...state, uploadingDocument: false, uploadedDocument: false, uploadDocumentFailed: true };\r\n\r\n case actions.DELETING_ATTACHMENTS:\r\n return { ...state, deletingAttachments: true, deletedAttachments: false, deleteAttachmentsFailed: false };\r\n case actions.DELETED_ATTACHMENTS:\r\n return { ...state, deletingAttachments: false, deletedAttachments: true, deleteAttachmentsFailed: false };\r\n case actions.DELETE_ATTACHMENTS_FAILED:\r\n return { ...state, deletingAttachments: false, deletedAttachments: false, deleteAttachmentsFailed: true };\r\n\r\n case actions.ADDING_ATTACHMENT:\r\n return { ...state, isAddingAttachment: true };\r\n case actions.ADDED_ATTACHMENT:\r\n return { ...state, isAddingAttachment: false };\r\n case actions.ADD_ATTACHMENT_FAILED:\r\n return { ...state, isAddingAttachment: false };\r\n\r\n case actions.ADDED_DOCUMENT_ATTACHMENT:\r\n return { ...state };\r\n case actions.GETTING_ATTACHMENTS:\r\n let ga = { ...state.gettingAttachments };\r\n ga[action.ledgerHash] = true;\r\n return { ...state, gettingAttachments: ga };\r\n case actions.GET_ATTACHMENTS_FAILED:\r\n let gaf = { ...state.gettingAttachments };\r\n delete gaf[action.ledgerHash];\r\n return { ...state, gettingAttachments: gaf };\r\n case actions.GOT_ATTACHMENTS:\r\n if (state.gettingAttachments[action.ledgerHash] !== true) return state;\r\n\r\n //TODO: WHY IS THIS IN HERE?\r\n if (action.type === actions.ADDED_ATTACHMENT) {\r\n action.attachments = [...(state.attachments[action.ledgerHash] || [])];\r\n action.attachments.push(action.attachment);\r\n }\r\n\r\n let gaState = { ...state };\r\n let gettingAttachments = { ...gaState.gettingAttachments };\r\n delete gettingAttachments[action.ledgerHash];\r\n gaState.gettingAttachments = gettingAttachments;\r\n\r\n if (gaState.attachments[action.ledgerHash]) {\r\n let uAttachments = { ...gaState.attachments };\r\n uAttachments[action.ledgerHash] = action.attachments;\r\n return { ...gaState, attachments: uAttachments };\r\n }\r\n\r\n let gsa = { ...gaState.attachments };\r\n gaState.attachments = gsa;\r\n let gaKeys = [...gsa.keys];\r\n gsa.keys = gaKeys;\r\n gaKeys.unshift(action.ledgerHash);\r\n gsa[action.ledgerHash] = action.attachments;\r\n if (gaKeys.length > gsa.maxLength) {\r\n let gakPopped = gaKeys.pop();\r\n delete gsa[gakPopped];\r\n }\r\n\r\n return gaState;\r\n\r\n case actions.GETTING_ATTACHMENTS_ZIP:\r\n return { ...state, gettingAttachmentsZip: true, gotAttachmentsZip: false, getAttachmentsZipFailed: false };\r\n case actions.GOT_ATTACHMENTS_ZIP:\r\n return { ...state, gettingAttachmentsZip: false, gotAttachmentsZip: true, getAttachmentsZipFailed: false };\r\n case actions.GET_ATTACHMENTS_ZIP_FAILED:\r\n return { ...state, gettingAttachmentsZip: false, gotAttachmentsZip: false, getAttachmentsZipFailed: true };\r\n\r\n case actions.SET_MAX_ATTACHMENT_URLS_LENGTH:\r\n if (state.attachmentUrls.maxLength > action.maxLength) return state;\r\n let smauLength = { ...state.attachmentUrls };\r\n smauLength.maxLength = action.maxLength;\r\n return { ...state, ...{ attachmentUrls: smauLength } };\r\n\r\n case actions.GETTING_ATTACHMENT_URL:\r\n let gau = { ...state.gettingAttachmentUrl };\r\n gau[action.attachmentId] = true;\r\n return { ...state, gettingAttachmentUrl: gau };\r\n case actions.GET_ATTACHMENT_URL_FAILED:\r\n let gauf = { ...state.gettingAttachmentUrl };\r\n delete gauf[action.attachmentId];\r\n return { ...state, gettingAttachmentUrl: gauf };\r\n\r\n case actions.GOT_ATTACHMENT_URL:\r\n if (state.attachmentUrls[action.attachmentId]) return state;\r\n\r\n let gettingAttachmentUrl = { ...state.gettingAttachmentUrl };\r\n delete gettingAttachmentUrl[action.attachmentId];\r\n\r\n let gauState = { ...state, gettingAttachmentUrl };\r\n let gaua = { ...gauState.attachmentUrls };\r\n gauState.attachmentUrls = gaua;\r\n let gauKeys = [...gaua.keys];\r\n gaua.keys = gauKeys;\r\n gauKeys.unshift(action.attachmentId);\r\n gaua[action.attachmentId] = action.attachmentUrl;\r\n if (gauKeys.length > gaua.maxLength) {\r\n let gaukPopped = gauKeys.pop();\r\n delete gaua[gaukPopped];\r\n }\r\n return gauState;\r\n\r\n case actions.GETTING_ATTACHMENT_URLS:\r\n return {\r\n ...state,\r\n gettingAttachmentUrl: {\r\n ...state.gettingAttachmentUrl,\r\n [action.attachmentIds]: true\r\n },\r\n gettingAttachmentUrls: true\r\n };\r\n case actions.GET_ATTACHMENT_URLS_FAILED:\r\n return {\r\n ...state,\r\n gettingAttachmentUrl: {\r\n ...state.gettingAttachmentUrl,\r\n [action.attachmentIds]: false\r\n },\r\n gettingAttachmentUrls: false\r\n };\r\n case actions.GOT_ATTACHMENT_URLS:\r\n if (state.attachmentUrls[action.attachmentIds]) return state;\r\n\r\n let returnState = {\r\n ...state,\r\n gettingAttachmentUrl: {\r\n ...state.gettingAttachmentUrl,\r\n [action.attachmentIds]: false\r\n },\r\n attachmentUrls: {\r\n ...state.attachmentUrls,\r\n keys: action.attachmentIds.concat(state.attachmentUrls.keys).slice(0, state.attachmentUrls.maxLength)\r\n },\r\n gettingAttachmentUrls: false\r\n };\r\n action.attachmentUrls.forEach(attachmentUrl => {\r\n returnState.attachmentUrls[attachmentUrl.attachmentId] = attachmentUrl;\r\n });\r\n return returnState;\r\n\r\n case actions.CLEAR_ATTACHMENT_URL:\r\n let attachmentUrls = { ...state.attachmentUrls };\r\n delete attachmentUrls[action.attachmentId];\r\n return { ...state, attachmentUrls };\r\n\r\n case actions.CLEAR_DATA:\r\n return defaultLedgerState;\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nfunction getCompany(state, companyId) {\r\n let company = state.companies[companyId] || defaultCompanyState;\r\n return { ...company };\r\n}\r\n\r\nfunction updateCompany(state, companyId, company) {\r\n let companies = { ...state.companies };\r\n companies[companyId] = company;\r\n return companies;\r\n}\r\n\r\nfunction mergeGrants(oldGrants, newGrants) {\r\n Object.keys(oldGrants).forEach(gkey => {\r\n let targetGrant = newGrants[gkey];\r\n if (targetGrant) {\r\n let targetResources = targetGrant.resources || {};\r\n let sourceResources = oldGrants[gkey].resources || {};\r\n Object.keys(sourceResources).forEach(rkey => {\r\n if (targetResources[rkey]) targetResources[rkey].items = sourceResources[rkey].items;\r\n });\r\n }\r\n });\r\n return newGrants;\r\n}\r\n\r\nexport default ledgerReducer;\r\n","import data from \"../lib/data\";\r\nimport auth from \"../lib/auth\";\r\nimport { getConfig, updateConfig, isEmpty, find } from \"../lib/utils\";\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport { loggedIn } from \"./user-actions\";\r\nimport { logout } from \"./user-actions\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n SET_COMPANY_REGISTRATION_INFO: \"SET_COMPANY_REGISTRATION_INFO\",\r\n\r\n SET_ACCT_EMAIL_CONFIG_INFO: \"SET_ACCT_EMAIL_CONFIG_INFO\",\r\n\r\n CREATE_USER_ACCOUNT_FAILED: \"CREATE_USER_ACCOUNT_FAILED\",\r\n RESET_REGISTRATION_STATE: \"RESET_REGISTRATION_STATE\",\r\n\r\n SETTING_EMAIL_FORWARDING_ADDRESS: \"SETTING_EMAIL_FORWARDING_ADDRESS\",\r\n EMAIL_FORWARDING_ADDRESS_SET: \"EMAIL_FORWARDING_ADDRESS_SET\",\r\n SET_EMAIL_FORWARDING_ADDRESS_FAILED: \"SET_EMAIL_FORWARDING_ADDRESS_FAILED\",\r\n\r\n GETTING_INVITE_DATA: \"GETTING_INVITE_DATA\",\r\n GOT_INVITE_DATA: \"GOT_INVITE_DATA\",\r\n GET_INVITE_DATA_FAILED: \"GET_INVITE_DATA_FAILED\",\r\n\r\n ACCOUNT_IS_BEING_CREATED: \"ACCOUNT_IS_BEING_CREATED\",\r\n ACCOUNT_HAS_BEEN_CREATED: \"ACCOUNT_HAS_BEEN_CREATED\",\r\n ACCOUNT_ALREADY_EXISTS: \"ACCOUNT_ALREADY_EXISTS\",\r\n ACCOUNT_CREATION_FAILED: \"ACCOUNT_CREATION_FAILED\",\r\n\r\n GETTING_AUTH_TOKEN: \"GETTING_AUTH_TOKEN\",\r\n GOT_AUTH_TOKEN: \"GOT_AUTH_TOKEN\",\r\n GET_AUTH_TOKEN_FAILED: \"GET_AUTH_TOKEN_FAILED\",\r\n\r\n TRIGGER_REGISTRATION_ERRORS: \"TRIGGER_REGISTRATION_ERRORS\",\r\n CLEAR_REGISTRATION_ERRORS: \"CLEAR_REGISTRATION_ERRORS\"\r\n }\r\n};\r\n\r\nlet CREATE_USER_ACCOUNT_PROMISE = null;\r\nconst createUserAccount = companyInfoObj => (dispatch, getState) => {\r\n let payload = {\r\n userName: companyInfoObj.personalEmail,\r\n password: companyInfoObj.password,\r\n fullName: \"\",\r\n givenName: companyInfoObj.personalEmail,\r\n familyName: \"\",\r\n email: companyInfoObj.personalEmail,\r\n website: companyInfoObj.companyWebsite,\r\n address: {\r\n street_address: companyInfoObj.streetAddress,\r\n locality: companyInfoObj.city,\r\n region: companyInfoObj.state,\r\n postal_code: companyInfoObj.zip,\r\n country: companyInfoObj.country\r\n }\r\n };\r\n\r\n CREATE_USER_ACCOUNT_PROMISE = auth\r\n .createNewUser(payload)\r\n .then(() => {\r\n return auth.login(companyInfoObj.personalEmail, companyInfoObj.password).then(response => {\r\n window.localStorage.setItem(\"isCurrentlyRegistering\", true);\r\n window.localStorage.setItem(\"accountingEmail\", companyInfoObj.accountingEmail);\r\n window.localStorage.setItem(\"personalEmail\", companyInfoObj.personalEmail);\r\n window.localStorage.setItem(\"companyName\", companyInfoObj.companyName);\r\n return dispatch(loggedIn(response.identityToken));\r\n });\r\n })\r\n .catch(e => {\r\n window.localStorage.setItem(\"registration-stage\", \"COMPANY_INFO\");\r\n let response = e.request.response || \"{}\";\r\n let errorResponse = JSON.parse(response);\r\n let errorMsgKeys = Object.keys(errorResponse);\r\n let errorMsgs = errorMsgKeys.map(key => {\r\n return errorResponse[key];\r\n });\r\n dispatch({ type: actions.CREATE_USER_ACCOUNT_FAILED });\r\n dispatch({ type: actions.TRIGGER_REGISTRATION_ERRORS, errorMsgs });\r\n throw new Error(\"Create New User Failed\");\r\n });\r\n\r\n return CREATE_USER_ACCOUNT_PROMISE;\r\n};\r\n\r\nlet CHECK_IF_COMPANY_EXISTS_PROMISE = null;\r\nconst checkIfCompanyExist = () => dispatch => {\r\n let accountingEmail = window.localStorage.getItem(\"accountingEmail\");\r\n\r\n CHECK_IF_COMPANY_EXISTS_PROMISE = data\r\n .post(\"v1/api/invite/lookup\", { email: accountingEmail })\r\n .then(lookupResult => {\r\n let companyId = lookupResult.data.companyId;\r\n data.post(`v1/api/invite/request/${companyId}`).then(() => {\r\n window.localStorage.setItem(\"registration-stage\", \"USER_COMPANY_EXISTS\");\r\n dispatch(logout());\r\n window.location = \"/#/register\";\r\n });\r\n })\r\n .catch(lookupResult => {\r\n if (lookupResult.response.status === 404) {\r\n let companyName = window.localStorage.getItem(\"companyName\");\r\n data.put(\"v1/api/account\", { accountName: companyName }).then(acctResult => {\r\n let payload = {\r\n companyName: acctResult.data.accountName,\r\n companyEmail: accountingEmail,\r\n accountId: acctResult.data.accountId,\r\n contactNumber: \"\"\r\n };\r\n data.put(\"v1/api/account/company\", payload).then(companyResult => {\r\n window.localStorage.setItem(\"registration-stage\", \"GETTING_VERIFIED\");\r\n dispatch(logout());\r\n window.location = \"/#/register\";\r\n });\r\n });\r\n } else {\r\n // registration failed\r\n }\r\n });\r\n return CHECK_IF_COMPANY_EXISTS_PROMISE;\r\n};\r\n\r\nlet SET_FORWARDING_ADDRESS_PROMISE = null;\r\nconst setEmailForwardingAddress = (companyId, perspective, email, idTokenHeaders) => dispatch => {\r\n dispatch({ type: actions.SETTING_EMAIL_FORWARDING_ADDRESS });\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n data\r\n .put(\r\n `v1/api/account/company/${companyId}/emails`,\r\n '\"' + email + '\"',\r\n idTokenHeaders ? idTokenHeaders : { headers: { \"Content-Type\": \"application/json\" } }\r\n )\r\n .then(resolve)\r\n .catch(e => {\r\n let errorResponse = e.response.data || {};\r\n let errorMsgKeys = Object.keys(errorResponse);\r\n let errorMsgs = errorMsgKeys.map(key => {\r\n return errorResponse[key];\r\n });\r\n\r\n let emailAlreadyExists = false;\r\n if (errorMsgs.length > 0) {\r\n emailAlreadyExists = errorMsgs[0].some(item => {\r\n return item === \"This email address is already assigned to an existing company.\";\r\n });\r\n }\r\n if (emailAlreadyExists) {\r\n resolve();\r\n } else {\r\n reject(e);\r\n }\r\n });\r\n }),\r\n data.post(\r\n `v1/api/connector/email/integrations/${companyId}`,\r\n { perspectiveId: perspective, companyForwardingAddress: email },\r\n idTokenHeaders ? idTokenHeaders : { headers: { \"Content-Type\": \"application/json\" } }\r\n )\r\n ];\r\n\r\n SET_FORWARDING_ADDRESS_PROMISE = Promise.all(promises)\r\n .then(result => {\r\n let emailForwardingToAddress = result[1].data.localPart + \"@\" + getConfig().emailDomain;\r\n let emailForwardingFromAddress = email;\r\n dispatch({\r\n type: actions.EMAIL_FORWARDING_ADDRESS_SET,\r\n emailForwardingFromAddress,\r\n emailForwardingToAddress\r\n });\r\n })\r\n .catch(e => {\r\n // let errorResponse = e.response.data || {};\r\n // let errorMsgKeys = Object.keys(errorResponse);\r\n // let errorMsgs = errorMsgKeys.map(key => {\r\n // return errorResponse[key];\r\n // });\r\n let emailAlreadyExists = false;\r\n // if (errorMsgs.length > 0) {\r\n // emailAlreadyExists = errorMsgs[0].some(item => {\r\n // return item === \"This email address is already assigned to an existing company.\";\r\n // });\r\n // }\r\n\r\n if (emailAlreadyExists) {\r\n dispatch(setActiveEmailForForwarding(companyId, perspective, email, idTokenHeaders));\r\n } else {\r\n dispatch({\r\n type: actions.TRIGGER_REGISTRATION_ERRORS,\r\n errorMsgs: \"There was a problem registering your email.\"\r\n });\r\n dispatch({ type: actions.SET_EMAIL_FORWARDING_ADDRESS_FAILED });\r\n }\r\n });\r\n\r\n return SET_FORWARDING_ADDRESS_PROMISE;\r\n};\r\n\r\nconst setActiveEmailForForwarding = (companyId, perspective, email, idTokenHeaders) => dispatch => {\r\n dispatch({ type: actions.SETTING_EMAIL_FORWARDING_ADDRESS });\r\n data\r\n .post(\r\n `v1/api/connector/email/integrations/${companyId}`,\r\n { perspectiveId: perspective, companyForwardingAddress: email },\r\n idTokenHeaders ? idTokenHeaders : { headers: { \"Content-Type\": \"application/json\" } }\r\n )\r\n .then(result => {\r\n let emailForwardingToAddress = result.data.localPart + \"@\" + getConfig().emailDomain;\r\n let emailForwardingFromAddress = email;\r\n dispatch({\r\n type: actions.EMAIL_FORWARDING_ADDRESS_SET,\r\n emailForwardingFromAddress,\r\n emailForwardingToAddress\r\n });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.SET_EMAIL_FORWARDING_ADDRESS_FAILED });\r\n });\r\n};\r\n\r\nconst resendEmailVerification = (companyId, emailId) => (dispatch, getState) => {\r\n data.post(`v1/api/account/company/${companyId}/emails/${emailId}/resendverification`);\r\n};\r\n\r\nconst getInviteData = inviteCode => dispatch => {\r\n dispatch({ type: actions.GETTING_INVITE_DATA });\r\n return data\r\n .get(`v1/api/invite/user/${inviteCode}`)\r\n .then(response => {\r\n dispatch({ type: actions.GOT_INVITE_DATA, inviteData: response.data });\r\n })\r\n .catch(err => {\r\n if (err.response && err.response.status === 404) {\r\n throw new Error(\"Invalid invite\");\r\n }\r\n dispatch({ type: actions.GET_INVITE_DATA_FAILED });\r\n });\r\n};\r\n\r\nconst invitationSignUp = (inviteData, companyInfo) => (dispatch, getState) => {\r\n dispatch({ type: actions.ACCOUNT_IS_BEING_CREATED });\r\n let createUserPayload = {\r\n userName: inviteData.email,\r\n password: companyInfo.password,\r\n fullName: inviteData.fullName,\r\n givenName: inviteData.fullName,\r\n familyName: \"\",\r\n email: inviteData.email,\r\n website: companyInfo.website,\r\n inviteId: inviteData.userInviteId,\r\n address: {\r\n street_address: companyInfo.address.street_address,\r\n locality: companyInfo.address.locality,\r\n region: companyInfo.address.region,\r\n postal_code: companyInfo.address.postalCode,\r\n country: companyInfo.address.country\r\n }\r\n };\r\n let accountingEmail = companyInfo.apEmail ? companyInfo.apEmail : companyInfo.arEmail || null;\r\n\r\n let signIn = auth\r\n .createNewUser(createUserPayload)\r\n .then(response => {\r\n if (response.status !== 200) {\r\n throw response;\r\n }\r\n return dispatch(setAuthToken(inviteData.email, companyInfo.password));\r\n })\r\n .catch(e => {\r\n let response = e.request.response || \"{}\";\r\n let errorResponse = JSON.parse(response);\r\n let errorMsgKeys = Object.keys(errorResponse);\r\n let errorMsgs = errorMsgKeys.map(key => {\r\n return errorResponse[key];\r\n });\r\n if (\r\n errorMsgs.some(\r\n item =>\r\n item[0] === \"A user with this email address already exists.\" ||\r\n item[0] === \"A user with this username already exists.\"\r\n )\r\n ) {\r\n return dispatch(setAuthToken(inviteData.email, companyInfo.password));\r\n } else {\r\n dispatch({ type: actions.ACCOUNT_CREATION_FAILED });\r\n dispatch({ type: actions.TRIGGER_REGISTRATION_ERRORS, errorMsgs });\r\n throw e;\r\n }\r\n });\r\n signIn.then(response => {\r\n let headers = getState().registration.appJsonHeadersWithBToken;\r\n data\r\n .post(\"v1/api/invite/lookup\", { email: accountingEmail }, headers)\r\n .then(lookupResult => {\r\n let companyId = lookupResult.data.companyId;\r\n data.post(`v1/api/invite/request/${companyId}`, headers).then(() => {\r\n dispatch({ type: actions.ACCOUNT_ALREADY_EXISTS });\r\n });\r\n })\r\n .catch(lookupResult => {\r\n if (lookupResult.response.status === 404 || accountingEmail === null) {\r\n data\r\n .put(\"v1/api/account\", { accountName: companyInfo.companyName }, headers)\r\n .then(acctResult => {\r\n dispatch(\r\n createCompany(acctResult.data.accountName, accountingEmail, acctResult.data.accountId, {\r\n ...companyInfo,\r\n inviteId: inviteData.userInviteId\r\n })\r\n );\r\n })\r\n .catch(rejection => {\r\n // create of account failed...search for existing accounts and add to that instead...\r\n data.get(\"v1/api/account\", headers).then(response => {\r\n let { accountId } =\r\n find(response.data, account => {\r\n return account.accountName === companyInfo.companyName;\r\n }) ||\r\n response.data[0] ||\r\n {};\r\n if (isEmpty(accountId) === false) {\r\n dispatch(\r\n createCompany(companyInfo.companyName, accountingEmail, accountId, {\r\n ...companyInfo,\r\n inviteId: inviteData.userInviteId\r\n })\r\n );\r\n } else {\r\n dispatch({ type: actions.ACCOUNT_CREATION_FAILED });\r\n }\r\n });\r\n });\r\n } else {\r\n dispatch({ type: actions.ACCOUNT_CREATION_FAILED });\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst createCompany = (accountName, accountEmail, accountId, companyInfo) => (dispatch, getState) => {\r\n dispatch(setAuthToken(companyInfo.email, companyInfo.password)).then(() => {\r\n let headers = getState().registration.appJsonHeadersWithBToken;\r\n let idToken = getState().registration.idToken;\r\n let acctCompanyPayload = {\r\n companyName: accountName,\r\n companyEmail: accountEmail,\r\n accountId: accountId,\r\n contactNumber: \"\",\r\n inviteId: companyInfo.inviteId\r\n };\r\n data\r\n .put(\"v1/api/account/company\", acctCompanyPayload, headers)\r\n .then(companyResult => {\r\n let companyId = companyResult.data.companyId;\r\n let companyInfoPayload = {\r\n \"Contact Numbers\": {\r\n \"AP Phone\": companyInfo.apPhone,\r\n \"AR Phone\": companyInfo.arPhone\r\n },\r\n Address: {\r\n Line1: companyInfo.address.street_address,\r\n // Line2: companyInfo.line2,\r\n // Line3: companyInfo.line3,\r\n City: companyInfo.address.locality,\r\n Region: companyInfo.address.region,\r\n Country: companyInfo.address.country,\r\n PostalCode: companyInfo.address.postal_code\r\n },\r\n apEmail: companyInfo.apEmail,\r\n arEmail: companyInfo.arEmail,\r\n URL: companyInfo.website,\r\n TIN: companyInfo.TIN,\r\n \"W9 File\": companyInfo.w9File,\r\n \"W8 BEN File\": companyInfo.w8BenFile\r\n };\r\n let promises = [];\r\n // if (companyInfo.apEmail)\r\n // promises.push(dispatch(setEmailForwardingAddress(companyId, \"AP\", companyInfo.apEmail, headers)));\r\n // if (companyInfo.arEmail)\r\n // promises.push(dispatch(setEmailForwardingAddress(companyId, \"AR\", companyInfo.arEmail, headers)));\r\n promises.push(data.post(`v1/api/account/company/${companyId}/info`, companyInfoPayload, headers));\r\n Promise.all(promises).then(() => {\r\n window.localStorage.setItem(\"logged_in\", \"true\");\r\n window.localStorage.setItem(\"id_token\", idToken);\r\n updateConfig({ AccessToken: idToken });\r\n dispatch({\r\n type: actions.ACCOUNT_HAS_BEEN_CREATED,\r\n signUpCustomerId: companyId\r\n });\r\n });\r\n })\r\n .catch(e => {\r\n let response = e.request.response || \"{}\";\r\n let errorResponse = JSON.parse(response);\r\n let errorMsgKeys = Object.keys(errorResponse);\r\n let errorMsgs = errorMsgKeys.map(key => {\r\n return errorResponse[key];\r\n });\r\n dispatch({ type: actions.ACCOUNT_CREATION_FAILED });\r\n dispatch({ type: actions.TRIGGER_REGISTRATION_ERRORS, errorMsgs });\r\n });\r\n });\r\n};\r\n\r\nlet SET_AUTH_TOKEN = null;\r\nconst setAuthToken = (username, password) => dispatch => {\r\n dispatch({ type: actions.GETTING_AUTH_TOKEN });\r\n let authorizePayload = {\r\n username: username,\r\n password: password,\r\n rememberLogin: true,\r\n returnUrl: auth.returnUrl\r\n };\r\n SET_AUTH_TOKEN = auth\r\n .post(\"v1/user/login/authorize\", authorizePayload)\r\n .then(response => {\r\n let idToken = response.data.identityToken;\r\n let appJsonHeadersWithBToken = {\r\n headers: {\r\n Authorization: \"Bearer \" + idToken,\r\n \"Content-Type\": \"application/json\"\r\n }\r\n };\r\n dispatch({\r\n type: actions.GOT_AUTH_TOKEN,\r\n idToken,\r\n appJsonHeadersWithBToken\r\n });\r\n })\r\n .catch(e => {\r\n let response = e.request.response || \"{}\";\r\n let errorResponse = JSON.parse(response);\r\n let errorMsgKeys = Object.keys(errorResponse);\r\n let errorMsgs = errorMsgKeys.map(key => {\r\n return errorResponse[key];\r\n });\r\n dispatch({ type: actions.GET_AUTH_TOKEN_FAILED });\r\n dispatch({ type: actions.TRIGGER_REGISTRATION_ERRORS, errorMsgs });\r\n });\r\n return SET_AUTH_TOKEN;\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n setCompanyRegistrationInfo: companyInfo => {\r\n dispatch({ type: actions.SET_COMPANY_REGISTRATION_INFO, companyInfo });\r\n },\r\n createUserAccount: companyInfoObj => {\r\n return dispatch(createUserAccount(companyInfoObj));\r\n },\r\n checkIfCompanyExist: () => {\r\n return dispatch(checkIfCompanyExist());\r\n },\r\n resetRegistrationState: () => {\r\n dispatch({ type: actions.RESET_REGISTRATION_STATE });\r\n },\r\n setEmailForwardingAddress: (companyId, perspective, email) => {\r\n return dispatch(setEmailForwardingAddress(companyId, perspective, email));\r\n },\r\n setActiveEmailForForwarding: (companyId, perspective, email) => {\r\n dispatch(setActiveEmailForForwarding(companyId, perspective, email));\r\n },\r\n getInviteData: inviteCode => {\r\n return dispatch(getInviteData(inviteCode));\r\n },\r\n invitationSignUp: (inviteData, companyInfo) => {\r\n dispatch(invitationSignUp(inviteData, companyInfo));\r\n },\r\n createCompany: (accountName, accountEmail, accountId, companyInfo) => {\r\n dispatch(createCompany(accountName, accountEmail, accountId, companyInfo));\r\n },\r\n setAuthToken: (username, password) => {\r\n return dispatch(setAuthToken(username, password));\r\n },\r\n resendEmailVerification: (companyId, emailId) => {\r\n dispatch(resendEmailVerification(companyId, emailId));\r\n },\r\n clearRegErrorMessages: () => {\r\n return dispatch({ type: actions.CLEAR_REGISTRATION_ERRORS });\r\n }\r\n});\r\n","import { actions } from \"./registration-actions\";\r\n\r\nconst defaultRegistrationState = {\r\n companyInfo: {},\r\n errorMsgs: [],\r\n emailForwardingToAddress: \"\",\r\n emailForwardingFromAddress: \"\",\r\n\r\n inviteData: {},\r\n isGettingInviteData: false,\r\n\r\n isSettingEmailForwardingAddress: false,\r\n\r\n isSettingUserAccount: false,\r\n doesAccountExists: false,\r\n isSignUpSuccessfulAndComplete: false,\r\n signUpCustomerId: \"\",\r\n\r\n isGettingAuthToken: false,\r\n appJsonHeadersWithBToken: \"\",\r\n idToken: \"\"\r\n};\r\n\r\nconst registrationReducer = (state = defaultRegistrationState, action) => {\r\n switch (action.type) {\r\n case actions.SET_COMPANY_REGISTRATION_INFO:\r\n return { ...state, companyInfo: action.companyInfo };\r\n case actions.CREATE_USER_ACCOUNT_FAILED:\r\n return { ...state };\r\n case actions.SETTING_EMAIL_FORWARDING_ADDRESS:\r\n return { ...state, isSettingEmailForwardingAddress: true };\r\n case actions.EMAIL_FORWARDING_ADDRESS_SET:\r\n return {\r\n ...state,\r\n isSettingEmailForwardingAddress: false,\r\n emailForwardingToAddress: action.emailForwardingToAddress,\r\n emailForwardingFromAddress: action.emailForwardingFromAddress\r\n };\r\n case actions.SET_EMAIL_FORWARDING_ADDRESS_FAILED:\r\n return { ...state, isSettingEmailForwardingAddress: false };\r\n case actions.GETTING_INVITE_DATA:\r\n return { ...state, isGettingInviteData: true };\r\n case actions.GOT_INVITE_DATA:\r\n return {\r\n ...state,\r\n isGettingInviteData: false,\r\n inviteData: action.inviteData\r\n };\r\n case actions.GET_INVITE_DATA_FAILED:\r\n return { ...state, isGettingInviteData: false };\r\n case actions.ACCOUNT_IS_BEING_CREATED:\r\n return {\r\n ...state,\r\n isSettingUserAccount: true,\r\n doesAccountExists: false,\r\n isSignUpSuccessfulAndComplete: false\r\n };\r\n case actions.ACCOUNT_HAS_BEEN_CREATED:\r\n return {\r\n ...state,\r\n isSettingUserAccount: false,\r\n doesAccountExists: false,\r\n isSignUpSuccessfulAndComplete: true,\r\n signUpCustomerId: action.signUpCustomerId\r\n };\r\n case actions.ACCOUNT_ALREADY_EXISTS:\r\n return {\r\n ...state,\r\n isSettingUserAccount: false,\r\n doesAccountExists: true,\r\n isSignUpSuccessfulAndComplete: false\r\n };\r\n case actions.ACCOUNT_CREATION_FAILED:\r\n return {\r\n ...state,\r\n isSettingUserAccount: false,\r\n doesAccountExists: false,\r\n isSignUpSuccessfulAndComplete: false\r\n };\r\n case actions.GETTING_AUTH_TOKEN:\r\n return { ...state, isGettingAuthToken: true };\r\n case actions.GOT_AUTH_TOKEN:\r\n return {\r\n ...state,\r\n isGettingAuthToken: false,\r\n idToken: action.idToken,\r\n appJsonHeadersWithBToken: action.appJsonHeadersWithBToken\r\n };\r\n case actions.GET_AUTH_TOKEN_FAILED:\r\n return { ...state, isGettingAuthToken: false };\r\n case actions.TRIGGER_REGISTRATION_ERRORS:\r\n return { ...state, errorMsgs: action.errorMsgs };\r\n case actions.CLEAR_REGISTRATION_ERRORS:\r\n return { ...state, errorMsgs: [] };\r\n case actions.RESET_REGISTRATION_STATE:\r\n return { ...defaultRegistrationState };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default registrationReducer;\r\n","import data from \"../lib/data\";\nimport _ from \"lodash\";\nimport { debounce, isEmpty } from \"../lib/utils\";\nimport { actions as GeneralActions } from \"./general-actions\";\nimport { handlePromiseError } from \"./error-actions\";\n\nexport const actions = {\n ...GeneralActions,\n ...{\n UPDATE_SEARCH_TERM: \"UPDATE_SEARCH_TERM\",\n\n FETCHING_SEARCH_RESULTS: \"FETCHING_SEARCH_RESULTS\",\n FETCHED_SEARCH_RESULTS: \"FETCHED_SEARCH_RESULTS\",\n FETCH_SEARCH_RESULTS_FAILED: \"FETCH_SEARCH_RESULTS_FAILED\",\n\n GETTING_GLOBAL_SEARCH_RESULTS: \"GETTING_GLOBAL_SEARCH_RESULTS\",\n GOT_GLOBAL_SEARCH_RESULTS: \"GOT_GLOBAL_SEARCH_RESULTS\",\n FAILED_GET_GLOBAL_SEARCH_RESULTS: \"FAILED_GET_GLOBAL_SEARCH_RESULTS\",\n\n PUSH_SEARCH_HISTORY_ITEM: \"PUSH_SEARCH_HISTORY_ITEM\",\n\n CLEAR_SEARCH_RESULTS: \"CLEAR_SEARCH_RESULTS\"\n }\n};\n\nconst debouncedSearchResultsGet = debounce((dispatch, companyId, request) => {\n let endpoint = `v1/api/search/${companyId}/conversations`;\n if (isEmpty(request.request)) {\n return dispatch({ type: actions.CLEAR_SEARCH_RESULTS });\n }\n\n data\n .post(endpoint, request)\n .then(response => {\n dispatch({\n type: actions.FETCHED_SEARCH_RESULTS,\n searchResults: response.data.value,\n request\n });\n })\n .catch(rejection => {\n dispatch({ type: actions.FETCH_SEARCH_RESULTS_FAILED });\n handlePromiseError(rejection, \"TODO: Getting search results failed. Please try again.\", \"search results\");\n });\n}, 400);\n\nconst debouncedFetchSearchResults = (companyId, request) => (dispatch, getState) => {\n const store = getState().search;\n if (store.isFetchingSearchResults && _.isEqual(request, store.searchQuery)) {\n return;\n }\n\n dispatch({ type: actions.FETCHING_SEARCH_RESULTS, request });\n debouncedSearchResultsGet(dispatch, companyId, request);\n};\n\nconst fetchSearchResults = (companyId, request) => (dispatch, getState) => {\n const store = getState().search;\n if (store.isFetchingSearchResults && _.isEqual(request, store.searchQuery)) {\n return;\n }\n\n dispatch({ type: actions.FETCHING_SEARCH_RESULTS, request });\n data\n .post(`v1/api/search/${companyId}/conversations`, request)\n .then(response => {\n dispatch({\n type: actions.FETCHED_SEARCH_RESULTS,\n searchResults: response.data.value,\n request\n });\n })\n .catch(rejection => {\n dispatch({ type: actions.FETCH_SEARCH_RESULTS_FAILED });\n handlePromiseError(rejection, \"TODO: Getting search results failed. Please try again.\", \"search results\");\n });\n};\n\nconst debouncedAccountingGroupSearchResultsGet = debounce(\n (dispatch, accountId, companyId, accountingGroupId, request, top, skip) => {\n let endpoint = `v3/api/search/${accountId}/${accountingGroupId}/${companyId}?$top=${top}&$skip=${skip}`;\n if (isEmpty(request.request)) {\n return dispatch({ type: actions.CLEAR_SEARCH_RESULTS });\n }\n\n data\n .post(endpoint, request)\n .then(response => {\n dispatch({\n type: actions.GOT_GLOBAL_SEARCH_RESULTS,\n searchResults: response.data,\n request\n });\n })\n .catch(rejection => {\n dispatch({ type: actions.FAILED_GET_GLOBAL_SEARCH_RESULTS });\n handlePromiseError(\n rejection,\n \"TODO: Getting global search results failed. Please try again.\",\n \"search results\"\n );\n });\n },\n 400\n);\n\nconst debouncedFetchAccountingGroupSearchResults = (\n accountId,\n companyId,\n accountingGroupId,\n request,\n top = 20,\n skip = 0\n) => (dispatch, getState) => {\n const store = getState().search;\n if (store.gettingSearchResults && _.isEqual(request.request, store.searchTermFetching)) {\n return;\n }\n\n dispatch({ type: actions.GETTING_GLOBAL_SEARCH_RESULTS, request, skip });\n debouncedAccountingGroupSearchResultsGet(dispatch, accountId, companyId, accountingGroupId, request, top, skip);\n};\n\nexport const searchContacts = (accountId, companyId, accountingGroupId, request, nextLink, top = 20, skip = 0) =>\n data.post(\n nextLink || `v3/api/search/${accountId}/${accountingGroupId}/${companyId}?$top=${top}&$skip=${skip}`,\n request\n );\n\n// accountId and companyId are the same thing (currently)\nconst fetchAccountingGroupSearchResults = (\n accountId,\n companyId,\n accountingGroupId,\n request,\n top = 20,\n skip = 0,\n fetchNextLabel\n) => (dispatch, getState) => {\n const store = getState().search;\n if (store.gettingSearchResults && _.isEqual(request.request, store.searchTermFetching)) {\n return;\n }\n\n dispatch({ type: actions.GETTING_GLOBAL_SEARCH_RESULTS, request, skip, fetchNextLabel });\n const nextLink = !isEmpty(fetchNextLabel) && store.nextLinks[fetchNextLabel];\n\n searchContacts(accountId, companyId, accountingGroupId, request, nextLink, top, skip)\n .then(response => {\n dispatch({\n type: actions.GOT_GLOBAL_SEARCH_RESULTS,\n searchResults: response.data,\n request,\n fetchNextLabel\n });\n })\n .catch(rejection => {\n dispatch({ type: actions.FAILED_GET_GLOBAL_SEARCH_RESULTS });\n handlePromiseError(rejection, \"TODO: Getting global search results failed. Please try again.\", \"search results\");\n });\n};\n\nexport const dispatchToProps = dispatch => ({\n updateSearchTerm: searchTerm => {\n dispatch({ type: actions.UPDATE_SEARCH_TERM, searchTerm });\n },\n debouncedFetchSearchResults: (companyId, request) => {\n dispatch(debouncedFetchSearchResults(companyId, request));\n },\n fetchSearchResults: (companyId, request) => {\n dispatch(fetchSearchResults(companyId, request));\n },\n\n debouncedFetchAccountingGroupSearchResults: (accountId, companyId, accountingGroupId, request) => {\n dispatch(debouncedFetchAccountingGroupSearchResults(accountId, companyId, accountingGroupId, request));\n },\n fetchAccountingGroupSearchResults: (accountId, companyId, accountingGroupId, request, top, skip, fetchNextLabel) => {\n dispatch(\n fetchAccountingGroupSearchResults(accountId, companyId, accountingGroupId, request, top, skip, fetchNextLabel)\n );\n },\n\n pushSearchHistoryItem: searchTerm => {\n dispatch({ type: actions.PUSH_SEARCH_HISTORY_ITEM, searchTerm });\n },\n\n clearSearchResults: () => {\n dispatch({ type: actions.CLEAR_SEARCH_RESULTS });\n }\n});\n","import { actions } from \"./search-actions\";\nimport { clone } from \"../lib/utils\";\n\nconst defaultSearchState = {\n isFetchingSearchResults: false,\n fetchingSearchResultsFailed: null,\n\n searchHistory: [],\n searchTerm: \"\",\n searchTermFetching: \"\",\n searchTermFetched: \"\",\n displayNoResultsMessage: false,\n isShowingSearchResults: false,\n\n gettingSearchResults: false,\n gotSearchResults: false,\n failedGetSearchResults: false,\n\n searchResults: [],\n searchResultsCount: 0,\n\n searchQuery: {},\n errMsgs: \"\",\n\n // These are mapping the label to the specified data for each label returned from API\n counts: {},\n nextLinks: {},\n values: {}\n};\n\nconst searchReducer = (state = clone(defaultSearchState), action) => {\n switch (action.type) {\n case actions.UPDATE_SEARCH_TERM:\n return { ...state, searchTerm: action.searchTerm };\n\n case actions.FETCHING_SEARCH_RESULTS:\n return {\n ...state,\n isFetchingSearchResults: true,\n fetchingSearchResultsFailed: null,\n searchResults: [],\n searchQuery: action.request\n };\n case actions.FETCHED_SEARCH_RESULTS:\n if (action.request !== state.searchQuery) {\n return state;\n }\n return {\n ...state,\n isFetchingSearchResults: false,\n fetchingSearchResultsFailed: false,\n searchResults: action.searchResults\n };\n case actions.FETCH_SEARCH_RESULTS_FAILED:\n return {\n ...state,\n isFetchingSearchResults: false,\n fetchingSearchResultsFailed: true\n };\n\n case actions.GETTING_GLOBAL_SEARCH_RESULTS:\n return {\n ...state,\n gettingSearchResults: true,\n gotSearchResults: false,\n failedGetSearchResults: false,\n\n searchTermFetching: action.request.request\n };\n case actions.GOT_GLOBAL_SEARCH_RESULTS:\n let counts = {};\n let nextLinks = {};\n let values = {};\n\n Object.keys(action.searchResults).forEach(label => {\n if (!!action.fetchNextLabel) {\n if (label === action.fetchNextLabel) {\n counts[label] = action.searchResults[label].count;\n nextLinks[label] = action.searchResults[label].nextLink;\n } else {\n counts[label] = state.counts[label];\n nextLinks[label] = state.nextLinks[label];\n }\n values[label] = [...state.values[label], ...action.searchResults[label].value];\n } else {\n counts[label] = action.searchResults[label].count;\n nextLinks[label] = action.searchResults[label].nextLink;\n values[label] = action.searchResults[label].value;\n }\n });\n\n return {\n ...state,\n gettingSearchResults: false,\n gotSearchResults: true,\n failedGetSearchResults: false,\n searchTermFetching: null,\n searchTermFetched: action.request.request,\n counts,\n nextLinks,\n values\n };\n case actions.FAILED_GET_GLOBAL_SEARCH_RESULTS:\n return {\n ...state,\n gettingSearchResults: false,\n gotSearchResults: false,\n failedGetSearchResults: true,\n searchTermFetching: null\n };\n\n case actions.PUSH_SEARCH_HISTORY_ITEM:\n return { ...state, searchHistory: [action.searchTerm, ...state.searchHistory] };\n\n case actions.CLEAR_SEARCH_RESULTS:\n return { ...defaultSearchState, searchHistory: [...state.searchHistory] };\n\n default:\n return state;\n }\n};\n\nexport default searchReducer;\n","import data from \"../lib/data\";\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\nimport { find, isEmpty, debounce, saveBlobAsDownload } from \"../lib/utils\";\r\nimport Resources from \"../lib/resources\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n FETCHING_POPULATED_TEMPLATE: \"FETCHING_POPULATED_TEMPLATE\",\r\n FETCHED_POPULATED_TEMPLATE: \"FETCHED_POPULATED_TEMPLATE\",\r\n FETCH_POPULATED_TEMPLATE_FAILED: \"FETCH_POPULATED_TEMPLATE_FAILED\",\r\n\r\n CREATING_EMAIL_REPLY_TEMPLATE: \"CREATING_EMAIL_REPLY_TEMPLATE\",\r\n CREATED_EMAIL_REPLY_TEMPLATE: \"CREATED_EMAIL_REPLY_TEMPLATE\",\r\n CREATE_EMAIL_REPLY_TEMPLATE_FAILED: \"CREATE_EMAIL_REPLY_TEMPLATE_FAILED\",\r\n\r\n GETTING_ALL_EMAIL_REPLY_TEMPLATES: \"GETTING_ALL_EMAIL_REPLY_TEMPLATES\",\r\n GOT_ALL_EMAIL_REPLY_TEMPLATES: \"GOT_ALL_EMAIL_REPLY_TEMPLATES\",\r\n GET_ALL_EMAIL_REPLY_TEMPLATES_FAILED: \"GET_ALL_EMAIL_REPLY_TEMPLATES_FAILED\",\r\n\r\n CREATING_COMPANY_DOCUMENT: \"CREATING_COMPANY_DOCUMENT\",\r\n CREATED_COMPANY_DOCUMENT: \"CREATED_COMPANY_DOCUMENT\",\r\n CREATE_COMPANY_DOCUMENT_FAILED: \"CREATE_COMPANY_DOCUMENT_FAILED\",\r\n\r\n FETCHING_COMPANY_DOCUMENTS: \"FETCHING_COMPANY_DOCUMENTS\",\r\n FETCHED_COMPANY_DOCUMENTS: \"FETCHED_COMPANY_DOCUMENTS\",\r\n FETCH_COMPANY_DOCUMENTS_FAILED: \"FETCH_COMPANY_DOCUMENTS_FAILED\",\r\n\r\n IMPORTING_COMPANY_ADDRESS_BOOK: \"IMPORTING_COMPANY_ADDRESS_BOOK\",\r\n IMPORTED_COMPANY_ADDRESS_BOOK: \"IMPORTED_COMPANY_ADDRESS_BOOK\",\r\n IMPORT_COMPANY_ADDRESS_BOOK_FAILED: \"IMPORT_COMPANY_ADDRESS_BOOK_FAILED\",\r\n\r\n PUTTING_COMPANY_ADDRESS_BOOK: \"PUTTING_COMPANY_ADDRESS_BOOK\",\r\n PUT_COMPANY_ADDRESS_BOOK: \"PUT_COMPANY_ADDRESS_BOOK\",\r\n FAILED_PUT_COMPANY_ADDRESS_BOOK: \"FAILED_PUT_COMPANY_ADDRESS_BOOK\",\r\n\r\n POSTING_COMPANY_ADDRESS_BOOK: \"POSTING_COMPANY_ADDRESS_BOOK\",\r\n POST_COMPANY_ADDRESS_BOOK: \"POST_COMPANY_ADDRESS_BOOK\",\r\n FAILED_POST_COMPANY_ADDRESS_BOOK: \"FAILED_POST_COMPANY_ADDRESS_BOOK\",\r\n\r\n FETCHING_COMPANY_ADDRESS_BOOK: \"FETCHING_COMPANY_ADDRESS_BOOK\",\r\n FETCHED_COMPANY_ADDRESS_BOOK: \"FETCHED_COMPANY_ADDRESS_BOOK\",\r\n FETCH_COMPANY_ADDRESS_BOOK_FAILED: \"FETCH_COMPANY_ADDRESS_BOOK_FAILED\",\r\n\r\n DELETING_COMPANY_ADDRESS_BOOK_CONTACT: \"DELETING_COMPANY_ADDRESS_BOOK_CONTACT\",\r\n DELETED_COMPANY_ADDRESS_BOOK_CONTACT: \"DELETED_COMPANY_ADDRESS_BOOK_CONTACT\",\r\n DELETE_COMPANY_ADDRESS_BOOK_CONTACT_FAILED: \"DELETE_COMPANY_ADDRESS_BOOK_CONTACT_FAILED\",\r\n\r\n UPDATING_COMPANY_DOCUMENT: \"UPDATING_COMPANY_DOCUMENT\",\r\n UPDATED_COMPANY_DOCUMENT: \"UPDATED_COMPANY_DOCUMENT\",\r\n UPDATE_COMPANY_DOCUMENT_FAILED: \"UPDATE_COMPANY_DOCUMENT_FAILED\",\r\n\r\n UPDATING_DOCUMENT_METADATA: \"UPDATING_DOCUMENT_METADATA\",\r\n UPDATED_DOCUMENT_METADATA: \"UPDATED_DOCUMENT_METADATA\",\r\n UPDATE_DOCUMENT_METADATA_FAILED: \"UPDATE_DOCUMENT_METADATA_FAILED\",\r\n\r\n CLEAR_ALL_REPLY_TEMPLATES: \"CLEAR_ALL_REPLY_TEMPLATES\",\r\n\r\n GETTING_ALL_EMAIL_CONFIG_TYPES: \"GETTING_ALL_EMAIL_CONFIG_TYPES\",\r\n GOT_ALL_EMAIL_CONFIG_TYPES: \"GOT_ALL_EMAIL_CONFIG_TYPES\",\r\n GET_ALL_EMAIL_CONFIG_TYPES_FAILED: \"GET_ALL_EMAIL_CONFIG_TYPES_FAILED\",\r\n\r\n SETTING_COMPANY_EMAIL_CONFIG: \"SETTING_COMPANY_EMAIL_CONFIG\",\r\n SET_COMPANY_EMAIL_CONFIG: \"SET_COMPANY_EMAIL_CONFIG\",\r\n SET_COMPANY_EMAIL_CONFIG_FAILED: \"SET_COMPANY_EMAIL_CONFIG_FAILED\",\r\n\r\n GETTING_COMPANY_EMAIL_CONFIG: \"GETTING_COMPANY_EMAIL_CONFIG\",\r\n GOT_COMPANY_EMAIL_CONFIG: \"GOT_COMPANY_EMAIL_CONFIG\",\r\n GET_COMPANY_EMAIL_CONFIG_FAILED: \"GET_COMPANY_EMAIL_CONFIG_FAILED\",\r\n\r\n GETTING_COMPANY_EMAIL_CONFIG_VERIFICATION: \"GETTING_COMPANY_EMAIL_CONFIG_VERIFICATION\",\r\n GOT_COMPANY_EMAIL_CONFIG_VERIFICATION: \"GOT_COMPANY_EMAIL_CONFIG_VERIFICATION\",\r\n GET_COMPANY_EMAIL_CONFIG_VERIFICATION_FAILED: \"GET_COMPANY_EMAIL_CONFIG_VERIFICATION_FAILED\",\r\n\r\n GETTING_COMPANY_EMAIL_CONFIG_TYPE: \"GETTING_COMPANY_EMAIL_CONFIG_TYPE\",\r\n GOT_COMPANY_EMAIL_CONFIG_TYPE: \"GOT_COMPANY_EMAIL_CONFIG_TYPE\",\r\n GET_COMPANY_EMAIL_CONFIG_TYPE_FAILED: \"GET_COMPANY_EMAIL_CONFIG_TYPE_FAILED\",\r\n\r\n GETTING_COMPANY_WORKFLOWS: \"GETTING_COMPANY_WORKFLOWS\",\r\n GOT_COMPANY_WORKFLOWS: \"GOT_COMPANY_WORKFLOWS\",\r\n FAILED_GET_COMPANY_WORKFLOWS: \"FAILED_GET_COMPANY_WORKFLOWS\",\r\n\r\n PUTTING_COMPANY_WORKFLOW: \"PUTTING_COMPANY_WORKFLOW\",\r\n PUT_COMPANY_WORKFLOW: \"PUT_COMPANY_WORKFLOW\",\r\n FAILED_PUT_COMPANY_WORKFLOW: \"FAILED_PUT_COMPANY_WORKFLOW\",\r\n\r\n DELETING_COMPANY_WORKFLOW: \"DELETING_COMPANY_WORKFLOW\",\r\n DELETED_COMPANY_WORKFLOW: \"DELETED_COMPANY_WORKFLOW\",\r\n FAILED_DELETE_COMPANY_WORKFLOW: \"FAILED_DELETE_COMPANY_WORKFLOW\",\r\n\r\n UPDATING_COMPANY_WORKFLOW: \"UPDATING_COMPANY_WORKFLOW\",\r\n UPDATED_COMPANY_WORKFLOW: \"UPDATED_COMPANY_WORKFLOW\",\r\n FAILED_UPDATE_COMPANY_WORKFLOW: \"FAILED_UPDATE_COMPANY_WORKFLOW\",\r\n\r\n GETTING_COMMUNICATION_TEMPLATES: \"GETTING_COMMUNICATION_TEMPLATES\",\r\n GOT_COMMUNICATION_TEMPLATES: \"GOT_COMMUNICATION_TEMPLATES\",\r\n FAILED_GET_COMMUNICATION_TEMPLATES: \"FAILED_GET_COMMUNICATION_TEMPLATES\",\r\n\r\n POSTING_COMMUNICATION_TEMPLATE: \"POSTING_COMMUNICATION_TEMPLATE\",\r\n POSTED_COMMUNICATION_TEMPLATE: \"POSTED_COMMUNICATION_TEMPLATE\",\r\n FAILED_POST_COMMUNICATION_TEMPLATE: \"FAILED_POST_COMMUNICATION_TEMPLATE\",\r\n\r\n DELETING_COMMUNICATION_TEMPLATE: \"DELETING_COMMUNICATION_TEMPLATE\",\r\n DELETED_COMMUNICATION_TEMPLATE: \"DELETED_COMMUNICATION_TEMPLATE\",\r\n FAILED_DELETE_COMMUNICATION_TEMPLATE: \"FAILED_DELETE_COMMUNICATION_TEMPLATE\",\r\n\r\n GETTING_CUSTOMER_GROUPS: \"GETTING_CUSTOMER_GROUPS\",\r\n GOT_CUSTOMER_GROUPS: \"GOT_CUSTOMER_GROUPS\",\r\n FAILED_GET_CUSTOMER_GROUPS: \"FAILED_GET_CUSTOMER_GROUPS\",\r\n\r\n POSTING_CUSTOMER_GROUP: \"POSTING_CUSTOMER_GROUP\",\r\n POSTED_CUSTOMER_GROUP: \"POSTED_CUSTOMER_GROUP\",\r\n FAILED_POST_CUSTOMER_GROUP: \"FAILED_POST_CUSTOMER_GROUP\",\r\n\r\n DELETING_CUSTOMER_GROUP: \"DELETING_CUSTOMER_GROUP\",\r\n DELETED_CUSTOMER_GROUP: \"DELETED_CUSTOMER_GROUP\",\r\n FAILED_DELETE_CUSTOMER_GROUP: \"FAILED_DELETE_CUSTOMER_GROUP\",\r\n\r\n GETTING_CUSTOMER_GROUPS_FILTERS: \"GETTING_CUSTOMER_GROUPS_FILTERS\",\r\n GOT_CUSTOMER_GROUPS_FILTERS: \"GOT_CUSTOMER_GROUPS_FILTERS\",\r\n FAILED_GET_CUSTOMER_GROUPS_FILTERS: \"FAILED_GET_CUSTOMER_GROUPS_FILTERS\",\r\n\r\n POSTING_CUSTOMER_GROUPS_PREVIEW: \"POSTING_CUSTOMER_GROUPS_PREVIEW\",\r\n POSTED_CUSTOMER_GROUPS_PREVIEW: \"POSTED_CUSTOMER_GROUPS_PREVIEW\",\r\n FAILED_POST_CUSTOMER_GROUPS_PREVIEW: \"FAILED_POST_CUSTOMER_GROUPS_PREVIEW\",\r\n\r\n GETTING_CUSTOMERS: \"GETTING_CUSTOMERS\",\r\n GOT_CUSTOMERS: \"GOT_CUSTOMERS\",\r\n FAILED_GET_CUSTOMERS: \"FAILED_GET_CUSTOMERS\",\r\n\r\n UPDATE_CUSTOMER_GROUPS_SORT: \"UPDATE_CUSTOMER_GROUPS_SORT\",\r\n\r\n CLEAR_CUSTOMERS_SEARCH_RESULTS: \"CLEAR_CUSTOMERS_SEARCH_RESULTS\",\r\n DISPLAY_CUSTOMERS_SEARCH_RESULTS: \"DISPLAY_CUSTOMERS_SEARCH_RESULTS\",\r\n FETCHING_CUSTOMERS_SEARCH_RESULTS: \"FETCHING_CUSTOMERS_SEARCH_RESULTS\",\r\n FETCHED_CUSTOMERS_SEARCH_RESULTS: \"FETCHED_CUSTOMERS_SEARCH_RESULTS\",\r\n FETCH_CUSTOMERS_SEARCH_RESULTS_FAILED: \"FETCH_CUSTOMERS_SEARCH_RESULTS_FAILED\",\r\n\r\n GETTING_COMMUNICATION_TEMPLATE_DESTINATIONS: \"GETTING_COMMUNICATION_TEMPLATE_DESTINATIONS\",\r\n GOT_COMMUNICATION_TEMPLATE_DESTINATIONS: \"GOT_COMMUNICATION_TEMPLATE_DESTINATIONS\",\r\n FAILED_GET_COMMUNICATION_TEMPLATE_DESTINATIONS: \"FAILED_GET_COMMUNICATION_TEMPLATE_DESTINATIONS\",\r\n\r\n GETTING_COMMUNICATION_TEMPLATE_SNIPPETS: \"GETTING_COMMUNICATION_TEMPLATE_SNIPPETS\",\r\n GOT_COMMUNICATION_TEMPLATE_SNIPPETS: \"GOT_COMMUNICATION_TEMPLATE_SNIPPETS\",\r\n FAILED_GET_COMMUNICATION_TEMPLATE_SNIPPETS: \"FAILED_GET_COMMUNICATION_TEMPLATE_SNIPPETS\",\r\n\r\n GETTING_COMMUNICATION_TEMPLATE_ATTACHMENT: \"GETTING_COMMUNICATION_TEMPLATE_ATTACHMENT\",\r\n GOT_COMMUNICATION_TEMPLATE_ATTACHMENT: \"GOT_COMMUNICATION_TEMPLATE_ATTACHMENT\",\r\n FAILED_GET_COMMUNICATION_TEMPLATE_ATTACHMENT: \"FAILED_GET_COMMUNICATION_TEMPLATE_ATTACHMENT\",\r\n\r\n UPDATE_COMMUNICATION_TEMPLATES_SORT: \"UPDATE_COMMUNICATION_TEMPLATES_SORT\",\r\n\r\n GETTING_EMAIL_CONFIG_TEST: \"GETTING_EMAIL_CONFIG_TEST\",\r\n GOT_EMAIL_CONFIG_TEST: \"GOT_EMAIL_CONFIG_TEST\",\r\n FAILED_GET_EMAIL_CONFIG_TEST: \"FAILED_GET_EMAIL_CONFIG_TEST\",\r\n\r\n CLEAR_MANAGE_IS_SET_DATA: \"CLEAR_MANAGE_IS_SET_DATA\"\r\n }\r\n};\r\n\r\nconst importCompanyAddressBook = (companyId, contactsCSV) => (dispatch, getState) => {\r\n if (getState().manage.isImportingCompanyAddressBook) {\r\n return;\r\n }\r\n const formData = new FormData();\r\n\r\n formData.append(\"csv\", contactsCSV);\r\n dispatch({ type: actions.IMPORTING_COMPANY_ADDRESS_BOOK });\r\n\r\n data\r\n .post(`v1/api/account/company/${companyId}/addressbook/import`, formData, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.IMPORTED_COMPANY_ADDRESS_BOOK });\r\n dispatch(fetchCompanyAddressBook(companyId));\r\n })\r\n .catch(error => {\r\n handlePromiseError(\r\n error,\r\n \"TODO: Importing contacts failed. Please try again. If you continue to have trouble, please contact Lockstep support.\",\r\n \"address book\"\r\n );\r\n dispatch({ type: actions.IMPORT_COMPANY_ADDRESS_BOOK_FAILED });\r\n });\r\n};\r\n\r\nconst putAddressBookContact = (companyId, contact) => (dispatch, getState) => {\r\n if (getState().manage.puttingAddressBookContact) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.PUTTING_COMPANY_ADDRESS_BOOK });\r\n\r\n return data\r\n .put(`v1/api/account/company/${companyId}/addressbook`, contact)\r\n .then(response => {\r\n dispatch({ type: actions.PUT_COMPANY_ADDRESS_BOOK });\r\n dispatch(fetchCompanyAddressBook(companyId));\r\n return response;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"TODO: Adding company contact failed. Please try again\", \"address book\");\r\n dispatch({ type: actions.FAILED_PUT_COMPANY_ADDRESS_BOOK });\r\n throw error;\r\n });\r\n};\r\n\r\nconst postAddressBookContact = (companyId, addressBookContactId, contact) => (dispatch, getState) => {\r\n if (getState().manage.postingAddressBookContact) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.POSTING_COMPANY_ADDRESS_BOOK });\r\n\r\n return data\r\n .post(`v1/api/account/company/${companyId}/addressbook/${addressBookContactId}`, contact)\r\n .then(response => {\r\n dispatch({ type: actions.POST_COMPANY_ADDRESS_BOOK });\r\n dispatch(fetchCompanyAddressBook(companyId));\r\n return response;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"TODO: Editing company contact failed. Please try again\", \"address book\");\r\n dispatch({ type: actions.FAILED_POST_COMPANY_ADDRESS_BOOK });\r\n throw error;\r\n });\r\n};\r\n\r\nconst fetchCompanyAddressBook = (companyId, filter) => (dispatch, getState) => {\r\n if (getState().manage.isFetchingCompanyAddressBook) {\r\n return;\r\n }\r\n\r\n let endpoint = `v1/api/account/company/${companyId}/addressbook`;\r\n\r\n if (!isEmpty(filter)) {\r\n endpoint += `?$filter=${filter}`;\r\n }\r\n\r\n dispatch({ type: actions.FETCHING_COMPANY_ADDRESS_BOOK });\r\n return data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({ type: actions.FETCHED_COMPANY_ADDRESS_BOOK, addresses: response.data });\r\n return response.data;\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FETCH_COMPANY_ADDRESS_BOOK_FAILED });\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Fetching your company address book failed. Please try again.\",\r\n \"address book\"\r\n );\r\n });\r\n};\r\n\r\nconst getCompanyAddressBook = companyId => (dispatch, getState) => {\r\n const store = getState().manage;\r\n if (store.fetchingCompanyAddressBookFailed === null) {\r\n dispatch(fetchCompanyAddressBook(companyId));\r\n return null;\r\n } else if (store.fetchingCompanyAddressBookFailed === true) {\r\n return;\r\n }\r\n let addresses = [];\r\n const perspectives = store.companyAddressBook.perspectives;\r\n Object.keys(perspectives).forEach(perspective => {\r\n perspectives[perspective].forEach(contextGroup => {\r\n addresses = addresses.concat(contextGroup.items);\r\n });\r\n });\r\n return addresses;\r\n};\r\n\r\nconst deleteCompanyAddressBookContact = (companyId, addressBookContactId) => (dispatch, getState) => {\r\n dispatch({ type: actions.DELETING_COMPANY_ADDRESS_BOOK_CONTACT });\r\n return data\r\n .delete(`v1/api/account/company/${companyId}/addressbook/${addressBookContactId}`)\r\n .then(response => {\r\n dispatch({ type: actions.DELETED_COMPANY_ADDRESS_BOOK_CONTACT, addresses: response.data });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.DELETE_COMPANY_ADDRESS_BOOK_CONTACT_FAILED });\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Deleting your company address book contact failed. Please try again.\",\r\n \"address book contact\"\r\n );\r\n });\r\n};\r\n\r\nlet CREATE_EMAIL_REPLY_TEMPLATE_PROMISE = null;\r\nconst createEmailReplyTemplate = (companyId, perspective, payloadObj) => dispatch => {\r\n dispatch({ type: actions.CREATING_EMAIL_REPLY_TEMPLATE });\r\n CREATE_EMAIL_REPLY_TEMPLATE_PROMISE = data\r\n .post(`v2/api/sequence/templates/${companyId}/${perspective}`, payloadObj)\r\n .then(() => {\r\n dispatch({ type: actions.CREATED_EMAIL_REPLY_TEMPLATE });\r\n dispatch(fetchAllCompanyReplyTemplates(companyId, perspective));\r\n return \"TEMPLATE_CREATED\";\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.CREATE_EMAIL_REPLY_TEMPLATE_FAILED });\r\n if (!isEmpty(e.response.data.ResourceId)) {\r\n handlePromiseError(\r\n e,\r\n \"TODO: Creating the template failed. A template is already selected to that auto-fill role.\",\r\n \"template\"\r\n );\r\n } else {\r\n handlePromiseError(\r\n e,\r\n \"TODO: Creating the email reply template failed. Please verify your template and try again.\",\r\n \"template\"\r\n );\r\n }\r\n });\r\n\r\n return CREATE_EMAIL_REPLY_TEMPLATE_PROMISE;\r\n};\r\n\r\nexport const getAllCompanyReplyTemplates = (companyId, perspective) => (dispatch, getState) => {\r\n const store = getState().manage;\r\n if (isEmpty(perspective)) {\r\n return null;\r\n }\r\n\r\n if (store.allCompanyReplyTemplatesIsFetched[perspective] !== true) {\r\n dispatch(fetchAllCompanyReplyTemplates(companyId, perspective));\r\n return null;\r\n }\r\n return store.allCompanyReplyTemplates[perspective];\r\n};\r\n\r\nconst fetchAllCompanyReplyTemplates = (companyId, perspective) => (dispatch, getState) => {\r\n if (getState().manage.isGettingAllEmailReplyTemplates === true) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.GETTING_ALL_EMAIL_REPLY_TEMPLATES });\r\n data\r\n .get(`v2/api/sequence/templates/${companyId}/${perspective}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_ALL_EMAIL_REPLY_TEMPLATES,\r\n perspective,\r\n companyReplyTemplates: response.data\r\n });\r\n })\r\n .catch(e => {\r\n dispatch({\r\n type: actions.GET_ALL_EMAIL_REPLY_TEMPLATES_FAILED,\r\n perspective\r\n });\r\n handlePromiseError(\r\n e,\r\n \"TODO: Getting list of reply templates failed. Please refresh the page.\",\r\n \"reply templates\"\r\n );\r\n });\r\n};\r\n\r\nlet DELETE_EMAIL_REPLY_TEMPLATE_PROMISE = null;\r\nconst deleteCompanyReplyTemplate = (companyId, perspective, perspectiveEmailTemplateId) => dispatch => {\r\n DELETE_EMAIL_REPLY_TEMPLATE_PROMISE = data\r\n .delete(`v1/api/perspective/${perspective}/templates/${perspectiveEmailTemplateId}`)\r\n .then(response => {\r\n dispatch(fetchAllCompanyReplyTemplates(companyId, perspective));\r\n })\r\n .catch(rejection => {\r\n dispatch(fetchAllCompanyReplyTemplates(companyId, perspective));\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Deleting the reply template failed. Please refresh your page and try again.\",\r\n \"reply template\"\r\n );\r\n });\r\n\r\n return DELETE_EMAIL_REPLY_TEMPLATE_PROMISE;\r\n};\r\n\r\nconst fetchPopulatedTemplate = (companyId, perspective, perspectiveEmailTemplateId, conversationId) => dispatch => {\r\n dispatch({ type: actions.FETCHING_POPULATED_TEMPLATE });\r\n\r\n return data\r\n .get(\r\n `v2/api/sequence/templates/${companyId}/${perspective}/populate/${perspectiveEmailTemplateId}/for/${conversationId}`\r\n )\r\n .then(response => {\r\n dispatch({ type: actions.FETCHED_POPULATED_TEMPLATE });\r\n return response.data;\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FETCH_POPULATED_TEMPLATE_FAILED });\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Populating the template variables failed. Please try again.\",\r\n \"populated template\"\r\n );\r\n });\r\n};\r\n\r\nconst createCompanyDocument = req => dispatch => {\r\n const { companyId, perspectiveId, upload, metadata } = req;\r\n const formData = new FormData();\r\n\r\n formData.append(\"file\", upload);\r\n dispatch({ type: actions.CREATING_COMPANY_DOCUMENT });\r\n\r\n return data\r\n .put(`v1/api/account/company/${companyId}/${perspectiveId}/documents`, formData, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.CREATED_COMPANY_DOCUMENT });\r\n\r\n const { companyDocumentId } = response.data;\r\n if (isEmpty(metadata) !== true) {\r\n dispatch(updateDocumentMetadata(companyId, perspectiveId, companyDocumentId, metadata));\r\n } else {\r\n dispatch(fetchCompanyDocuments(companyId, perspectiveId));\r\n }\r\n return response.data;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.CREATE_COMPANY_DOCUMENT_FAILED });\r\n handlePromiseError(\r\n e,\r\n \"TODO: Creating the shared document failed. Please verify your file and try again.\",\r\n \"shared document\"\r\n );\r\n throw e;\r\n });\r\n};\r\n\r\nconst updateDocumentMetadata = (companyId, perspectiveId, companyDocumentId, metadata) => dispatch => {\r\n dispatch({ type: actions.UPDATING_DOCUMENT_METADATA });\r\n\r\n data\r\n .post(`v1/api/account/company/${companyId}/${perspectiveId}/documents/${companyDocumentId}/metadata`, metadata, {\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n }\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.UPDATED_DOCUMENT_METADATA });\r\n dispatch(fetchCompanyDocuments(companyId, perspectiveId));\r\n })\r\n .catch(rejection => {\r\n dispatch(fetchCompanyDocuments(companyId, perspectiveId));\r\n dispatch({ type: actions.UPDATE_DOCUMENT_METADATA_FAILED });\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Updating the document metadata failed. Please verify your file and try again.\",\r\n \"document metadata\"\r\n );\r\n });\r\n};\r\n\r\nconst updateCompanyDocument = req => dispatch => {\r\n const { companyId, perspectiveId, companyDocumentId, upload, metadata } = req;\r\n // isEmpty does not work for a File() object\r\n if (!upload) {\r\n dispatch(updateDocumentMetadata(companyId, perspectiveId, companyDocumentId, metadata));\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n formData.append(\"file\", upload);\r\n\r\n dispatch({ type: actions.UPDATING_COMPANY_DOCUMENT });\r\n data\r\n .post(`v1/api/account/company/${companyId}/${perspectiveId}/documents/${companyDocumentId}`, formData, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.UPDATED_COMPANY_DOCUMENT });\r\n dispatch(updateDocumentMetadata(companyId, perspectiveId, companyDocumentId, metadata));\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.UPDATE_COMPANY_DOCUMENT_FAILED });\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Updating the shared document failed. Please verify your file and try again.\",\r\n \"company document\"\r\n );\r\n });\r\n};\r\n\r\nconst getCompanyDocuments = (companyId, perspectiveId) => (dispatch, getState) => {\r\n const store = getState().manage;\r\n if (store.fetchingCompanyDocumentsFailed[perspectiveId] === undefined) {\r\n dispatch(fetchCompanyDocuments(companyId, perspectiveId));\r\n return null;\r\n }\r\n return store.companyDocuments[perspectiveId];\r\n};\r\n\r\nconst fetchCompanyDocuments = (companyId, perspectiveId) => (dispatch, getState) => {\r\n if (getState().manage.isFetchingCompanyDocuments === true) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.FETCHING_COMPANY_DOCUMENTS });\r\n data\r\n .get(`v1/api/account/company/${companyId}/${perspectiveId}/documents`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_COMPANY_DOCUMENTS,\r\n perspectiveId,\r\n companyDocuments: response.data\r\n });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FETCH_COMPANY_DOCUMENTS_FAILED, perspectiveId });\r\n handlePromiseError(\r\n e,\r\n \"TODO: Getting list of shared documents failed. Please refresh the page.\",\r\n \"company documents\"\r\n );\r\n });\r\n};\r\n\r\nconst deleteCompanyDocument = (companyId, perspectiveId, companyDocumentId) => dispatch => {\r\n data\r\n .delete(`v1/api/account/company/${companyId}/${perspectiveId}/documents/${companyDocumentId}`)\r\n .then(response => {\r\n dispatch(fetchCompanyDocuments(companyId, perspectiveId));\r\n })\r\n .catch(rejection => {\r\n dispatch(fetchCompanyDocuments(companyId, perspectiveId));\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Deleting the shared document failed. Please refresh your page and try again.\",\r\n \"company document\"\r\n );\r\n });\r\n};\r\n\r\nconst fetchCompanyEmailConfigData = companyId => (dispatch, getState) => {\r\n let state = getState().manage;\r\n if (state.isGettingCompanyConfigData) return;\r\n dispatch({ type: actions.GETTING_COMPANY_EMAIL_CONFIG });\r\n data\r\n .get(`v1/api/connector/email/config/${companyId}`)\r\n .then(response => {\r\n dispatch(getCompanyEmailConfigVerification(companyId));\r\n dispatch({\r\n type: actions.GOT_COMPANY_EMAIL_CONFIG,\r\n companyCurrentConfig: { [companyId]: response.data }\r\n });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.GET_COMPANY_EMAIL_CONFIG_FAILED });\r\n handlePromiseError(\r\n e,\r\n \"TODO: Getting your company email configuration failed. Please refresh the page.\",\r\n \"email configuration\"\r\n );\r\n });\r\n};\r\n\r\nconst getCompanyEmailConfigData = companyId => (dispatch, getState) => {\r\n let state = getState().manage;\r\n return state.companiesEmailConfigData[companyId];\r\n};\r\n\r\nconst fetchAllEmailConfigTypes = () => (dispatch, getState) => {\r\n let state = getState().manage;\r\n if (state.isGettingAllEmailConfigTypes) return;\r\n\r\n dispatch({ type: actions.GETTING_ALL_EMAIL_CONFIG_TYPES });\r\n data\r\n .get(\"v1/api/connector/email/config/types\")\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_ALL_EMAIL_CONFIG_TYPES,\r\n allEmailConfigTypes: response.data\r\n });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.GET_ALL_EMAIL_CONFIG_TYPES_FAILED });\r\n handlePromiseError(\r\n e,\r\n \"TODO: Getting the company email configurations failed. Please refresh the page.\",\r\n \"email configurations\"\r\n );\r\n });\r\n};\r\n\r\nconst getAllEmailConfigTypes = () => (dispatch, getState) => {\r\n let state = getState().manage;\r\n return state.allEmailConfigTypes;\r\n};\r\n\r\nconst fetchCompanyEmailConfigType = companyId => (dispatch, getState) => {\r\n let state = getState().manage;\r\n if (state.isGettingCompanyEmailConfigType) return;\r\n dispatch({ type: actions.GETTING_COMPANY_EMAIL_CONFIG_TYPE });\r\n\r\n Promise.all([data.get(`v1/api/connector/email/config/${companyId}`), data.get(\"v1/api/connector/email/config/types\")])\r\n .then(response => {\r\n let currentCompanyEmailConfig = response[0].data;\r\n currentCompanyEmailConfig.map(config => {\r\n return { ...config, configurationData: JSON.parse(config.configurationData) };\r\n });\r\n let allEmailConfigTypes = response[1].data;\r\n dispatch({\r\n type: actions.GOT_COMPANY_EMAIL_CONFIG_TYPE,\r\n companyEmailConfigType: {\r\n [companyId]: currentCompanyEmailConfig.reduce((result, c) => {\r\n result[c.perspectiveId] = find(allEmailConfigTypes, eConfig => {\r\n return eConfig.emailConfigurationTypeId === c.emailConfigurationTypeId;\r\n });\r\n return result;\r\n }, {})\r\n }\r\n });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.GET_COMPANY_EMAIL_CONFIG_TYPE_FAILED });\r\n handlePromiseError(\r\n e,\r\n \"TODO: Getting the company email configuration failed. Please refresh the page.\",\r\n \"email configuration type\"\r\n );\r\n });\r\n};\r\n\r\nconst getCompanyEmailConfigType = companyId => (dispatch, getState) => {\r\n let state = getState().manage;\r\n return state.companiesEmailConfigType[companyId];\r\n};\r\n\r\nconst setCompanyEmailConfig = (companyId, payload) => dispatch => {\r\n dispatch({ type: actions.SETTING_COMPANY_EMAIL_CONFIG });\r\n return data\r\n .post(`v1/api/connector/email/config/${companyId}`, payload, {\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\"\r\n }\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.SET_COMPANY_EMAIL_CONFIG });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.SET_COMPANY_EMAIL_CONFIG_FAILED });\r\n handlePromiseError(\r\n e,\r\n \"TODO: Changing the company email configuration failed. Please try again.\",\r\n \"email configuration\"\r\n );\r\n });\r\n};\r\n\r\nconst getCompanyEmailConfigVerification = companyId => (dispatch, getState) => {\r\n dispatch({ type: actions.GETTING_COMPANY_EMAIL_CONFIG_VERIFICATION });\r\n data\r\n .post(`v1/api/connector/email/config/${companyId}/verify`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_COMPANY_EMAIL_CONFIG_VERIFICATION,\r\n isCurrentEmailConfigVerified: response.data\r\n });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.GET_COMPANY_EMAIL_CONFIG_VERIFICATION_FAILED });\r\n handlePromiseError(\r\n e,\r\n \"TODO: The request to verify the company email configuration failed. Please try again.\",\r\n \"email configuration verification\"\r\n );\r\n });\r\n};\r\n\r\nconst fetchCompanyWorkflows = companyId => (dispatch, getState) => {\r\n dispatch({ type: actions.GETTING_COMPANY_WORKFLOWS, companyId });\r\n data\r\n .get(`v2/api/ledger/all/${companyId}/reminder?$top=0`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_COMPANY_WORKFLOWS,\r\n workflows: response.data.value,\r\n count: response.data.count,\r\n companyId\r\n });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_GET_COMPANY_WORKFLOWS });\r\n handlePromiseError(e, \"TODO: Could not get company workflows. Please refresh the page.\", \"company workflows\");\r\n });\r\n};\r\n\r\nconst putCompanyWorkflow = (companyId, perspectiveId, name, description, type, resourceName) => (\r\n dispatch,\r\n getState\r\n) => {\r\n dispatch({ type: actions.PUTTING_COMPANY_WORKFLOW });\r\n let content = { name, description, type, perspectiveId, resourceName };\r\n return data\r\n .put(`v1/api/ledger/from/${companyId}/reminder/create`, content)\r\n .then(response => {\r\n dispatch({ type: actions.PUT_COMPANY_WORKFLOW });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_PUT_COMPANY_WORKFLOW });\r\n handlePromiseError(\r\n e,\r\n \"TODO: The request to create a company workflow has failed. Please try again.\",\r\n \"company workflow\"\r\n );\r\n });\r\n};\r\n\r\nconst deleteCompanyWorkflow = (companyId, ledgerHash) => (dispatch, getState) => {\r\n dispatch({ type: actions.DELETING_COMPANY_WORKFLOW });\r\n return data\r\n .put(`v1/api/ledger/from/${companyId}/on/${ledgerHash}/reminder/delete`, {})\r\n .then(response => {\r\n dispatch({ type: actions.DELETED_COMPANY_WORKFLOW });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_DELETE_COMPANY_WORKFLOW });\r\n handlePromiseError(\r\n e,\r\n \"TODO: The request to delete a company workflow has failed. Please try again.\",\r\n \"company workflow\"\r\n );\r\n });\r\n};\r\n\r\nconst updateCompanyWorkflow = (companyId, ledgerHash, newJson) => (dispatch, getState) => {\r\n dispatch({ type: actions.UPDATING_COMPANY_WORKFLOW });\r\n return data\r\n .put(`v1/api/ledger/from/${companyId}/on/${ledgerHash}/reminder/update`, newJson)\r\n .then(response => {\r\n dispatch({ type: actions.UPDATED_COMPANY_WORKFLOW });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_UPDATE_COMPANY_WORKFLOW });\r\n handlePromiseError(\r\n e,\r\n \"TODO: The request to update a company workflow has failed. Please try again.\",\r\n \"company workflow\"\r\n );\r\n });\r\n};\r\n\r\nconst getCommunicationTemplates = companyId => (dispatch, getState) => {\r\n if (getState().manage.gettingCommunicationTemplates) {\r\n return false;\r\n }\r\n dispatch({ type: actions.GETTING_COMMUNICATION_TEMPLATES });\r\n return data\r\n .get(`v2/api/sequence/templates/${companyId}`)\r\n .then(response => {\r\n let templates = response.data.map(template => {\r\n switch (1) {\r\n case template.emailTemplateStatus:\r\n template.type = \"email\";\r\n break;\r\n case template.voiceMessageStatus:\r\n template.type = \"voice\";\r\n break;\r\n case template.smsStatus:\r\n template.type = \"text\";\r\n break;\r\n default:\r\n template.type = \"inactive\";\r\n break;\r\n }\r\n return template;\r\n });\r\n dispatch({ type: actions.GOT_COMMUNICATION_TEMPLATES, communicationTemplates: templates });\r\n return true;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_GET_COMMUNICATION_TEMPLATES });\r\n handlePromiseError(e, `TODO: ${Resources.FailedGetCommunicationTemplates}`, \"communication templates\");\r\n throw e;\r\n });\r\n};\r\n\r\nconst postCommunicationTemplate = (companyId, template, attachmentsToUpload, attachmentsToDelete) => (\r\n dispatch,\r\n getState\r\n) => {\r\n dispatch({ type: actions.POSTING_COMMUNICATION_TEMPLATE });\r\n return data\r\n .post(`v2/api/sequence/templates/${companyId}`, template)\r\n .then(response => {\r\n let attachmentUploads = attachmentsToUpload.map(attachment =>\r\n dispatch(\r\n postCommunicationTemplateAttachment(\r\n companyId,\r\n template.emailTemplateKey || response.data.emailTemplateKey,\r\n attachment\r\n )\r\n )\r\n );\r\n let attachmentDeletions = attachmentsToDelete.map(attachmentName =>\r\n dispatch(\r\n deleteCommunicationTemplateAttachment(\r\n companyId,\r\n template.emailTemplateKey || response.data.emailTemplateKey,\r\n attachmentName\r\n )\r\n )\r\n );\r\n return Promise.all([attachmentUploads, attachmentDeletions]);\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.POSTED_COMMUNICATION_TEMPLATE, communicationTemplates: response.data });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_POST_COMMUNICATION_TEMPLATE });\r\n handlePromiseError(e, `TODO: ${Resources.FailedPostCommunicationTemplate}`, \"communication templates\");\r\n throw e;\r\n });\r\n};\r\n\r\nexport const deleteCommunicationTemplate = (companyId, emailTemplateKey) => (dispatch, getState) => {\r\n dispatch({ type: actions.DELETING_COMMUNICATION_TEMPLATE });\r\n return data\r\n .delete(`v2/api/sequence/templates/${companyId}/${emailTemplateKey}`)\r\n .then(response => {\r\n dispatch({ type: actions.DELETED_COMMUNICATION_TEMPLATE, communicationTemplates: response.data });\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_DELETE_COMMUNICATION_TEMPLATE });\r\n handlePromiseError(e, `TODO: ${Resources.FailedDeleteCommunicationTemplate}`, \"communication templates\");\r\n });\r\n};\r\n\r\nconst getCustomerGroups = companyId => (dispatch, getState) => {\r\n let manageState = getState().manage;\r\n let sortBy = manageState.customerGroupsSortBy;\r\n let sortDirection = manageState.customerGroupsSortDirection;\r\n if (manageState.gettingCustomerGroups) {\r\n return false;\r\n }\r\n dispatch({ type: actions.GETTING_CUSTOMER_GROUPS });\r\n return data\r\n .get(`v2/api/sequence/groups/${companyId}`)\r\n .then(response => {\r\n let customerGroups = response.data.map(group => {\r\n return { ...group, companyCount: group.companies.count };\r\n });\r\n customerGroups.sort((a, b) => {\r\n if (sortDirection === \"asc\") {\r\n return a[sortBy] < b[sortBy] ? 1 : -1;\r\n } else {\r\n return a[sortBy] > b[sortBy] ? 1 : -1;\r\n }\r\n });\r\n dispatch({ type: actions.GOT_CUSTOMER_GROUPS, customerGroups });\r\n return customerGroups;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_GET_CUSTOMER_GROUPS });\r\n handlePromiseError(e, `TODO: ${Resources.FailedGetAccountGroups}`, \"account groups\");\r\n throw e;\r\n });\r\n};\r\n\r\nconst postCustomerGroup = (companyId, customerGroupKey, body) => (dispatch, getState) => {\r\n dispatch({ type: actions.POSTING_CUSTOMER_GROUP });\r\n return data\r\n .post(`v2/api/sequence/groups/${companyId}`, body)\r\n .then(response => {\r\n dispatch({ type: actions.POSTED_CUSTOMER_GROUP });\r\n return response.data;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_POST_CUSTOMER_GROUP });\r\n handlePromiseError(e, `TODO: ${Resources.FailedSaveAccountGroup}`, \"account groups\");\r\n throw e;\r\n });\r\n};\r\n\r\nconst deleteCustomerGroup = (companyId, customerGroupKey) => (dispatch, getState) => {\r\n dispatch({ type: actions.DELETING_CUSTOMER_GROUP });\r\n return data\r\n .delete(`v2/api/sequence/groups/${companyId}/${customerGroupKey}`)\r\n .then(response => {\r\n dispatch({ type: actions.DELETED_CUSTOMER_GROUP });\r\n return response.data;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_DELETE_CUSTOMER_GROUP });\r\n handlePromiseError(e, `TODO: ${Resources.FailedDeleteAccountGroup}`, \"account groups\");\r\n throw e;\r\n });\r\n};\r\n\r\nconst getCustomerGroupsFilters = companyId => (dispatch, getState) => {\r\n dispatch({ type: actions.GETTING_CUSTOMER_GROUPS_FILTERS });\r\n return data\r\n .get(`v2/api/sequence/groups/${companyId}/filters`)\r\n .then(response => {\r\n dispatch({ type: actions.GOT_CUSTOMER_GROUPS_FILTERS, filters: response.data });\r\n return response.data;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_GET_CUSTOMER_GROUPS_FILTERS });\r\n handlePromiseError(e, `TODO: ${Resources.FailedGetAccountGroupFilters}`, \"account groups\");\r\n throw e;\r\n });\r\n};\r\n\r\nconst postCustomerGroupsPreview = (companyId, filters) => (dispatch, getState) => {\r\n dispatch({ type: actions.POSTING_CUSTOMER_GROUPS_PREVIEW });\r\n return data\r\n .post(`v2/api/sequence/groups/${companyId}/preview`, { filters })\r\n .then(response => {\r\n dispatch({ type: actions.POSTED_CUSTOMER_GROUPS_PREVIEW, customerGroupPreview: response.data });\r\n return response.data;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_POST_CUSTOMER_GROUPS_PREVIEW });\r\n handlePromiseError(e, `TODO: ${Resources.FailedGetAccountGroups}`, \"account groups\");\r\n throw e;\r\n });\r\n};\r\n\r\nconst updateCustomerGroupsSort = sortBy => (dispatch, getState) => {\r\n let manageState = getState().manage;\r\n let customerGroups = [...getState().manage.customerGroups];\r\n let sortDirection = \"asc\";\r\n\r\n if (manageState.customerGroupsSortBy === sortBy) {\r\n if (manageState.customerGroupsSortDirection === \"asc\") {\r\n sortDirection = \"desc\";\r\n } else {\r\n sortDirection = \"asc\";\r\n }\r\n }\r\n customerGroups.sort((a, b) => {\r\n if (sortDirection === \"asc\") {\r\n return a[sortBy] < b[sortBy] ? 1 : -1;\r\n } else {\r\n return a[sortBy] > b[sortBy] ? 1 : -1;\r\n }\r\n });\r\n dispatch({ type: actions.UPDATE_CUSTOMER_GROUPS_SORT, sortBy, sortDirection, customerGroups });\r\n};\r\n\r\nconst getCustomers = options => (dispatch, getState) => {\r\n dispatch({ type: actions.GETTING_CUSTOMERS });\r\n let endpoint = `v2/api/customerInfo?$skip=${options.skip}&$top=${options.top}`;\r\n return data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({ type: actions.GOT_CUSTOMERS, customers: response.data.value, count: response.data.count });\r\n return response.data;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_GET_CUSTOMERS });\r\n handlePromiseError(e, `TODO: ${Resources.FailedGetAccountGroups}`, \"communication templates\");\r\n throw e;\r\n });\r\n};\r\n\r\nconst debouncedCustomersSearchResultsFetch = debounce(\r\n (endpoint, dispatch, searchTerm) =>\r\n data\r\n .get(endpoint)\r\n .then(res =>\r\n dispatch({\r\n type: actions.FETCHED_CUSTOMERS_SEARCH_RESULTS,\r\n searchResults: res.data.value,\r\n searchTerm\r\n })\r\n )\r\n .catch(error => {\r\n dispatch({ type: actions.FETCH_CUSTOMERS_SEARCH_RESULTS_FAILED });\r\n handlePromiseError(error, \"Fetching search results failed.\", \"search results\");\r\n }),\r\n 400\r\n);\r\n\r\nconst fetchCustomersSearchResults = (searchTerm, skip) => (dispatch, getState) => {\r\n if (isEmpty(searchTerm)) {\r\n return dispatch({ type: actions.CLEAR_CUSTOMERS_SEARCH_RESULTS });\r\n }\r\n\r\n let endpoint = `v2/api/customerInfo`;\r\n\r\n endpoint = `${endpoint}?$top=${getState().general.pageRowCount}&$filter=custName%20LIKE%20${encodeURI(searchTerm)}`;\r\n if (!isEmpty(skip)) {\r\n endpoint = `${endpoint}&$skip=${skip}`;\r\n }\r\n\r\n dispatch({ type: actions.FETCHING_CUSTOMERS_SEARCH_RESULTS, searchTerm });\r\n debouncedCustomersSearchResultsFetch(endpoint, dispatch, searchTerm);\r\n};\r\n\r\nconst getCommunicationTemplateDestinations = () => (dispatch, getState) => {\r\n dispatch({ type: actions.GETTING_COMMUNICATION_TEMPLATE_DESTINATIONS });\r\n return data\r\n .get(\"v2/api/sequence/templates/destinations\")\r\n .then(response => {\r\n dispatch({ type: actions.GOT_COMMUNICATION_TEMPLATE_DESTINATIONS, destinations: response.data });\r\n return response.data;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_GET_COMMUNICATION_TEMPLATE_DESTINATIONS });\r\n handlePromiseError(e, `TODO: ${Resources.FailedGetCommunicationTemplateDestinations}`, \"communication templates\");\r\n });\r\n};\r\n\r\nconst getCommunicationTemplateSnippets = () => (dispatch, getState) => {\r\n dispatch({ type: actions.GETTING_COMMUNICATION_TEMPLATE_SNIPPETS });\r\n return data\r\n .get(\"v2/api/sequence/templates/snippets\")\r\n .then(response => {\r\n dispatch({ type: actions.GOT_COMMUNICATION_TEMPLATE_SNIPPETS, snippets: response.data });\r\n return response.data;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_GET_COMMUNICATION_TEMPLATE_SNIPPETS });\r\n handlePromiseError(e, `TODO: ${Resources.FailedGetCommunicationTemplateSnippets}`, \"communication templates\");\r\n });\r\n};\r\n\r\nconst postCommunicationTemplateAttachment = (companyId, emailTemplateKey, file) => (dispatch, getState) => {\r\n let body = new FormData();\r\n body.append(\"file\", file);\r\n return data\r\n .post(`v2/api/sequence/templates/${companyId}/${emailTemplateKey}/attachments`, body, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n })\r\n .then(response => {\r\n return true;\r\n })\r\n .catch(e => {\r\n handlePromiseError(e, \"TODO: Adding the attachment failed. Please try again.\", \"attachment\");\r\n throw e;\r\n });\r\n};\r\n\r\nconst deleteCommunicationTemplateAttachment = (companyId, emailTemplateKey, attachmentName) => (dispatch, getState) => {\r\n return data\r\n .delete(`v2/api/sequence/templates/${companyId}/${emailTemplateKey}/attachments/${attachmentName}`)\r\n .then(response => {\r\n return true;\r\n })\r\n .catch(e => {\r\n handlePromiseError(e, \"TODO: Adding the attachment failed. Please try again.\", \"attachment\");\r\n throw e;\r\n });\r\n};\r\n\r\nconst getCommunicationTemplateAttachment = (companyId, emailTemplateKey, attachmentName) => (dispatch, getState) => {\r\n let state = getState().manage;\r\n if (state.gettingCommunicationTemplateAttachment) {\r\n return false;\r\n }\r\n dispatch({ type: actions.GETTING_COMMUNICATION_TEMPLATE_ATTACHMENT });\r\n return data\r\n .get(`v2/api/sequence/templates/${companyId}/${emailTemplateKey}/attachments/${attachmentName}`)\r\n .then(response => {\r\n dispatch({ type: actions.GOT_COMMUNICATION_TEMPLATE_ATTACHMENT });\r\n saveBlobAsDownload(response.data, attachmentName);\r\n return true;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_GET_COMMUNICATION_TEMPLATE_ATTACHMENT });\r\n handlePromiseError(e, \"TODO: Adding the attachment failed. Please try again.\", \"attachment\");\r\n throw e;\r\n });\r\n};\r\n\r\nconst clearManageIsSetData = nameOfStateVar => dispatch => {\r\n dispatch({ type: actions.CLEAR_MANAGE_IS_SET_DATA, nameOfStateVar });\r\n};\r\n\r\nexport const getEmailConfigTestStatus = (companyId, accountingGroupId) => (dispatch, getState) => {\r\n let state = getState().manage;\r\n return state.accountingGroupEmailConfigTestStatus[accountingGroupId] || \"idle\";\r\n};\r\n\r\nexport const getEmailConfigTest = (companyId, accountingGroupId) => (dispatch, getState) => {\r\n let state = getState().manage;\r\n return state.accountingGroupEmailConfigTestValue[accountingGroupId] || {};\r\n};\r\n\r\nexport const testEmailConfig = (companyId, accountingGroupId) => (dispatch, getState) => {\r\n if (getEmailConfigTestStatus(companyId, accountingGroupId) === \"loading\") {\r\n return false;\r\n }\r\n dispatch({ type: actions.GETTING_EMAIL_CONFIG_TEST, companyId, accountingGroupId });\r\n return data\r\n .get(`v3/api/emailconfig/${companyId}/${accountingGroupId}/status`)\r\n .then(response => {\r\n dispatch({ type: actions.GOT_EMAIL_CONFIG_TEST, companyId, accountingGroupId, emailConfigTest: response.data });\r\n return response.data;\r\n })\r\n .catch(e => {\r\n dispatch({ type: actions.FAILED_GET_EMAIL_CONFIG_TEST, companyId, accountingGroupId });\r\n handlePromiseError(\r\n e,\r\n \"TODO: Testing email config failed. Please refresh the page and then try again. If this error persists, contact us.\",\r\n \"attachment\"\r\n );\r\n throw e;\r\n });\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n createEmailReplyTemplate: (companyId, perspective, payloadObj) => {\r\n return dispatch(createEmailReplyTemplate(companyId, perspective, payloadObj));\r\n },\r\n fetchAllCompanyReplyTemplates: (companyId, perspective) => {\r\n dispatch(fetchAllCompanyReplyTemplates(companyId, perspective));\r\n },\r\n deleteCompanyReplyTemplate: (companyId, perspective, perspectiveEmailTemplateId) => {\r\n return dispatch(deleteCompanyReplyTemplate(companyId, perspective, perspectiveEmailTemplateId));\r\n },\r\n clearAllReplyTemplates: () => {\r\n dispatch({ type: actions.CLEAR_ALL_REPLY_TEMPLATES });\r\n },\r\n\r\n importCompanyAddressBook: (companyId, contactsCSV) => {\r\n return dispatch(importCompanyAddressBook(companyId, contactsCSV));\r\n },\r\n putAddressBookContact: (companyId, contact) => {\r\n return dispatch(putAddressBookContact(companyId, contact));\r\n },\r\n postAddressBookContact: (companyId, addressBookContactId, contact) => {\r\n return dispatch(postAddressBookContact(companyId, addressBookContactId, contact));\r\n },\r\n fetchCompanyAddressBook: (companyId, filter) => {\r\n return dispatch(fetchCompanyAddressBook(companyId, filter));\r\n },\r\n getCompanyAddressBook: companyId => {\r\n return dispatch(getCompanyAddressBook(companyId));\r\n },\r\n deleteCompanyAddressBookContact: (companyId, addressBookContactId) => {\r\n return dispatch(deleteCompanyAddressBookContact(companyId, addressBookContactId));\r\n },\r\n\r\n createCompanyDocument: req => {\r\n return dispatch(createCompanyDocument(req));\r\n },\r\n deleteCompanyDocument: (companyId, perspectiveId, companyDocumentId) => {\r\n dispatch(deleteCompanyDocument(companyId, perspectiveId, companyDocumentId));\r\n },\r\n updateCompanyDocument: req => {\r\n dispatch(updateCompanyDocument(req));\r\n },\r\n updateDocumentMetadata: (companyId, perspectiveId, companyDocumentId, metadata) => {\r\n dispatch(updateDocumentMetadata(companyId, perspectiveId, companyDocumentId, metadata));\r\n },\r\n fetchCompanyDocuments: (companyId, perspectiveId) => {\r\n dispatch(fetchCompanyDocuments(companyId, perspectiveId));\r\n },\r\n getCompanyDocuments: (companyId, perspectiveId) => {\r\n return dispatch(getCompanyDocuments(companyId, perspectiveId));\r\n },\r\n\r\n getAllCompanyReplyTemplates: (companyId, perspective) => {\r\n return dispatch(getAllCompanyReplyTemplates(companyId, perspective));\r\n },\r\n fetchPopulatedTemplate: (companyId, perspective, perspectiveEmailTemplateId, conversationId) => {\r\n return dispatch(fetchPopulatedTemplate(companyId, perspective, perspectiveEmailTemplateId, conversationId));\r\n },\r\n\r\n fetchAllEmailConfigTypes: () => {\r\n dispatch(fetchAllEmailConfigTypes());\r\n },\r\n getAllEmailConfigTypes: () => {\r\n return dispatch(getAllEmailConfigTypes());\r\n },\r\n\r\n fetchCompanyEmailConfigData: companyId => {\r\n dispatch(fetchCompanyEmailConfigData(companyId));\r\n },\r\n getCompanyEmailConfigData: companyId => {\r\n return dispatch(getCompanyEmailConfigData(companyId));\r\n },\r\n\r\n fetchCompanyEmailConfigType: companyId => {\r\n dispatch(fetchCompanyEmailConfigType(companyId));\r\n },\r\n getCompanyEmailConfigType: companyId => {\r\n return dispatch(getCompanyEmailConfigType(companyId));\r\n },\r\n\r\n setCompanyEmailConfig: (companyId, payload) => {\r\n return dispatch(setCompanyEmailConfig(companyId, payload));\r\n },\r\n getCompanyEmailConfigVerification: companyId => {\r\n dispatch(getCompanyEmailConfigVerification(companyId));\r\n },\r\n fetchCompanyWorkflows: companyId => {\r\n return dispatch(fetchCompanyWorkflows(companyId));\r\n },\r\n putCompanyWorkflow: (companyId, perspectiveId, name, description, type, resourceName) => {\r\n return dispatch(putCompanyWorkflow(companyId, perspectiveId, name, description, type, resourceName));\r\n },\r\n deleteCompanyWorkflow: (companyId, ledgerHash) => {\r\n return dispatch(deleteCompanyWorkflow(companyId, ledgerHash));\r\n },\r\n updateCompanyWorkflow: (companyId, ledgerHash, newJson) => {\r\n return dispatch(updateCompanyWorkflow(companyId, ledgerHash, newJson));\r\n },\r\n getCommunicationTemplates: companyId => {\r\n return dispatch(getCommunicationTemplates(companyId));\r\n },\r\n postCommunicationTemplate: (companyId, template, attachmentsToUpload, attachmentsToDelete) => {\r\n return dispatch(postCommunicationTemplate(companyId, template, attachmentsToUpload, attachmentsToDelete));\r\n },\r\n deleteCommunicationTemplate: (companyId, emailTemplateKey) => {\r\n return dispatch(deleteCommunicationTemplate(companyId, emailTemplateKey));\r\n },\r\n getCustomerGroups: companyId => {\r\n return dispatch(getCustomerGroups(companyId));\r\n },\r\n postCustomerGroup: (companyId, customerGroupKey, body) => {\r\n return dispatch(postCustomerGroup(companyId, customerGroupKey, body));\r\n },\r\n deleteCustomerGroup: (companyId, customerGroupKey) => {\r\n return dispatch(deleteCustomerGroup(companyId, customerGroupKey));\r\n },\r\n getCustomerGroupsFilters: companyId => {\r\n return dispatch(getCustomerGroupsFilters(companyId));\r\n },\r\n postCustomerGroupsPreview: (companyId, filters) => {\r\n return dispatch(postCustomerGroupsPreview(companyId, filters));\r\n },\r\n updateCustomerGroupsSort: sortBy => {\r\n return dispatch(updateCustomerGroupsSort(sortBy));\r\n },\r\n getCustomers: options => {\r\n return dispatch(getCustomers(options));\r\n },\r\n fetchCustomersSearchResults: (searchTerm, skip) => {\r\n return dispatch(fetchCustomersSearchResults(searchTerm, skip));\r\n },\r\n displayCustomersSearchResults: () => {\r\n dispatch({ type: actions.DISPLAY_CUSTOMERS_SEARCH_RESULTS });\r\n },\r\n clearCustomersSearchResults: () => {\r\n dispatch({ type: actions.CLEAR_CUSTOMERS_SEARCH_RESULTS });\r\n },\r\n getCommunicationTemplateDestinations: () => {\r\n return dispatch(getCommunicationTemplateDestinations());\r\n },\r\n getCommunicationTemplateSnippets: () => {\r\n return dispatch(getCommunicationTemplateSnippets());\r\n },\r\n postCommunicationTemplateAttachment: (companyId, emailTemplateKey, file) => {\r\n return dispatch(postCommunicationTemplateAttachment(companyId, emailTemplateKey, file));\r\n },\r\n updateCommunicationTemplatesSort(sortBy, sortDirection, sortByType) {\r\n return dispatch({ type: actions.UPDATE_COMMUNICATION_TEMPLATES_SORT, sortBy, sortDirection, sortByType });\r\n },\r\n getCommunicationTemplateAttachment: (companyId, emailTemplateKey, attachmentName) => {\r\n return dispatch(getCommunicationTemplateAttachment(companyId, emailTemplateKey, attachmentName));\r\n },\r\n clearManageIsSetData: nameOfStateVar => {\r\n dispatch(clearManageIsSetData(nameOfStateVar));\r\n },\r\n getEmailConfigTestStatus: (companyId, accountingGroupId) => {\r\n return dispatch(getEmailConfigTestStatus(companyId, accountingGroupId));\r\n },\r\n getEmailConfigTest: (companyId, accountingGroupId) => {\r\n return dispatch(getEmailConfigTest(companyId, accountingGroupId));\r\n },\r\n testEmailConfig: (companyId, accountingGroupId) => {\r\n return dispatch(testEmailConfig(companyId, accountingGroupId));\r\n }\r\n});\r\n","import { actions } from \"./manage-actions\";\r\nimport { sortObjects } from \"../lib/utils\";\r\n\r\nconst defaultManageState = {\r\n companyId: null,\r\n\r\n isGettingAllEmailReplyTemplates: false,\r\n allCompanyReplyTemplates: {},\r\n allCompanyReplyTemplatesIsFetched: {},\r\n\r\n isCreatingEmailReplyTemplate: false,\r\n\r\n isCreatingCompanyDocument: false,\r\n isFetchingCompanyDocuments: false,\r\n fetchingCompanyDocumentsFailed: {},\r\n companyDocuments: {},\r\n\r\n isGettingAllEmailConfigTypes: false,\r\n allEmailConfigTypes: [],\r\n\r\n isImportingCompanyAddressBook: false,\r\n importingCompanyAddressBookFailed: null,\r\n\r\n puttingAddressBookContact: false,\r\n putAddressBookContact: false,\r\n failedPutAddressBookContact: false,\r\n\r\n postingAddressBookContact: false,\r\n postedAddressBookContact: false,\r\n failedPostAddressBookContact: false,\r\n\r\n companyAddressBook: [],\r\n isFetchingCompanyAddressBook: false,\r\n fetchingCompanyAddressBookFailed: null,\r\n\r\n deletingCompanyAddressBookContact: false,\r\n deletedCompanyAddressBookContact: false,\r\n failedDeletingCompanyAddressBookContact: false,\r\n\r\n isSettingCompanyEmailConfigData: false,\r\n newCompanyEmailConfigDataIsSet: false,\r\n\r\n isGettingCompanyConfigData: false,\r\n companiesEmailConfigData: {},\r\n\r\n isGettingCompanyEmailConfigType: false,\r\n companiesEmailConfigType: {},\r\n\r\n isCurrentEmailConfigVerified: null,\r\n isGettingCurrentEmailConfigVerification: false,\r\n\r\n gettingWorkflows: false,\r\n gotWorkflows: false,\r\n failedToGetWorkflows: false,\r\n\r\n puttingWorkflow: false,\r\n putWorkflow: false,\r\n failedToPutWorkflow: false,\r\n\r\n deletingWorkflow: false,\r\n deletedWorkflow: false,\r\n failedToDeleteWorkflow: false,\r\n\r\n updatingWorkflow: false,\r\n updatedWorkflow: false,\r\n failedToUpdateWorkflow: false,\r\n\r\n workflows: {},\r\n\r\n gettingCommunicationTemplates: false,\r\n gotCommunicationTemplates: false,\r\n failedGetCommunicationTemplates: false,\r\n communicationTemplates: [],\r\n communicationTemplateTypeToTemplate: {\r\n email: [],\r\n voice: [],\r\n text: []\r\n },\r\n\r\n communicationTemplatesSortDirection: \"desc\",\r\n communicationTemplatesSortBy: \"emailTemplateID\",\r\n\r\n postingCommunicationTemplate: false,\r\n postedCommunicationTemplate: false,\r\n failedPostCommunicationTemplate: false,\r\n\r\n deletingCommunicationTemplate: false,\r\n deletedCommunicationTemplate: false,\r\n failedDeleteCommunicationTemplate: false,\r\n\r\n gettingCustomerGroups: false,\r\n gotCustomerGroups: false,\r\n failedGetCustomerGroups: false,\r\n customerGroups: [],\r\n customerGroupsSortBy: \"customerGroupId\",\r\n customerGroupsSortDirection: \"asc\",\r\n\r\n postingCustomerGroup: false,\r\n postedCustomerGroup: false,\r\n failedPostCustomerGroup: false,\r\n\r\n deletingCustomerGroup: false,\r\n deletedCustomerGroup: false,\r\n failedDeleteCustomerGroup: false,\r\n\r\n gettingCustomerGroupsFilters: false,\r\n gotCustomerGroupsFilters: false,\r\n failedGetCustomerGroupsFilters: false,\r\n customerGroupsFilters: [],\r\n\r\n postingCustomerGroupsPreview: false,\r\n postedCustomerGroupsPreview: false,\r\n failedPostCustomerGroupsPreview: false,\r\n customerGroupPreview: {},\r\n\r\n gettingCustomers: false,\r\n gotCustomers: false,\r\n failedGetCustomers: false,\r\n customers: {\r\n value: [],\r\n count: 0\r\n },\r\n\r\n customersSearchTerm: \"\",\r\n customersSearchResults: [],\r\n displayCustomersSearchResults: false,\r\n fetchingCustomersSearchResults: false,\r\n fetchedCustomersSearchResults: false,\r\n failedFetchCustomersSearchResults: false,\r\n\r\n gettingCommunicationTemplateDestinations: false,\r\n gotCommunicationTemplateDestinations: false,\r\n failedGetCommunicationTemplateDestinations: false,\r\n communicationTemplateDestinations: {\r\n email: [],\r\n voice: [],\r\n text: []\r\n },\r\n\r\n gettingCommunicationTemplateSnippets: false,\r\n gotCommunicationTemplateSnippets: false,\r\n failedGetCommunicationTemplateSnippets: false,\r\n communicationTemplateSnippets: {\r\n email: [],\r\n voice: [],\r\n text: []\r\n },\r\n\r\n gettingCommunicationTemplateAttachment: false,\r\n gotCommunicationTemplateAttachment: false,\r\n failedGetCommunicationTemplateAttachment: false,\r\n\r\n accountingGroupEmailConfigTestValue: {},\r\n //status: 'idle' | 'fetching' | 'succeeded' | 'failed',\r\n accountingGroupEmailConfigTestStatus: {}\r\n};\r\n\r\nconst manageReducer = (state = defaultManageState, action) => {\r\n switch (action.type) {\r\n case actions.CREATING_EMAIL_REPLY_TEMPLATE:\r\n return { ...state, isCreatingEmailReplyTemplate: true };\r\n case actions.CREATED_EMAIL_REPLY_TEMPLATE:\r\n return { ...state, isCreatingEmailReplyTemplate: false };\r\n case actions.CREATE_EMAIL_REPLY_TEMPLATE_FAILED:\r\n return { ...state, isCreatingEmailReplyTemplate: false };\r\n\r\n case actions.GETTING_ALL_EMAIL_REPLY_TEMPLATES:\r\n return { ...state, isGettingAllEmailReplyTemplates: true };\r\n case actions.GOT_ALL_EMAIL_REPLY_TEMPLATES:\r\n return {\r\n ...state,\r\n isGettingAllEmailReplyTemplates: false,\r\n allCompanyReplyTemplatesIsFetched: {\r\n ...state.allCompanyReplyTemplatesIsFetched,\r\n [action.perspective]: true\r\n },\r\n allCompanyReplyTemplates: {\r\n ...state.allCompanyReplyTemplates,\r\n [action.perspective]: action.companyReplyTemplates\r\n }\r\n };\r\n case actions.GET_ALL_COMPANY_EMAIL_REPLY_TEMPLATES_FAILED:\r\n return {\r\n ...state,\r\n isGettingAllEmailReplyTemplates: false,\r\n allCompanyReplyTemplatesIsFetched: {\r\n ...state.allCompanyReplyTemplatesIsFetched,\r\n [action.perspective]: true\r\n }\r\n };\r\n case actions.CLEAR_ALL_REPLY_TEMPLATES:\r\n return {\r\n ...state,\r\n allCompanyReplyTemplates: defaultManageState.allCompanyReplyTemplates,\r\n allCompanyReplyTemplatesIsFetched: defaultManageState.allCompanyReplyTemplatesIsFetched\r\n };\r\n case actions.GETTING_ALL_EMAIL_CONFIG_TYPES:\r\n return { ...state, isGettingAllEmailConfigTypes: true };\r\n case actions.GOT_ALL_EMAIL_CONFIG_TYPES:\r\n return {\r\n ...state,\r\n isGettingAllEmailConfigTypes: false,\r\n allEmailConfigTypes: action.allEmailConfigTypes\r\n };\r\n\r\n case actions.IMPORTING_COMPANY_ADDRESS_BOOK:\r\n return { ...state, isImportingCompanyAddressBook: true };\r\n\r\n case actions.IMPORTED_COMPANY_ADDRESS_BOOK:\r\n return { ...state, importingCompanyAddressBookFailed: false, isImportingCompanyAddressBook: false };\r\n case actions.IMPORT_COMPANY_ADDRESS_BOOK_FAILED:\r\n return { ...state, importingCompanyAddressBookFailed: true, isImportingCompanyAddressBook: false };\r\n\r\n case actions.PUTTING_COMPANY_ADDRESS_BOOK:\r\n return {\r\n ...state,\r\n puttingAddressBookContact: true,\r\n putAddressBookContact: false,\r\n failedPutAddressBookContact: false\r\n };\r\n case actions.PUT_COMPANY_ADDRESS_BOOK:\r\n return {\r\n ...state,\r\n puttingAddressBookContact: false,\r\n putAddressBookContact: true,\r\n failedPutAddressBookContact: false\r\n };\r\n case actions.FAILED_PUT_COMPANY_ADDRESS_BOOK:\r\n return {\r\n ...state,\r\n puttingAddressBookContact: false,\r\n putAddressBookContact: false,\r\n failedPutAddressBookContact: true\r\n };\r\n\r\n case actions.POSTING_COMPANY_ADDRESS_BOOK:\r\n return {\r\n ...state,\r\n postingAddressBookContact: true,\r\n postedAddressBookContact: false,\r\n failedPostAddressBookContact: false\r\n };\r\n\r\n case actions.POST_COMPANY_ADDRESS_BOOK:\r\n return {\r\n ...state,\r\n postingAddressBookContact: false,\r\n postedAddressBookContact: true,\r\n failedPostAddressBookContact: false\r\n };\r\n\r\n case actions.FAILED_POST_COMPANY_ADDRESS_BOOK:\r\n return {\r\n ...state,\r\n postingAddressBookContact: false,\r\n postedAddressBookContact: false,\r\n failedPostAddressBookContact: true\r\n };\r\n\r\n case actions.FETCHING_COMPANY_ADDRESS_BOOK:\r\n return { ...state, isFetchingCompanyAddressBook: true };\r\n case actions.FETCHED_COMPANY_ADDRESS_BOOK:\r\n return {\r\n ...state,\r\n isFetchingCompanyAddressBook: false,\r\n fetchingCompanyAddressBookFailed: false,\r\n companyAddressBook: action.addresses\r\n };\r\n case actions.FETCH_COMPANY_ADDRESS_BOOK_FAILED:\r\n return {\r\n ...state,\r\n isFetchingCompanyAddressBook: false,\r\n fetchingCompanyAddressBookFailed: true\r\n };\r\n\r\n case actions.DELETING_COMPANY_ADDRESS_BOOK_CONTACT:\r\n return {\r\n ...state,\r\n deletingCompanyAddressBookContact: true,\r\n deletedCompanyAddressBookContact: false,\r\n failedDeletingCompanyAddressBookContact: false\r\n };\r\n case actions.DELETED_COMPANY_ADDRESS_BOOK_CONTACT:\r\n return {\r\n ...state,\r\n deletingCompanyAddressBookContact: false,\r\n deletedCompanyAddressBookContact: true,\r\n failedDeletingCompanyAddressBookContact: false,\r\n companyAddressBook: action.addresses\r\n };\r\n case actions.DELETE_COMPANY_ADDRESS_BOOK_CONTACT_FAILED:\r\n return {\r\n ...state,\r\n deletingCompanyAddressBookContact: false,\r\n deletedCompanyAddressBookContact: false,\r\n failedDeletingCompanyAddressBookContact: true\r\n };\r\n\r\n case actions.FETCHING_COMPANY_DOCUMENTS:\r\n return { ...state, isFetchingCompanyDocuments: true };\r\n case actions.FETCHED_COMPANY_DOCUMENTS:\r\n return {\r\n ...state,\r\n isFetchingCompanyDocuments: false,\r\n fetchingCompanyDocumentsFailed: {\r\n ...state.fetchingCompanyDocumentsFailed,\r\n [action.perspectiveId]: false\r\n },\r\n companyDocuments: {\r\n ...state.companyDocuments,\r\n [action.perspectiveId]: action.companyDocuments\r\n }\r\n };\r\n case actions.FETCH_COMPANY_DOCUMENTS_FAILED:\r\n return {\r\n ...state,\r\n isFetchingCompanyDocuments: false,\r\n fetchingCompanyDocumentsFailed: {\r\n ...state.fetchingCompanyDocumentsFailed,\r\n [action.perspectiveId]: true\r\n },\r\n companyDocuments: {\r\n ...state.companyDocuments,\r\n [action.perspectiveId]: action.companyDocuments\r\n }\r\n };\r\n\r\n case actions.CREATING_COMPANY_DOCUMENT:\r\n return { ...state, isCreatingCompanyDocument: true };\r\n case actions.CREATED_COMPANY_DOCUMENT:\r\n return { ...state, isCreatingCompanyDocument: false };\r\n case actions.CREATE_COMPANY_DOCUMENT_FAILED:\r\n return { ...state, isCreatingCompanyDocument: false };\r\n\r\n case actions.GET_ALL_EMAIL_CONFIG_TYPES_FAILED:\r\n return { ...state, isGettingAllEmailConfigTypes: false };\r\n case actions.SETTING_COMPANY_EMAIL_CONFIG:\r\n return { ...state, isSettingCompanyEmailConfigData: true };\r\n case actions.SET_COMPANY_EMAIL_CONFIG:\r\n return {\r\n ...state,\r\n isSettingCompanyEmailConfigData: false,\r\n newCompanyEmailConfigDataIsSet: true\r\n };\r\n case actions.SET_COMPANY_EMAIL_CONFIG_FAILED:\r\n return { ...state, isSettingCompanyEmailConfigData: false };\r\n\r\n case actions.GETTING_COMPANY_EMAIL_CONFIG:\r\n return { ...state, isGettingCompanyConfigData: true };\r\n case actions.GOT_COMPANY_EMAIL_CONFIG:\r\n return {\r\n ...state,\r\n companiesEmailConfigData: {\r\n ...state.companiesEmailConfigData,\r\n ...action.companyCurrentConfig\r\n },\r\n isGettingCompanyConfigData: false\r\n };\r\n case actions.GET_COMPANY_EMAIL_CONFIG_FAILED:\r\n return { ...state, isGettingCompanyConfigData: false };\r\n\r\n case actions.GETTING_COMPANY_EMAIL_CONFIG_TYPE:\r\n return { ...state, isGettingCompanyEmailConfigType: true };\r\n case actions.GOT_COMPANY_EMAIL_CONFIG_TYPE:\r\n return {\r\n ...state,\r\n isGettingCompanyEmailConfigType: false,\r\n companiesEmailConfigType: {\r\n ...state.companiesEmailConfigType,\r\n ...action.companyEmailConfigType\r\n }\r\n };\r\n case actions.GET_COMPANY_EMAIL_CONFIG_TYPE_FAILED:\r\n return { ...state, isGettingCompanyEmailConfigType: false };\r\n\r\n case actions.GETTING_COMPANY_EMAIL_CONFIG_VERIFICATION:\r\n return { ...state, isGettingCurrentEmailConfigVerification: true };\r\n case actions.GOT_COMPANY_EMAIL_CONFIG_VERIFICATION:\r\n return {\r\n ...state,\r\n isGettingCurrentEmailConfigVerification: false,\r\n isCurrentEmailConfigVerified: action.isCurrentEmailConfigVerified\r\n };\r\n case actions.GET_COMPANY_EMAIL_CONFIG_VERIFICATION_FAILED:\r\n return { ...state, isGettingCurrentEmailConfigVerification: false };\r\n\r\n case actions.GETTING_COMPANY_WORKFLOWS:\r\n return {\r\n ...state,\r\n gettingWorkflows: true,\r\n failedToGetWorkflows: false,\r\n gotWorkflows: false,\r\n companyId: action.companyId,\r\n workflows: {}\r\n };\r\n case actions.FAILED_GET_COMPANY_WORKFLOWS:\r\n return { ...state, gettingWorkflows: false, failedToGetWorkflows: true, gotWorkflows: false };\r\n case actions.GOT_COMPANY_WORKFLOWS:\r\n if (state.companyId !== action.companyId) {\r\n return state;\r\n }\r\n let workflows = { ...state.workflows };\r\n action.workflows.forEach(workflow => {\r\n let asJson = workflow.asJson;\r\n workflows[asJson.perspectiveId] = (workflows[asJson.perspectiveId] || []).concat(workflow);\r\n });\r\n return {\r\n ...state,\r\n gettingWorkflows: false,\r\n failedToGetWorkflows: false,\r\n gotWorkflows: true,\r\n workflows\r\n };\r\n\r\n case actions.PUTTING_COMPANY_WORKFLOW:\r\n return { ...state, puttingWorkflow: true, putWorkflow: false, failedToPutWorkflow: false };\r\n case actions.PUT_COMPANY_WORKFLOW:\r\n return { ...state, puttingWorkflow: false, putWorkflow: true, failedToPutWorkflow: false };\r\n case actions.FAILED_PUT_COMPANY_WORKFLOW:\r\n return { ...state, puttingWorkflow: false, putWorkflow: false, failedToPutWorkflow: true };\r\n\r\n case actions.DELETING_COMPANY_WORKFLOW:\r\n return { ...state, deletingWorkflow: true, deletedWorkflow: false, failedToDeleteWorkflow: false };\r\n case actions.DELETED_COMPANY_WORKFLOW:\r\n return { ...state, deletingWorkflow: false, deletedWorkflow: true, failedToDeleteWorkflow: false };\r\n case actions.FAILED_DELETE_COMPANY_WORKFLOW:\r\n return { ...state, deletingWorkflow: false, deletedWorkflow: false, failedToDeleteWorkflow: true };\r\n\r\n case actions.UPDATING_COMPANY_WORKFLOW:\r\n return { ...state, updatingWorkflow: true, updatedWorkflow: false, failedToUpdateWorkflow: false };\r\n case actions.UPDATED_COMPANY_WORKFLOW:\r\n return { ...state, updatingWorkflow: false, updatedWorkflow: true, failedToUpdateWorkflow: false };\r\n case actions.FAILED_UPDATE_COMPANY_WORKFLOW:\r\n return { ...state, updatingWorkflow: false, updatedWorkflow: false, failedToUpdateWorkflow: true };\r\n\r\n case actions.GETTING_COMMUNICATION_TEMPLATES:\r\n return {\r\n ...state,\r\n gettingCommunicationTemplates: true,\r\n gotCommunicationTemplates: false,\r\n failedGetCommunicationTemplates: false\r\n };\r\n case actions.GOT_COMMUNICATION_TEMPLATES:\r\n let emailTemplates = [];\r\n let phoneTemplates = [];\r\n let textTemplates = [];\r\n\r\n action.communicationTemplates.forEach(template => {\r\n if (template.emailTemplateStatus) {\r\n emailTemplates.push(template);\r\n }\r\n if (template.voiceMessageStatus) {\r\n phoneTemplates.push(template);\r\n }\r\n if (template.smsStatus) {\r\n textTemplates.push(template);\r\n }\r\n });\r\n\r\n return {\r\n ...state,\r\n gettingCommunicationTemplates: false,\r\n gotCommunicationTemplates: true,\r\n failedGetCommunicationTemplates: false,\r\n communicationTemplates: sortObjects(\r\n action.communicationTemplates,\r\n state.communicationTemplatesSortBy,\r\n state.communicationTemplatesSortDirection\r\n ),\r\n communicationTemplateTypeToTemplate: {\r\n email: emailTemplates,\r\n voice: phoneTemplates,\r\n text: textTemplates\r\n }\r\n };\r\n case actions.FAILED_GET_COMMUNICATION_TEMPLATES:\r\n return {\r\n ...state,\r\n gettingCommunicationTemplates: false,\r\n gotCommunicationTemplates: false,\r\n failedGetCommunicationTemplates: true\r\n };\r\n case actions.POSTING_COMMUNICATION_TEMPLATE:\r\n return {\r\n ...state,\r\n postingCommunicationTemplate: true,\r\n postedCommunicationTemplate: false,\r\n failedPostCommunicationTemplate: false\r\n };\r\n case actions.POSTED_COMMUNICATION_TEMPLATE:\r\n return {\r\n ...state,\r\n postingCommunicationTemplate: false,\r\n postedCommunicationTemplate: true,\r\n failedPostCommunicationTemplate: false,\r\n communicationTemplates: []\r\n };\r\n case actions.FAILED_POST_COMMUNICATION_TEMPLATE:\r\n return {\r\n ...state,\r\n postingCommunicationTemplate: false,\r\n postedCommunicationTemplate: false,\r\n failedPostCommunicationTemplate: true,\r\n communicationTemplates: []\r\n };\r\n case actions.DELETING_COMMUNICATION_TEMPLATE:\r\n return {\r\n ...state,\r\n deletingCommunicationTemplate: true,\r\n deletedCommunicationTemplate: false,\r\n failedDeleteCommunicationTemplate: false\r\n };\r\n case actions.DELETED_COMMUNICATION_TEMPLATE:\r\n return {\r\n ...state,\r\n deletingCommunicationTemplate: false,\r\n deletedCommunicationTemplate: true,\r\n failedDeleteCommunicationTemplate: false\r\n };\r\n case actions.FAILED_DELETE_COMMUNICATION_TEMPLATE:\r\n return {\r\n ...state,\r\n deletingCommunicationTemplate: false,\r\n deletedCommunicationTemplate: false,\r\n failedDeleteCommunicationTemplate: true\r\n };\r\n\r\n case actions.GETTING_CUSTOMER_GROUPS:\r\n return {\r\n ...state,\r\n gettingCustomerGroups: true,\r\n gotCustomerGroups: false,\r\n failedGetCustomerGroups: false,\r\n customerGroups: []\r\n };\r\n case actions.GOT_CUSTOMER_GROUPS:\r\n return {\r\n ...state,\r\n gettingCustomerGroups: false,\r\n gotCustomerGroups: true,\r\n failedGetCustomerGroups: false,\r\n customerGroups: [...action.customerGroups]\r\n };\r\n case actions.FAILED_GET_CUSTOMER_GROUPS:\r\n return {\r\n ...state,\r\n gettingCustomerGroups: false,\r\n gotCustomerGroups: false,\r\n failedGetCustomerGroups: true\r\n };\r\n\r\n case actions.POSTING_CUSTOMER_GROUP:\r\n return { ...state, postingCustomerGroup: true, postedCustomerGroup: false, failedPostCustomerGroup: false };\r\n case actions.POSTED_CUSTOMER_GROUP:\r\n return { ...state, postingCustomerGroup: false, postedCustomerGroup: true, failedPostCustomerGroup: false };\r\n case actions.FAILED_POST_CUSTOMER_GROUP:\r\n return { ...state, postingCustomerGroup: false, postedCustomerGroup: false, failedPostCustomerGroup: true };\r\n\r\n case actions.DELETING_CUSTOMER_GROUP:\r\n return { ...state, deletingCustomerGroup: true, deletedCustomerGroup: false, failedDeleteCustomerGroup: false };\r\n case actions.DELETED_CUSTOMER_GROUP:\r\n return { ...state, deletingCustomerGroup: false, deletedCustomerGroup: true, failedDeleteCustomerGroup: false };\r\n case actions.FAILED_DELETE_CUSTOMER_GROUP:\r\n return { ...state, deletingCustomerGroup: false, deletedCustomerGroup: false, failedDeleteCustomerGroup: true };\r\n\r\n case actions.GETTING_CUSTOMER_GROUPS_FILTERS:\r\n return {\r\n ...state,\r\n gettingCustomerGroupsFilters: true,\r\n gotCustomerGroupsFilters: false,\r\n failedGetCustomerGroupsFilters: false\r\n };\r\n case actions.GOT_CUSTOMER_GROUPS_FILTERS:\r\n return {\r\n ...state,\r\n gettingCustomerGroupsFilters: false,\r\n gotCustomerGroupsFilters: true,\r\n failedGetCustomerGroupsFilters: false,\r\n customerGroupsFilters: [...action.filters]\r\n };\r\n case actions.FAILED_GET_CUSTOMER_GROUPS_FILTERS:\r\n return {\r\n ...state,\r\n gettingCustomerGroupsFilters: false,\r\n gotCustomerGroupsFilters: false,\r\n failedGetCustomerGroupsFilters: true,\r\n customerGroupsFilters: []\r\n };\r\n\r\n case actions.POSTING_CUSTOMER_GROUPS_PREVIEW:\r\n return {\r\n ...state,\r\n postingCustomerGroupsPreview: true,\r\n postedCustomerGroupsPreview: false,\r\n failedPostCustomerGroupsPreview: false,\r\n customerGroupPreview: {}\r\n };\r\n case actions.POSTED_CUSTOMER_GROUPS_PREVIEW:\r\n return {\r\n ...state,\r\n postingCustomerGroupsPreview: false,\r\n postedCustomerGroupsPreview: true,\r\n failedPostCustomerGroupsPreview: false,\r\n customerGroupPreview: action.customerGroupPreview\r\n };\r\n case actions.FAILED_POST_CUSTOMER_GROUPS_PREVIEW:\r\n return {\r\n ...state,\r\n postingCustomerGroupsPreview: false,\r\n postedCustomerGroupsPreview: false,\r\n failedPostCustomerGroupsPreview: true\r\n };\r\n\r\n case actions.GETTING_CUSTOMERS:\r\n return {\r\n ...state,\r\n gettingCustomers: true,\r\n gotCustomers: false,\r\n failedGetCustomers: false,\r\n customers: { value: [], count: 0 }\r\n };\r\n case actions.GOT_CUSTOMERS:\r\n return {\r\n ...state,\r\n gettingCustomers: false,\r\n gotCustomers: true,\r\n failedGetCustomers: false,\r\n customers: { value: [...action.customers], count: action.count }\r\n };\r\n case actions.FAILED_GET_CUSTOMERS:\r\n return {\r\n ...state,\r\n gettingCustomers: false,\r\n gotCustomers: false,\r\n failedGetCustomers: true\r\n };\r\n\r\n case actions.UPDATE_CUSTOMER_GROUPS_SORT:\r\n return {\r\n ...state,\r\n customerGroups: [...action.customerGroups],\r\n customerGroupsSortBy: action.sortBy,\r\n customerGroupsSortDirection: action.sortDirection\r\n };\r\n\r\n case actions.CLEAR_CUSTOMERS_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n customersSearchTerm: \"\",\r\n customersSearchResults: [],\r\n displayCustomersSearchResults: false,\r\n fetchingCustomersSearchResults: false,\r\n fetchedCustomersSearchResults: false,\r\n failedFetchCustomersSearchResults: false\r\n };\r\n case actions.DISPLAY_CUSTOMERS_SEARCH_RESULTS:\r\n return { ...state, displayCustomersSearchResults: true };\r\n case actions.FETCHING_CUSTOMERS_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n customersSearchTerm: action.searchTerm,\r\n fetchingCustomersSearchResults: true,\r\n fetchedCustomersSearchResults: false,\r\n failedFetchCustomersSearchResults: false\r\n };\r\n case actions.FETCHED_CUSTOMERS_SEARCH_RESULTS:\r\n if (state.customersSearchTerm !== action.searchTerm) {\r\n return { ...state };\r\n }\r\n return {\r\n ...state,\r\n customersSearchTerm: action.searchTerm,\r\n customersSearchResults: action.searchResults,\r\n fetchingCustomersSearchResults: false,\r\n fetchedCustomersSearchResults: true,\r\n failedFetchCustomersSearchResults: false\r\n };\r\n case actions.FETCH_CUSTOMERS_SEARCH_RESULTS_FAILED:\r\n return {\r\n ...state,\r\n fetchingCustomersSearchResults: false,\r\n fetchedCustomersSearchResults: false,\r\n failedFetchCustomersSearchResults: true\r\n };\r\n\r\n case actions.GETTING_COMMUNICATION_TEMPLATE_DESTINATIONS:\r\n return {\r\n ...state,\r\n gettingCommunicationTemplateDestinations: true,\r\n gotCommunicationTemplateDestinations: false,\r\n failedGetCommunicationTemplateDestinations: false\r\n };\r\n case actions.GOT_COMMUNICATION_TEMPLATE_DESTINATIONS:\r\n let newDestinations = {};\r\n action.destinations.forEach(destination => {\r\n newDestinations[destination.templateType] !== undefined\r\n ? newDestinations[destination.templateType].push(destination)\r\n : (newDestinations[destination.templateType] = [destination]);\r\n });\r\n return {\r\n ...state,\r\n gettingCommunicationTemplateDestinations: false,\r\n gotCommunicationTemplateDestinations: true,\r\n failedGetCommunicationTemplateDestinations: false,\r\n communicationTemplateDestinations: newDestinations\r\n };\r\n case actions.FAILED_GET_COMMUNICATION_TEMPLATE_DESTINATIONS:\r\n return {\r\n ...state,\r\n gettingCommunicationTemplateDestinations: false,\r\n gotCommunicationTemplateDestinations: false,\r\n failedGetCommunicationTemplateDestinations: true\r\n };\r\n\r\n case actions.GETTING_COMMUNICATION_TEMPLATE_SNIPPETS:\r\n return {\r\n ...state,\r\n gettingCommunicationTemplateSnippets: true,\r\n gotCommunicationTemplates: false,\r\n failedGetCommunicationTemplates: false\r\n };\r\n case actions.GOT_COMMUNICATION_TEMPLATE_SNIPPETS:\r\n let newSnippets = {};\r\n action.snippets.forEach(snippet => {\r\n newSnippets[snippet.templateType] !== undefined\r\n ? newSnippets[snippet.templateType].push(snippet)\r\n : (newSnippets[snippet.templateType] = [snippet]);\r\n });\r\n return {\r\n ...state,\r\n gettingCommunicationTemplateSnippets: false,\r\n gotCommunicationTemplates: true,\r\n failedGetCommunicationTemplates: false,\r\n communicationTemplateSnippets: newSnippets\r\n };\r\n case actions.FAILED_GET_COMMUNICATION_TEMPLATE_SNIPPETS:\r\n return {\r\n ...state,\r\n gettingCommunicationTemplateSnippets: false,\r\n gotCommunicationTemplateSnippets: false,\r\n failedGetCommunicationTemplateSnippets: true\r\n };\r\n case actions.UPDATE_COMMUNICATION_TEMPLATES_SORT:\r\n return {\r\n ...state,\r\n communicationTemplates: sortObjects(state.communicationTemplates, action.sortBy, action.sortDirection),\r\n communicationTemplatesSortBy: action.sortBy,\r\n communicationTemplatesSortDirection: action.sortDirection,\r\n sortByType: action.sortByType\r\n };\r\n\r\n case actions.GETTING_COMMUNICATION_TEMPLATE_ATTACHMENT:\r\n return {\r\n ...state,\r\n gettingCommunicationTemplateAttachment: true,\r\n gotCommunicationTemplateAttachment: false,\r\n failedGetCommunicationTemplateAttachment: false\r\n };\r\n case actions.GOT_COMMUNICATION_TEMPLATE_ATTACHMENT:\r\n return {\r\n ...state,\r\n gettingCommunicationTemplateAttachment: false,\r\n gotCommunicationTemplateAttachment: true,\r\n failedGetCommunicationTemplateAttachment: false\r\n };\r\n case actions.FAILED_GET_COMMUNICATION_TEMPLATE_ATTACHMENT:\r\n return {\r\n ...state,\r\n gettingCommunicationTemplateAttachment: false,\r\n gotCommunicationTemplateAttachment: false,\r\n failedGetCommunicationTemplateAttachment: true\r\n };\r\n case actions.GETTING_EMAIL_CONFIG_TEST:\r\n return {\r\n ...state,\r\n accountingGroupEmailConfigTestStatus: {\r\n ...state.accountingGroupEmailConfigTestStatus,\r\n [action.accountingGroupId]: \"loading\"\r\n }\r\n };\r\n case actions.GOT_EMAIL_CONFIG_TEST:\r\n return {\r\n ...state,\r\n accountingGroupEmailConfigTestStatus: {\r\n ...state.accountingGroupEmailConfigTestStatus,\r\n [action.accountingGroupId]: \"succeeded\"\r\n },\r\n accountingGroupEmailConfigTestValue: {\r\n ...state.accountingGroupEmailConfigTestValue,\r\n [action.accountingGroupId]: action.emailConfigTest\r\n }\r\n };\r\n case actions.FAILED_GET_EMAIL_CONFIG_TEST:\r\n return {\r\n ...state,\r\n accountingGroupEmailConfigTestStatus: {\r\n ...state.accountingGroupEmailConfigTestStatus,\r\n [action.accountingGroupId]: \"failed\"\r\n }\r\n };\r\n\r\n case actions.CLEAR_MANAGE_IS_SET_DATA:\r\n return { ...state, [action.nameOfStateVar]: false };\r\n\r\n case actions.SELECT_COMPANY:\r\n return { ...defaultManageState, companyId: action.companyId };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default manageReducer;\r\n","import data from \"../lib/data\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\n\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n INVITING_COMPANY_USER: \"GETTING_CONVERSATION_COMPANIES\",\r\n INVITED_COMPANY_USER: \"INVITED_COMPANY_USER\",\r\n INVITE_COMPANY_USER_FAILED: \"INVITE_COMPANY_USER_FAILED\",\r\n RESET_INVITE_COMPANY_USER: \"RESET_INVITE_COMPANY_USER\",\r\n\r\n FETCHING_COMPANY_USER_INVITES: \"FETCHING_COMPANY_USER_INVITES\",\r\n FETCHED_COMPANY_USER_INVITES: \"FETCHED_COMPANY_USER_INVITES\",\r\n FETCH_COMPANY_USER_INVITES_FAILED: \"FETCH_COMPANY_USER_INVITES_FAILED\",\r\n\r\n RESEND_COMPANY_USER_INVITE: \"RESEND_COMPANY_USER_INVITE\",\r\n RESENT_COMPANY_USER_INVITE: \"RESENT_COMPANY_USER_INVITE\",\r\n RESEND_COMPANY_USER_INVITE_FAILED: \"RESEND_COMPANY_USER_INVITE_FAILED\",\r\n\r\n ACCEPTING_COMPANY_INVITE: \"ACCEPTING_COMPANY_INVITE\",\r\n ACCEPTED_COMPANY_INVITE: \"ACCEPTED_COMPANY_INVITE\",\r\n ACCEPT_COMPANY_INVITE_FAILED: \"ACCEPT_COMPANY_INVITE_FAILED\",\r\n\r\n REJECTING_COMPANY_INVITE: \"REJECTING_COMPANY_INVITE\",\r\n REJECTED_COMPANY_INVITE: \"REJECTED_COMPANY_INVITE\",\r\n REJECT_COMPANY_INVITE_FAILED: \"REJECT_COMPANY_INVITE_FAILED\"\r\n }\r\n};\r\n\r\nexport const inviteCompanyUser = (companyId, fullName, email, defaultPerspective, customMessage) => (\r\n dispatch,\r\n getState\r\n) => {\r\n dispatch({ type: actions.INVITING_COMPANY_USER });\r\n data\r\n .put(`v1/api/invite/user/to/${companyId}`, {\r\n fullName,\r\n email,\r\n defaultPerspective,\r\n customMessage\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.INVITED_COMPANY_USER });\r\n dispatch(fetchCompanyUserInvites(companyId));\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.INVITE_COMPANY_USER_FAILED });\r\n handlePromiseError(rejection, \"TODO: The request inviting a user to join the company failed. Please try again.\");\r\n });\r\n};\r\n\r\nconst fetchCompanyUserInvites = companyId => (dispatch, getState) => {\r\n dispatch({ type: actions.FETCHING_COMPANY_USER_INVITES, companyId });\r\n data\r\n .get(`v1/api/invite/user/to/${companyId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_COMPANY_USER_INVITES,\r\n companyId,\r\n invites: response.data\r\n });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FETCH_COMPANY_USER_INVITES_FAILED, companyId });\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: The request getting the list of outstanding company invites failed. Please try again.\",\r\n \"pending company invites\"\r\n );\r\n });\r\n};\r\n\r\nconst resendCompanyUserInvite = (companyId, inviteId) => dispatch => {\r\n dispatch({ type: actions.RESEND_COMPANY_USER_INVITE, inviteId });\r\n data\r\n .post(`v1/api/invite/user/${inviteId}/resend`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.RESENT_COMPANY_USER_INVITE,\r\n invite: response.data,\r\n inviteId\r\n });\r\n dispatch(fetchCompanyUserInvites(companyId));\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.RESEND_COMPANY_USER_INVITE_FAILED, inviteId });\r\n handlePromiseError(response, \"TODO: Resend of the invite failed. Please try again.\", \"invitation\");\r\n });\r\n};\r\n\r\nconst revokeCompanyUserInvite = (companyId, inviteId) => dispatch => {\r\n dispatch(rejectCompanyInvite(companyId, inviteId))\r\n .then(response => {\r\n dispatch(fetchCompanyUserInvites(companyId));\r\n })\r\n .catch(rejection => {\r\n dispatch(fetchCompanyUserInvites(companyId));\r\n handlePromiseError(rejection, \"TODO: Revoking the invite failed. Please try again.\", \"invitation\");\r\n });\r\n};\r\n\r\nconst acceptCompanyInvite = (companyId, inviteId) => (dispatch, getState) => {\r\n //dispatch({ type: actions.ACCEPTING_COMPANY_INVITE })\r\n return data.post(`v1/api/invite/user/to/${companyId}/accept`, `\"${inviteId}\"`, {\r\n headers: { \"Content-Type\": \"application/json\" }\r\n });\r\n // .then(response => {\r\n // dispatch({ type: actions.ACCEPTED_COMPANY_INVITE })\r\n // })\r\n // .catch(rejection => {\r\n // dispatch({ type: actions.ACCEPT_COMPANY_INVITE_FAILED })\r\n // handlePromiseError(rejection, \"TODO: The request to accept the company invite failed. Please try again.\")\r\n // })\r\n};\r\n\r\nconst rejectCompanyInvite = (companyId, inviteId) => (dispatch, getState) => {\r\n // dispatch({ type: actions.REJECTING_COMPANY_INVITE })\r\n return data.post(`v1/api/invite/user/to/${companyId}/reject`, `\"${inviteId}\"`, {\r\n headers: { \"Content-Type\": \"application/json\" }\r\n });\r\n // .then(response => {\r\n // dispatch({ type: actions.REJECTED_COMPANY_INVITE })\r\n // })\r\n // .catch(rejection => {\r\n // dispatch({ type: actions.REJECT_COMPANY_INVITE_FAILED })\r\n // handlePromiseError(rejection, \"TODO: The request to reject the company invite failed. Please try again.\")\r\n // })\r\n};\r\n\r\nexport const resetInviteCompanyUser = () => (dispatch, getState) => {\r\n return dispatch({ type: actions.RESET_INVITE_COMPANY_USER });\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n inviteCompanyUser: (companyId, fullName, email, defaultPerspective, customMessage) => {\r\n dispatch(inviteCompanyUser(companyId, fullName, email, defaultPerspective, customMessage));\r\n },\r\n resetInviteCompanyUser: () => {\r\n dispatch(resetInviteCompanyUser());\r\n },\r\n\r\n fetchCompanyUserInvites: companyId => {\r\n dispatch(fetchCompanyUserInvites(companyId));\r\n },\r\n resendCompanyUserInvite: (companyId, inviteId) => {\r\n dispatch(resendCompanyUserInvite(companyId, inviteId));\r\n },\r\n revokeCompanyUserInvite: (companyId, inviteId) => {\r\n dispatch(revokeCompanyUserInvite(companyId, inviteId));\r\n },\r\n acceptCompanyInvite: (companyId, inviteId) => {\r\n return dispatch(acceptCompanyInvite(companyId, inviteId));\r\n },\r\n rejectCompanyInvite: (companyId, inviteId) => {\r\n return dispatch(rejectCompanyInvite(companyId, inviteId));\r\n }\r\n});\r\n","import { actions } from \"./invite-actions\";\r\n\r\nconst defaultInviteSettings = {\r\n invitingUser: false,\r\n invitedUser: false,\r\n inviteFailed: false,\r\n\r\n resendingInvite: {},\r\n resentInvite: {},\r\n resendInviteFailed: {},\r\n\r\n fetchingCompanyUserInvites: false,\r\n fetchedCompanyUserInvites: false,\r\n fetchCompanyUserInvitesFailed: false,\r\n invites: [],\r\n\r\n acceptingCompanyInvite: false,\r\n acceptedCompanyInvite: false,\r\n acceptCompanyInviteFailed: false,\r\n rejectingCompanyInvite: false,\r\n rejectedCompanyInvite: false,\r\n rejectCompanyInviteFailed: false\r\n};\r\n\r\nfunction inviteReducer(state = { ...defaultInviteSettings }, action) {\r\n switch (action.type) {\r\n case actions.INVITING_COMPANY_USER:\r\n return {\r\n ...state,\r\n invitingUser: true,\r\n invitedUser: false,\r\n inviteFailed: false\r\n };\r\n case actions.INVITE_COMPANY_USER_FAILED:\r\n return {\r\n ...state,\r\n invitingUser: false,\r\n invitedUser: false,\r\n inviteFailed: true\r\n };\r\n case actions.INVITED_COMPANY_USER:\r\n return {\r\n ...state,\r\n invitingUser: false,\r\n invitedUser: true,\r\n inviteFailed: false\r\n };\r\n\r\n case actions.RESET_INVITE_COMPANY_USER:\r\n return {\r\n ...state,\r\n invitingUser: false,\r\n invitedUser: false,\r\n inviteFailed: false\r\n };\r\n\r\n case actions.FETCHING_COMPANY_USER_INVITES:\r\n return {\r\n ...state,\r\n companyId: action.companyId,\r\n fetchingCompanyUserInvites: true,\r\n fetchedCompanyUserInvites: false,\r\n fetchCompanyUserInvitesFailed: false\r\n };\r\n case actions.FETCH_COMPANY_USER_INVITES_FAILED:\r\n if (action.companyId !== state.companyId) return state;\r\n return {\r\n ...state,\r\n fetchingCompanyUserInvites: false,\r\n fetchedCompanyUserInvites: false,\r\n fetchCompanyUserInvitesFailed: true\r\n };\r\n case actions.FETCHED_COMPANY_USER_INVITES:\r\n if (action.companyId !== state.companyId) return state;\r\n return {\r\n ...state,\r\n fetchingCompanyUserInvites: false,\r\n fetchedCompanyUserInvites: true,\r\n fetchCompanyUserInvitesFailed: false,\r\n invites: action.invites\r\n };\r\n\r\n case actions.RESEND_COMPANY_USER_INVITE:\r\n return updateResendStatus(state, action.inviteId, true, false, false);\r\n case actions.RESEND_COMPANY_USER_INVITE_FAILED:\r\n return updateResendStatus(state, action.inviteId, false, false, true);\r\n case actions.RESENT_COMPANY_USER_INVITE:\r\n return updateResendStatus(state, action.inviteId, false, true, false);\r\n\r\n case actions.ACCEPTING_COMPANY_INVITE:\r\n return {\r\n ...state,\r\n acceptingCompanyInvite: true,\r\n acceptedCompanyInvite: false,\r\n acceptCompanyInviteFailed: false\r\n };\r\n case actions.ACCEPT_COMPANY_INVITE_FAILED:\r\n return {\r\n ...state,\r\n acceptingCompanyInvite: false,\r\n acceptedCompanyInvite: false,\r\n acceptCompanyInviteFailed: true\r\n };\r\n case actions.ACCEPTED_COMPANY_INVITE:\r\n return {\r\n ...state,\r\n acceptingCompanyInvite: false,\r\n acceptedCompanyInvite: true,\r\n acceptCompanyInviteFailed: false\r\n };\r\n\r\n case actions.REJECTING_COMPANY_INVITE:\r\n return {\r\n ...state,\r\n rejectingCompanyInvite: true,\r\n rejectedCompanyInvite: false,\r\n rejectCompanyInviteFailed: false\r\n };\r\n case actions.REJECT_COMPANY_INVITE_FAILED:\r\n return {\r\n ...state,\r\n rejectingCompanyInvite: false,\r\n rejectedCompanyInvite: false,\r\n rejectCompanyInviteFailed: true\r\n };\r\n case actions.REJECTED_COMPANY_INVITE:\r\n return {\r\n ...state,\r\n rejectingCompanyInvite: false,\r\n rejectedCompanyInvite: true,\r\n rejectCompanyInviteFailed: false\r\n };\r\n\r\n case actions.CLEAR_DATA:\r\n return { ...defaultInviteSettings };\r\n case actions.SELECT_COMPANY:\r\n if (action.companyId === state.companyId) return state;\r\n return { ...defaultInviteSettings };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nfunction updateResendStatus(state, inviteId, resending, resent, failed) {\r\n let resendingInvite = { ...state.resendingInvite };\r\n let resentInvite = { ...state.resentInvite };\r\n let resendInviteFailed = { ...state.resendInviteFailed };\r\n\r\n resendingInvite[inviteId] = resending;\r\n resentInvite[inviteId] = resent;\r\n resendInviteFailed[inviteId] = failed;\r\n\r\n return { ...state, resendingInvite, resentInvite, resendInviteFailed };\r\n}\r\n\r\nexport default inviteReducer;\r\n","import Axios from \"axios\";\r\n\r\nconst axios = Axios.create({\r\n headers: { \"Cache-Control\": \"no-cache\", Pragma: \"no-cache\", Expires: \"-1\" }\r\n});\r\n\r\nexport default axios;\r\n","import data from \"../lib/data\";\r\nimport axios from \"../lib/axios\";\r\nimport _ from \"lodash\";\r\nimport { isEmpty, find, compareDates, includes } from \"../lib/utils\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n GETTING_ALL_SUPPORTED_CONNECTORS: \"GETTING_ALL_SUPPORTED_CONNECTORS\",\r\n GOT_ALL_SUPPORTED_CONNECTORS: \"GOT_ALL_SUPPORTED_CONNECTORS\",\r\n GET_ALL_SUPPORTED_CONNECTORS_FAILED: \"GET_ALL_SUPPORTED_CONNECTORS_FAILED\",\r\n\r\n GETTING_CONNECTOR_VERSION_DATA: \"GETTING_CONNECTOR_VERSION_DATA\",\r\n GOT_CONNECTOR_VERSION_DATA: \"GOT_CONNECTOR_VERSION_DATA\",\r\n GET_CONNECTOR_VERSION_DATA_FAILED: \"GET_CONNECTOR_VERSION_DATA_FAILED\",\r\n\r\n SETTING_DEFAULT_CONNECTOR_PERMISSIONS: \"SETTING_DEFAULT_CONNECTOR_PERMISSIONS\",\r\n SET_DEFAULT_CONNECTOR_PERMISSIONS: \"SET_DEFAULT_CONNECTOR_PERMISSIONS\",\r\n SET_DEFAULT_CONNECTOR_PERMISSIONS_FAILED: \"SET_DEFAULT_CONNECTOR_PERMISSIONS_FAILED\",\r\n\r\n GETTING_COMPANY_GRANTED_PERMISSIONS: \"GETTING_COMPANY_GRANTED_PERMISSIONS\",\r\n GOT_COMPANY_GRANTED_PERMISSIONS: \"GOT_COMPANY_GRANTED_PERMISSIONS\",\r\n GET_COMPANY_GRANTED_PERMISSIONS_FAILED: \"GET_COMPANY_GRANTED_PERMISSIONS_FAILED\",\r\n\r\n TOGGLE_CONNECTOR_REGISTRATION_MODAL: \"TOGGLE_CONNECTOR_REGISTRATION_MODAL\",\r\n START_CUSTOM_CONNECTOR_REGISTRATION: \"START_CUSTOM_CONNECTOR_REGISTRATION\",\r\n END_CUSTOM_CONNECTOR_REGISTRATION: \"END_CUSTOM_CONNECTOR_REGISTRATION\",\r\n\r\n GETTING_CONNECTOR_SPECIFIC_REQUEST: \"GETTING_CONNECTOR_SPECIFIC_REQUEST\",\r\n GOT_CONNECTOR_SPECIFIC_REQUEST: \"GOT_CONNECTOR_SPECIFIC_REQUEST\",\r\n GET_CONNECTOR_SPECIFIC_REQUEST_FAILED: \"GET_CONNECTOR_SPECIFIC_REQUEST_FAILED\",\r\n\r\n FETCHING_CONNECTOR_REQUESTS: \"FETCHING_CONNECTOR_REQUESTS\",\r\n FETCHED_CONNECTOR_REQUESTS: \"FETCHED_CONNECTOR_REQUESTS\",\r\n FETCH_CONNECTOR_REQUESTS_FAILED: \"FETCH_CONNECTOR_REQUESTS_FAILED\",\r\n\r\n FETCHING_CONNECTOR_RESOURCES: \"FETCHING_CONNECTOR_RESOURCES\",\r\n FETCHED_CONNECTOR_RESOURCES: \"FETCHED_CONNECTOR_RESOURCES\",\r\n FETCH_CONNECTOR_RESOURCES_FAILED: \"FETCH_CONNECTOR_RESOURCES_FAILED\",\r\n\r\n CREATING_CONNECTOR_REQUEST: \"CREATING_CONNECTOR_REQUEST\",\r\n CREATED_CONNECTOR_REQUEST: \"CREATED_CONNECTOR_REQUEST\",\r\n CREATE_CONNECTOR_REQUEST_FAILED: \"CREATE_CONNECTOR_REQUEST_FAILED\",\r\n\r\n FETCHING_COMPANY_CONNECTORS: \"FETCHING_COMPANY_CONNECTORS\",\r\n FETCHED_COMPANY_CONNECTORS: \"FETCHED_COMPANY_CONNECTORS\",\r\n FETCH_COMPANY_CONNECTORS_FAILED: \"FETCH_COMPANY_CONNECTORS_FAILED\",\r\n\r\n FETCHING_CONNECTOR_ACTIONS: \"FETCHING_CONNECTOR_ACTIONS\",\r\n FETCHED_CONNECTOR_ACTIONS: \"FETCHED_CONNECTOR_ACTIONS\",\r\n FETCH_CONNECTOR_ACTIONS_FAILED: \"FETCH_CONNECTOR_ACTIONS_FAILED\",\r\n\r\n DISCONNECTING_CONNECTOR: \"DISCONNECTING_CONNECTOR\",\r\n DISCONNECTED_CONNECTOR: \"DISCONNECTED_CONNECTOR\",\r\n DISCONNECT_CONNECTOR_FAILED: \"DISCONNECT_CONNECTOR_FAILED\",\r\n\r\n DELETING_COMPANY_PERMISSIONS: \"DELETING_COMPANY_PERMISSIONS\",\r\n DELETED_COMPANY_PERMISSIONS: \"DELETED_COMPANY_PERMISSIONS\",\r\n DELETE_COMPANY_PERMISSIONS_FAILED: \"DELETE_COMPANY_PERMISSIONS_FAILED\",\r\n\r\n DELETING_CONNECTOR_CONFIGURATION: \"DELETING_CONNECTOR_CONFIGURATION\",\r\n DELETED_CONNECTOR_CONFIGURATION: \"DELETED_CONNECTOR_CONFIGURATION\",\r\n DELETE_CONNECTOR_CONFIGURATION_FAILED: \"DELETE_CONNECTOR_CONFIGURATION_FAILED\",\r\n\r\n FETCHING_CONNECTOR_CONFIGURATION: \"FETCHING_CONNECTOR_CONFIGURATION\",\r\n FETCHED_CONNECTOR_CONFIGURATION: \"FETCHED_CONNECTOR_CONFIGURATION\",\r\n FETCH_CONNECTOR_CONFIGURATION_FAILED: \"FETCH_CONNECTOR_CONFIGURATION_FAILED\",\r\n\r\n UPDATING_CONNECTOR_CONFIGURATION: \"UPDATING_CONNECTOR_CONFIGURATION\",\r\n UPDATED_CONNECTOR_CONFIGURATION: \"UPDATED_CONNECTOR_CONFIGURATION\",\r\n UPDATE_CONNECTOR_CONFIGURATION_FAILED: \"UPDATE_CONNECTOR_CONFIGURATION_FAILED\",\r\n\r\n PUTTING_CONNECTOR_CONFIGURATION: \"PUTTING_CONNECTOR_CONFIGURATION\",\r\n PUT_CONNECTOR_CONFIGURATION: \"PUT_CONNECTOR_CONFIGURATION\",\r\n FAILED_PUT_CONNECTOR_CONFIGURATION: \"FAILED_PUT_CONNECTOR_CONFIGURATION\",\r\n\r\n PUTTING_CONNECTOR_PERMISSIONS: \"PUTTING_CONNECTOR_PERMISSIONS\",\r\n PUT_CONNECTOR_PERMISSIONS: \"PUT_CONNECTOR_PERMISSIONS\",\r\n FAILED_PUT_CONNECTOR_PERMISSIONS: \"FAILED_PUT_CONNECTOR_PERMISSIONS\",\r\n\r\n CLEAR_SPECIFIC_CONNECTOR_DATA: \"CLEAR_SPECIFIC_CONNECTOR_DATA\"\r\n }\r\n};\r\n\r\nconst fetchAllConnectors = () => (dispatch, getState) => {\r\n let state = getState().connector;\r\n if (state.isGettingAllSupportedConnectors) return;\r\n dispatch({ type: actions.GETTING_ALL_SUPPORTED_CONNECTORS });\r\n data\r\n .get(\"v1/api/connector\")\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_ALL_SUPPORTED_CONNECTORS,\r\n allSupportedConnectors: response.data\r\n });\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.GET_ALL_SUPPORTED_CONNECTORS_FAILED });\r\n handlePromiseError(error, \"TODO: Getting connector list failed.\", \"connector list\");\r\n });\r\n};\r\n\r\nconst fetchCompanyConnectors = companyId => (dispatch, getState) => {\r\n if (getState().connector.isFetchingCompanyConnectors) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_COMPANY_CONNECTORS });\r\n data\r\n .get(`v1/api/permission/connectors/for/${companyId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_COMPANY_CONNECTORS,\r\n companyConnectors: response.data,\r\n companyHasERPConnector: response.data.some(connector => connector.isInternal === false)\r\n });\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.FETCH_COMPANY_CONNECTORS_FAILED });\r\n handlePromiseError(error, \"TODO: Getting company connector list failed.\", \"company connector list\");\r\n });\r\n};\r\n\r\nconst getPermittedERPConnector = companyId => (dispatch, getState) => {\r\n const state = getState().connector;\r\n if (state.fetchedCompanyConnectors === false && state.fetchingCompanyConnectorsFailed === false) {\r\n dispatch(fetchCompanyConnectors(companyId));\r\n return null;\r\n } else {\r\n return find(state.companyConnectors, c => {\r\n return c.isHidden !== true;\r\n });\r\n }\r\n};\r\n\r\nconst getConnectorFromName = connectorName => (dispatch, getState) => {\r\n const state = getState().connector;\r\n let connector = find(state.allSupportedConnectors, connector => connector.connectorName === connectorName);\r\n return connector || null;\r\n};\r\n\r\nconst getConnectorIdFromVersion = connectorVersionId => (dispatch, getState) => {\r\n const store = getState().connector;\r\n for (let key in store.connectorVersionData) {\r\n const cVersion = store.connectorVersionData[key][0];\r\n if (cVersion.connectorVersionId === connectorVersionId) {\r\n return cVersion.connectorId;\r\n }\r\n }\r\n};\r\n\r\nconst getRegisteredERPConnectors = companyId => (dispatch, getState) => {\r\n const store = getState().connector;\r\n if (store.fetchedCompanyConnectors === false && store.fetchingCompanyConnectorsFailed === false) {\r\n dispatch(fetchCompanyConnectors(companyId));\r\n return [];\r\n } else {\r\n return store.companyConnectors.filter(connector => connector.isInternal !== true) || [];\r\n }\r\n};\r\n\r\nconst hasRegisteredERPConnectors = companyId => (dispatch, getState) => {\r\n const store = getState().connector;\r\n if (store.fetchedCompanyConnectors === false && store.fetchingCompanyConnectorsFailed === false) {\r\n return null;\r\n } else if (store.fetchedCompanyConnectors === true) {\r\n return !isEmpty(dispatch(getRegisteredERPConnectors(companyId)));\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nconst fetchConnectorRequests = () => (dispatch, getState) => {\r\n if (getState().connector.isFetchingConnectorRequests) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_CONNECTOR_REQUESTS });\r\n data\r\n .get(\"v1/api/connector/requests/all\")\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_CONNECTOR_REQUESTS,\r\n connectorRequests: response.data\r\n });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FETCH_CONNECTOR_REQUESTS_FAILED });\r\n });\r\n};\r\n\r\nconst fetchConnectorResources = (companyId, connectorVersionId) => (dispatch, getState) => {\r\n if (getState().connector.isFetchingConnectorResources) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_CONNECTOR_RESOURCES });\r\n data\r\n .get(`v1/api/connector/config/${companyId}/${connectorVersionId}/resources`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_CONNECTOR_RESOURCES,\r\n connectorResources: response.data,\r\n connectorVersionId\r\n });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FETCH_CONNECTOR_RESOURCES_FAILED });\r\n });\r\n};\r\n\r\nconst getConnectorResources = (companyId, connectorVersionId) => (dispatch, getState) => {\r\n const store = getState().connector;\r\n if (store.connectorResourcesIsFetched[connectorVersionId] !== true) {\r\n dispatch(fetchConnectorResources(companyId, connectorVersionId));\r\n return null;\r\n } else {\r\n return store.connectorResources[connectorVersionId];\r\n }\r\n};\r\n\r\nconst fetchConnectorActions = connectorId => (dispatch, getState) => {\r\n if (getState().connector.isFetchingConnectorActions) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_CONNECTOR_ACTIONS });\r\n data\r\n .get(`v1/api/connector/${connectorId}/action`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_CONNECTOR_ACTIONS,\r\n connectorId,\r\n connectorActions: response.data\r\n });\r\n })\r\n .catch(rejection => {\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Getting connector actions failed. Please refresh the page and try again.\",\r\n \"connector actions\"\r\n );\r\n dispatch({ type: actions.FETCH_CONNECTOR_ACTIONS_FAILED, connectorId });\r\n });\r\n};\r\n\r\nconst getConnectorActionsByResourceIds = (resourceIds, connectorId) => (dispatch, getState) => {\r\n let connectorActions = getState().connector.connectorActions[connectorId] || [];\r\n let filtered = connectorActions.filter(action => {\r\n return resourceIds.indexOf(action.resourceId) > -1;\r\n });\r\n return filtered;\r\n};\r\n\r\nconst createConnectorRequest = payload => (dispatch, getState) => {\r\n if (getState().connector.isCreatingConnectorRequest) {\r\n return;\r\n }\r\n dispatch({ type: actions.CREATING_CONNECTOR_REQUEST });\r\n data\r\n .put(\"v1/api/connector/request\", payload)\r\n .then(response => {\r\n dispatch({\r\n type: actions.CREATED_CONNECTOR_REQUEST,\r\n connectorName: response.data.connectorName\r\n });\r\n })\r\n .catch(rejection => {\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Voting for the accounting package failed. Please try again.\",\r\n \"connector request\"\r\n );\r\n dispatch({ type: actions.CREATE_CONNECTOR_REQUEST_FAILED });\r\n });\r\n};\r\n\r\nconst getSpecificSupportedConnector = connectorName => (dispatch, getState) => {\r\n let state = getState().connector;\r\n return (\r\n find(state.allSupportedConnectors, connectorData => {\r\n return connectorData.connectorName === connectorName;\r\n }) || \"SUPPORTED_CONNECTOR_NOT_FOUND\"\r\n );\r\n};\r\n\r\nconst fetchConnectorVersionData = connectorId => (dispatch, getState) => {\r\n if (getState().connector.isGettingConnectorVersionData[connectorId]) {\r\n return;\r\n }\r\n dispatch({ type: actions.GETTING_CONNECTOR_VERSION_DATA, connectorId });\r\n return data\r\n .get(`v1/api/connector/version/${connectorId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.GOT_CONNECTOR_VERSION_DATA,\r\n connectorId,\r\n connectorVersionData: response.data\r\n });\r\n })\r\n .catch(() => {\r\n dispatch({\r\n type: actions.GET_CONNECTOR_VERSION_DATA_FAILED,\r\n connectorId\r\n });\r\n });\r\n};\r\n\r\nconst getLatestConnectorVersion = connectorId => (dispatch, getState) => {\r\n const state = getState().connector;\r\n if (state.connectorVersionDataIsFetched[connectorId] === false) {\r\n dispatch(fetchConnectorVersionData(connectorId));\r\n return null;\r\n }\r\n const connectorVersions = [...(state.connectorVersionData[connectorId] || [])];\r\n return (\r\n connectorVersions.sort((a, b) => {\r\n return compareDates(a.createDate, b.createDate);\r\n })[0] || {}\r\n );\r\n};\r\n\r\nconst disconnectConnector = (companyId, connectorCompanyId, connectorVersionId) => (dispatch, getState) => {\r\n if (getState().connector.isDisconnectingConnector) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.DISCONNECTING_CONNECTOR });\r\n\r\n const promises = [\r\n dispatch(deleteCompanyPermissions(companyId, connectorCompanyId)),\r\n dispatch(deleteCompanyPermissions(connectorCompanyId, companyId)),\r\n dispatch(deleteConnectorConfiguration(companyId, connectorVersionId))\r\n ];\r\n\r\n return Promise.all(promises)\r\n .then(response => {\r\n dispatch({ type: actions.DISCONNECTED_CONNECTOR });\r\n return true;\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.DISCONNECT_CONNECTOR_FAILED });\r\n throw rejection;\r\n });\r\n};\r\n\r\nconst deleteCompanyPermissions = (onBehalfOfCompanyId, permittedCompanyId) => (dispatch, getState) => {\r\n dispatch({ type: actions.DELETING_COMPANY_PERMISSIONS });\r\n return data\r\n .delete(`v1/api/permission/grants/from/${onBehalfOfCompanyId}/to/${permittedCompanyId}`)\r\n .then(response => {\r\n dispatch({ type: actions.DELETED_COMPANY_PERMISSIONS });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.DELETE_COMPANY_PERMISSIONS_FAILED });\r\n });\r\n};\r\n\r\nconst putConnectorConfiguration = (companyId, connectorVersionId, connectorConfig) => (dispatch, getState) => {\r\n if (getState().connector.isUpdatingConnectorConfig) {\r\n return;\r\n }\r\n dispatch({ type: actions.PUTTING_CONNECTOR_CONFIGURATION });\r\n return data\r\n .post(`v1/api/connector/config/${companyId}/${connectorVersionId}`, connectorConfig)\r\n .then(response => {\r\n dispatch({\r\n type: actions.PUT_CONNECTOR_CONFIGURATION,\r\n connectorVersionId,\r\n connectorConfig: response.data\r\n });\r\n return response;\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FAILED_PUT_CONNECTOR_CONFIGURATION });\r\n });\r\n};\r\n\r\nconst updateConnectorConfiguration = (companyId, connectorVersionId, update) => (dispatch, getState) => {\r\n if (getState().connector.isUpdatingConnectorConfig) {\r\n return;\r\n }\r\n dispatch({ type: actions.UPDATING_CONNECTOR_CONFIGURATION });\r\n return data\r\n .post(`v1/api/connector/config/${companyId}/${connectorVersionId}`, update)\r\n .then(response => {\r\n dispatch({\r\n type: actions.UPDATED_CONNECTOR_CONFIGURATION,\r\n connectorVersionId,\r\n connectorConfig: response.data\r\n });\r\n return response;\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.UPDATE_CONNECTOR_CONFIGURATION_FAILED });\r\n throw rejection;\r\n });\r\n};\r\n\r\nconst fetchConnectorConfiguration = (companyId, connectorVersionId) => (dispatch, getState) => {\r\n if (isEmpty(companyId) || isEmpty(connectorVersionId)) {\r\n return null;\r\n }\r\n if (includes(getState().connector.fetchingConnectorConfiguration, connectorVersionId)) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_CONNECTOR_CONFIGURATION, connectorVersionId: connectorVersionId });\r\n return data\r\n .get(`v1/api/connector/config/${companyId}/${connectorVersionId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_CONNECTOR_CONFIGURATION,\r\n connectorVersionId,\r\n connectorConfig: response.data\r\n });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FETCH_CONNECTOR_CONFIGURATION_FAILED });\r\n });\r\n};\r\n\r\nconst deleteConnectorConfiguration = (companyId, connectorVersionId) => (dispatch, getState) => {\r\n dispatch({ type: actions.DELETING_CONNECTOR_CONFIGURATION });\r\n return data\r\n .delete(`v1/api/connector/config/${companyId}/${connectorVersionId}`)\r\n .then(response => {\r\n return dispatch({\r\n type: actions.DELETED_CONNECTOR_CONFIGURATION,\r\n connectorVersionId\r\n });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.DELETE_CONNECTOR_CONFIGURATION_FAILED });\r\n throw rejection;\r\n });\r\n};\r\n\r\nconst setConnectorPermissions = (companyId, permissions) => (dispatch, getState) => {\r\n dispatch({ type: actions.PUTTING_CONNECTOR_PERMISSIONS });\r\n return data\r\n .put(`v1/api/permission/grants/from/${companyId}`, permissions)\r\n .then(response => {\r\n dispatch({ type: actions.PUT_CONNECTOR_PERMISSIONS });\r\n return response;\r\n })\r\n .catch(exception => {\r\n dispatch({ type: actions.FAILED_PUT_CONNECTOR_PERMISSIONS });\r\n throw exception;\r\n });\r\n};\r\n\r\nconst setDefaultConnectorPermissions = (companyId, connectorCompanyId, defaultPermissions) => (dispatch, getState) => {\r\n if (getState().isSettingDefaultConnectorPermissions) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.SETTING_DEFAULT_CONNECTOR_PERMISSIONS });\r\n\r\n const companyPermissions = [];\r\n const connectorPermissions = [];\r\n\r\n defaultPermissions.forEach(a => {\r\n const action = { resourceId: a.resourceId, actionId: a.actionId };\r\n\r\n if (a.permittedSource === \"connector\") {\r\n action.permittedCompanyId = connectorCompanyId;\r\n connectorPermissions.push(action);\r\n } else if (a.permittedSource === \"company\") {\r\n action.permittedCompanyId = companyId;\r\n companyPermissions.push(action);\r\n }\r\n });\r\n\r\n const promises = [\r\n data.put(`v1/api/permission/grants/from/${companyId}`, connectorPermissions),\r\n data.put(`v1/api/permission/grants/from/${connectorCompanyId}`, companyPermissions)\r\n ];\r\n\r\n return Promise.all(promises)\r\n .then(response => {\r\n dispatch({ type: actions.SET_DEFAULT_CONNECTOR_PERMISSIONS });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.SET_DEFAULT_CONNECTOR_PERMISSIONS_FAILED });\r\n });\r\n};\r\n\r\nconst fetchCompanyGrantedPermissions = companyId => (dispatch, getState) => {\r\n let state = getState().connector;\r\n if (state.isGettingCompanyGrantedPermissions) return;\r\n dispatch({ type: actions.GETTING_COMPANY_GRANTED_PERMISSIONS });\r\n data\r\n .get(`v1/api/permission/grants/from/${companyId}`)\r\n .then(response => {\r\n let permissionKeys = Object.keys(response.data || {});\r\n let permissionsObj = response.data || {};\r\n let permissions = permissionKeys.map(key => {\r\n return permissionsObj[key];\r\n });\r\n\r\n dispatch({\r\n type: actions.GOT_COMPANY_GRANTED_PERMISSIONS,\r\n companyGrantedPermissions: permissions\r\n });\r\n })\r\n .catch(() => {\r\n dispatch({ type: actions.GET_COMPANY_GRANTED_PERMISSIONS_FAILED });\r\n });\r\n};\r\n\r\nlet CONNECTOR_SPECIFIC_REQUEST_PROMISE = null;\r\nconst specificConnecterReq = (reqType, endpoint, reqParams, payload, headers) => (dispatch, getState) => {\r\n let state = getState().connector;\r\n\r\n let currentParams = {\r\n reqType,\r\n endpoint\r\n };\r\n\r\n let isAlreadyRunning = state.currentlyRunningRequests.some(runningParams => {\r\n return _.isEqual(runningParams, currentParams);\r\n });\r\n if (isAlreadyRunning) return CONNECTOR_SPECIFIC_REQUEST_PROMISE;\r\n\r\n dispatch({ type: actions.GETTING_CONNECTOR_SPECIFIC_REQUEST, currentParams });\r\n\r\n if (Array.isArray(reqParams) !== true) reqParams = [reqParams];\r\n let urlBase = reqParams.join(\"\");\r\n\r\n switch (reqType) {\r\n case \"POST\":\r\n CONNECTOR_SPECIFIC_REQUEST_PROMISE = axios.post(endpoint + urlBase, payload || {}, headers || {});\r\n break;\r\n case \"GET\":\r\n CONNECTOR_SPECIFIC_REQUEST_PROMISE = axios.get(endpoint + urlBase, headers || {});\r\n break;\r\n case \"PUT\":\r\n CONNECTOR_SPECIFIC_REQUEST_PROMISE = axios.put(endpoint + urlBase, payload || {}, headers || {});\r\n break;\r\n case \"DELETE\":\r\n CONNECTOR_SPECIFIC_REQUEST_PROMISE = axios.delete(endpoint + urlBase, headers || {});\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n CONNECTOR_SPECIFIC_REQUEST_PROMISE.then(response => {\r\n dispatch({\r\n type: actions.GOT_CONNECTOR_SPECIFIC_REQUEST,\r\n connectorSuccessResponse: response,\r\n currentParams\r\n });\r\n return response;\r\n }).catch(response => {\r\n dispatch({\r\n type: actions.GET_CONNECTOR_SPECIFIC_REQUEST_FAILED,\r\n connectorFailResponse: response,\r\n currentParams\r\n });\r\n return response;\r\n });\r\n\r\n return CONNECTOR_SPECIFIC_REQUEST_PROMISE;\r\n};\r\n\r\nconst getSpecificConnectorReqData = (endpoint, reqType, responseState) => (dispatch, getState) => {\r\n let state = getState().connector;\r\n let data;\r\n if (endpoint && reqType && responseState)\r\n data = ((state.specificConnectorResponseData[endpoint] || {})[reqType] || {})[responseState] || {};\r\n if (endpoint && reqType && responseState === undefined)\r\n data = (state.specificConnectorResponseData[endpoint] || {})[reqType] || {};\r\n if (endpoint && reqType === undefined && responseState === undefined)\r\n data = state.specificConnectorResponseData[endpoint] || {};\r\n if (isEmpty(data)) data = \"DATA_NOT_FOUND\";\r\n return data;\r\n};\r\n\r\nconst clearSpecificConnectorReqData = (endpoint, reqType) => (dispatch, getState) => {\r\n let state = getState().connector;\r\n let newSCRD = state.specificConnectorResponseData;\r\n\r\n if (endpoint && reqType) {\r\n newSCRD[endpoint][reqType] = undefined;\r\n } else if (reqType === undefined) {\r\n delete newSCRD[endpoint];\r\n } else {\r\n newSCRD = {};\r\n }\r\n\r\n dispatch({\r\n type: actions.CLEAR_SPECIFIC_CONNECTOR_DATA,\r\n specificConnectorResponseData: newSCRD\r\n });\r\n};\r\n\r\nconst isSpecificConnectorReqRunning = (endpoint, reqType) => (dispatch, getState) => {\r\n let params = {\r\n reqType,\r\n endpoint\r\n };\r\n\r\n let state = getState().connector;\r\n\r\n let isAlreadyRunning = state.currentlyRunningRequests.some(runningParams => {\r\n return _.isEqual(runningParams, params);\r\n });\r\n return isAlreadyRunning;\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n fetchAllConnectors: () => {\r\n dispatch(fetchAllConnectors());\r\n },\r\n fetchCompanyConnectors: companyId => {\r\n dispatch(fetchCompanyConnectors(companyId));\r\n },\r\n\r\n getConnectorIdFromVersion: connectorVersionId => {\r\n return dispatch(getConnectorIdFromVersion(connectorVersionId));\r\n },\r\n getConnectorFromName: connectorName => {\r\n return dispatch(getConnectorFromName(connectorName));\r\n },\r\n\r\n getPermittedERPConnector: companyId => {\r\n return dispatch(getPermittedERPConnector(companyId));\r\n },\r\n getRegisteredERPConnectors: companyId => {\r\n return dispatch(getRegisteredERPConnectors(companyId));\r\n },\r\n hasRegisteredERPConnectors: companyId => {\r\n return dispatch(hasRegisteredERPConnectors(companyId));\r\n },\r\n\r\n fetchConnectorRequests: () => {\r\n dispatch(fetchConnectorRequests());\r\n },\r\n createConnectorRequest: payload => {\r\n dispatch(createConnectorRequest(payload));\r\n },\r\n\r\n fetchConnectorResources: (companyId, connectorVersionId) => {\r\n dispatch(fetchConnectorResources(companyId, connectorVersionId));\r\n },\r\n getConnectorResources: (companyId, connectorVersionId) => {\r\n return dispatch(getConnectorResources(companyId, connectorVersionId));\r\n },\r\n\r\n fetchConnectorActions: connectorId => {\r\n dispatch(fetchConnectorActions(connectorId));\r\n },\r\n getConnectorActionsByResourceIds: (resourceIds, connectorId) => {\r\n return dispatch(getConnectorActionsByResourceIds(resourceIds, connectorId));\r\n },\r\n\r\n setConnectorPermissions: (companyId, permissions) => {\r\n return dispatch(setConnectorPermissions(companyId, permissions));\r\n },\r\n setDefaultConnectorPermissions: (companyId, connectorCompanyId, defaultPermissions) => {\r\n return dispatch(setDefaultConnectorPermissions(companyId, connectorCompanyId, defaultPermissions));\r\n },\r\n\r\n deleteCompanyPermissions: (onBehalfOfCompanyId, permittedCompanyId) => {\r\n return dispatch(deleteCompanyPermissions(onBehalfOfCompanyId, permittedCompanyId));\r\n },\r\n\r\n fetchConnectorConfiguration: (companyId, connectorVersionId) => {\r\n return dispatch(fetchConnectorConfiguration(companyId, connectorVersionId));\r\n },\r\n putConnectorConfiguration: (companyId, connectorVersionId, connectorConfig) => {\r\n return dispatch(putConnectorConfiguration(companyId, connectorVersionId, connectorConfig));\r\n },\r\n updateConnectorConfiguration: (companyId, connectorVersionId, update) => {\r\n return dispatch(updateConnectorConfiguration(companyId, connectorVersionId, update));\r\n },\r\n deleteConnectorConfiguration: (companyId, connectorVersionId) => {\r\n return dispatch(deleteConnectorConfiguration(companyId, connectorVersionId));\r\n },\r\n\r\n getLatestConnectorVersion: connectorId => {\r\n return dispatch(getLatestConnectorVersion(connectorId));\r\n },\r\n\r\n disconnectConnector: (companyId, connectorCompanyId, connectorVersionId) => {\r\n return dispatch(disconnectConnector(companyId, connectorCompanyId, connectorVersionId));\r\n },\r\n\r\n fetchConnectorVersionData: connectorId => {\r\n return dispatch(fetchConnectorVersionData(connectorId));\r\n },\r\n fetchCompanyGrantedPermissions: companyId => {\r\n dispatch(fetchCompanyGrantedPermissions(companyId));\r\n },\r\n toggleConnectorRegModal: () => {\r\n dispatch({ type: actions.TOGGLE_CONNECTOR_REGISTRATION_MODAL });\r\n },\r\n startCustomConnectorRegistration: connectorInfo => {\r\n dispatch({\r\n type: actions.START_CUSTOM_CONNECTOR_REGISTRATION,\r\n connectorInfo\r\n });\r\n },\r\n endCustomConnectorRegistration: () => {\r\n dispatch({ type: actions.END_CUSTOM_CONNECTOR_REGISTRATION });\r\n },\r\n specificConnecterReq: (reqType, endpoint, reqParams, payload, headers) => {\r\n return dispatch(specificConnecterReq(reqType, endpoint, reqParams, payload, headers));\r\n },\r\n isSpecificConnectorReqRunning: (endpoint, reqType) => {\r\n return dispatch(isSpecificConnectorReqRunning(endpoint, reqType));\r\n },\r\n getSpecificConnectorReqData: (endpoint, reqType, responseState) => {\r\n return dispatch(getSpecificConnectorReqData(endpoint, reqType, responseState));\r\n },\r\n clearSpecificConnectorReqData: (endpoint, reqType) => {\r\n dispatch(clearSpecificConnectorReqData(endpoint, reqType));\r\n },\r\n getSpecificSupportedConnector: connectorName => {\r\n return dispatch(getSpecificSupportedConnector(connectorName));\r\n },\r\n\r\n getEmailConnectorId: () => {\r\n return \"83927133-c727-4182-c7a2-178374620192\";\r\n }\r\n});\r\n","import { actions } from \"./connector-actions\";\nimport _ from \"lodash\";\n\nconst defaultConnectorState = {\n allSupportedConnectors: [],\n allSupportedConnectorsIsFetched: false,\n isGettingAllSupportedConnectors: false,\n\n connectorResources: {},\n connectorResourcesIsFetched: {},\n isFetchingConnectorResources: false,\n\n connectorRequests: [],\n isFetchingConnectorRequests: false,\n fetchingConnectorRequestsFailed: null,\n\n isCreatingConnectorRequest: false,\n createdConnectorRequest: false,\n createdConnectorRequests: [],\n\n companyConnectors: [],\n companyHasERPConnector: false,\n isFetchingCompanyConnectors: false,\n fetchedCompanyConnectors: false,\n fetchingCompanyConnectorsFailed: false,\n\n isSettingDefaultConnectorPermissions: false,\n\n disconnectingConnector: false,\n disconnectedConnector: false,\n disconnectConnectorFailed: false,\n\n isDeletingCompanyPermssions: false,\n deletingCompanyPermissionsFailed: null,\n\n isFetchingConnectorConfiguration: false,\n fetchingConnectorConfiguration: [],\n fetchingConnectorConfigurationFailed: null,\n connectorConfigs: {},\n\n isUpdatingConnectorConfiguration: false,\n\n isDeletingConnectorConfiguration: false,\n deletingConnectorConfigurationFailed: null,\n\n connectorActions: {},\n fetchedConnectorActions: {},\n\n connectorVersionData: {},\n connectorVersionDataIsFetched: {},\n isGettingConnectorVersionData: {},\n\n companyGrantedPermissions: [],\n companyGrantedPermissionsIsFetched: false,\n isGettingCompanyGrantedPermissions: false,\n\n isConnectorRegModalVisible: false,\n\n customConnectorInfo: {},\n isCustomConnectorRegInProgress: false,\n\n currentlyRunningRequests: [],\n specificConnectorResponseData: {},\n\n noCompanySelected: true,\n\n puttingConnectorConfig: false,\n putConnectorConfig: false,\n failedPutConnectorConfig: false,\n\n puttingConnectorPermissions: false,\n putConnectorPermissions: false,\n failedPutConnectorPermissions: false\n};\n\nfunction connectorReducer(state = defaultConnectorState, action) {\n switch (action.type) {\n case actions.GETTING_ALL_SUPPORTED_CONNECTORS:\n return {\n ...state,\n isGettingAllSupportedConnectors: true,\n allSupportedConnectorsIsFetched: false\n };\n case actions.GOT_ALL_SUPPORTED_CONNECTORS:\n return {\n ...state,\n isGettingAllSupportedConnectors: false,\n allSupportedConnectorsIsFetched: true,\n allSupportedConnectors: action.allSupportedConnectors\n };\n case actions.GET_ALL_SUPPORTED_CONNECTORS_FAILED:\n return {\n ...state,\n isGettingAllSupportedConnectors: false,\n allSupportedConnectorsIsFetched: false\n };\n case actions.GETTING_CONNECTOR_VERSION_DATA:\n return {\n ...state,\n isGettingConnectorVersionData: {\n ...state.isGettingConnectorVersionData,\n [action.connectorId]: true\n },\n connectorVersionDataIsFetched: {\n ...state.connectorVersionDataIsFetched,\n [action.connectorId]: false\n }\n };\n case actions.GOT_CONNECTOR_VERSION_DATA:\n return {\n ...state,\n isGettingConnectorVersionData: {\n ...state.isGettingConnectorVersionData,\n [action.connectorId]: false\n },\n connectorVersionDataIsFetched: {\n ...state.connectorVersionDataIsFetched,\n [action.connectorId]: true\n },\n connectorVersionData: {\n ...state.connectorVersionData,\n [action.connectorId]: action.connectorVersionData\n }\n };\n case actions.GET_CONNECTOR_VERSION_DATA_FAILED:\n return {\n ...state,\n isGettingConnectorVersionData: {\n ...state.isGettingConnectorVersionData,\n [action.connectorId]: false\n },\n connectorVersionDataIsFetched: {\n ...state.connectorVersionDataIsFetched,\n [action.connectorId]: true\n }\n };\n\n case actions.SETTING_DEFAULT_CONNECTOR_PERMISSIONS:\n return { ...state, isSettingDefaultConnectorPermissions: true };\n case actions.SET_DEFAULT_CONNECTOR_PERMISSIONS:\n return {\n ...state,\n isSettingDefaultConnectorPermissions: false,\n fetchingCompanyConnectorsFailed: null\n };\n case action.SET_DEFAULT_CONNECTOR_PERMISSIONS_FAILED:\n return { ...state, isSettingDefaultConnectorPermissions: false };\n\n case actions.GETTING_COMPANY_GRANTED_PERMISSIONS:\n return {\n ...state,\n isGettingCompanyGrantedPermissions: true,\n companyGrantedPermissionsIsFetched: false\n };\n case actions.GOT_COMPANY_GRANTED_PERMISSIONS:\n return {\n ...state,\n isGettingCompanyGrantedPermissions: false,\n companyGrantedPermissionsIsFetched: true,\n companyGrantedPermissions: action.companyGrantedPermissions\n };\n case actions.GET_COMPANY_GRANTED_PERMISSIONS_FAILED:\n return {\n ...state,\n isGettingCompanyGrantedPermissions: false,\n companyGrantedPermissionsIsFetched: false\n };\n case actions.TOGGLE_CONNECTOR_REGISTRATION_MODAL:\n return {\n ...state,\n isConnectorRegModalVisible: !state.isConnectorRegModalVisible\n };\n case actions.START_CUSTOM_CONNECTOR_REGISTRATION:\n return {\n ...state,\n isCustomRegInProgress: true,\n customConnectorInfo: action.connectorInfo\n };\n case actions.END_CUSTOM_CONNECTOR_REGISTRATION:\n return {\n ...state,\n isCustomConnectorRegInProgress: false,\n customConnectorInfo: {}\n };\n\n case actions.GETTING_CONNECTOR_SPECIFIC_REQUEST:\n let runningRequests = [...state.currentlyRunningRequests, action.currentParams];\n return { ...state, currentlyRunningRequests: runningRequests };\n\n case actions.GOT_CONNECTOR_SPECIFIC_REQUEST:\n return {\n ...state,\n currentlyRunningRequests: filterCompletedRequests(state, action.currentParams),\n specificConnectorResponseData: updateSpecificConnectorResponseData(\n state,\n action.currentParams,\n \"SUCCESS\",\n action.connectorSuccessResponse\n )\n };\n\n case actions.GET_CONNECTOR_SPECIFIC_REQUEST_FAILED:\n return {\n ...state,\n currentlyRunningRequests: filterCompletedRequests(state, action.currentParams),\n specificConnectorResponseData: updateSpecificConnectorResponseData(\n state,\n action.currentParams,\n \"FAIL\",\n action.connectorFailResponse\n )\n };\n\n case actions.CLEAR_SPECIFIC_CONNECTOR_DATA:\n return {\n ...state,\n specificConnectorResponseData: action.specificConnectorResponseData\n };\n\n case actions.FETCHING_CONNECTOR_REQUESTS:\n return {\n ...state,\n isFetchingConnectorRequests: true,\n fetchingConnectorRequestsFailed: null\n };\n case actions.FETCHED_CONNECTOR_REQUESTS:\n return {\n ...state,\n isFetchingConnectorRequests: false,\n fetchingConnectorRequestsFailed: false,\n connectorRequests: action.connectorRequests\n };\n case actions.FETCH_CONNECTOR_REQUESTS_FAILED:\n return {\n ...state,\n isFetchingConnectorRequests: false,\n fetchingConnectorRequestsFailed: true\n };\n\n case actions.FETCHING_CONNECTOR_RESOURCES:\n return { ...state, isFetchingConnectorResources: true };\n case actions.FETCHED_CONNECTOR_RESOURCES:\n return {\n ...state,\n isFetchingConnectorResources: false,\n connectorResourcesIsFetched: {\n ...state.connectorResourcesIsFetched,\n [action.connectorVersionId]: true\n },\n connectorResources: {\n ...state.connectorResources,\n [action.connectorVersionId]: action.connectorResources\n }\n };\n case actions.FETCH_CONNECTOR_RESOURCES_FAILED:\n return {\n ...state,\n isFetchingConnectorResources: false,\n connectorResourcesIsFetched: {\n ...state.connectorResourcesIsFetched,\n [action.connectorVersionId]: true\n }\n };\n\n case actions.FETCHING_CONNECTOR_ACTIONS:\n return { ...state, isFetchingConnectorActions: true };\n case actions.FETCHED_CONNECTOR_ACTIONS:\n return {\n ...state,\n isFetchingConnectorActions: false,\n fetchedConnectorActions: {\n ...state.fetchedConnectorActions,\n [action.connectorId]: true\n },\n connectorActions: {\n ...state.connectorActions,\n [action.connectorId]: action.connectorActions\n }\n };\n case actions.FETCH_CONNECTOR_ACTIONS_FAILED:\n return {\n ...state,\n isFetchingConnectorActions: false,\n fetchedConnectorActions: {\n ...state.fetchedConnectorActions,\n [action.connectorId]: true\n }\n };\n\n case actions.CREATING_CONNECTOR_REQUEST:\n return {\n ...state,\n isCreatingConnectorRequest: true,\n createdConnectorRequest: false\n };\n case actions.CREATED_CONNECTOR_REQUEST:\n return {\n ...state,\n isCreatingConnectorRequest: false,\n createdConnectorRequest: true,\n createdConnectorRequests: [...state.createdConnectorRequests, action.connectorName]\n };\n case actions.CREATE_CONNECTOR_REQUEST_FAILED:\n return { ...state, isCreatingConnectorRequest: false };\n\n case actions.FETCHING_COMPANY_CONNECTORS:\n return {\n ...state,\n isFetchingCompanyConnectors: true,\n fetchedCompanyConnectors: false,\n fetchingCompanyConnectorsFailed: false\n };\n case actions.FETCHED_COMPANY_CONNECTORS:\n return {\n ...state,\n isFetchingCompanyConnectors: false,\n fetchedCompanyConnectors: true,\n fetchingCompanyConnectorsFailed: false,\n companyConnectors: action.companyConnectors,\n companyHasERPConnector: action.companyHasERPConnector\n };\n case actions.FETCH_COMPANY_CONNECTORS_FAILED:\n return {\n ...state,\n isFetchingCompanyConnectors: false,\n fetchedCompanyConnectors: false,\n fetchingCompanyConnectorsFailed: true\n };\n\n case actions.DISCONNECTING_CONNECTOR:\n return {\n ...state,\n disconnectingConnector: true,\n disconnectedConnector: false,\n disconnectConnectorFailed: false\n };\n case actions.DISCONNECTED_CONNECTOR:\n return {\n ...state,\n disconnectingConnector: false,\n disconnectedConnector: true,\n disconnectConnectorFailed: false\n };\n case actions.DISCONNECT_CONNECTOR_FAILED:\n return {\n ...state,\n disconnectingConnector: false,\n disconnectedConnector: false,\n disconnectConnectorFailed: true\n };\n\n case actions.DELETING_COMPANY_PERMISSIONS:\n return {\n ...state,\n isDeletingCompanyPermssions: true,\n deletingCompanyPermissionsFailed: null\n };\n case actions.DELETED_COMPANY_PERMISSIONS:\n return {\n ...state,\n isDeletingCompanyPermssions: false,\n deletingCompanyPermissionsFailed: false,\n companyConnectors: [],\n fetchingCompanyConnectorsFailed: null\n };\n case actions.DELET_COMPANY_PERMISSIONS_FAILED:\n return {\n ...state,\n isDeletingCompanyPermssions: false,\n deletingCompanyPermissionsFailed: true\n };\n\n case actions.FETCHING_CONNECTOR_CONFIGURATION:\n return {\n ...state,\n isFetchingConnectorConfiguration: true,\n fetchingConnectorConfiguration: [...state.fetchingConnectorConfiguration, action.connectorVersionId],\n fetchingConnectorConfigurationFailed: null\n };\n case actions.FETCHED_CONNECTOR_CONFIGURATION:\n let newFetchingState = [...state.fetchingConnectorConfiguration];\n newFetchingState.splice(state.fetchingConnectorConfiguration.indexOf(action.connectorVersionId));\n return {\n ...state,\n isFetchingConnectorConfiguration: false,\n fetchingConnectorConfigurationFailed: false,\n fetchingConnectorConfiguration: newFetchingState,\n connectorConfigs: {\n ...state.connectorConfigs,\n [action.connectorVersionId]: action.connectorConfig\n }\n };\n case actions.FETCH_CONNECTOR_CONFIGURATION_FAILED:\n let newFetchingState1 = [...state.fetchingConnectorConfiguration];\n newFetchingState1.splice(state.fetchingConnectorConfiguration.indexOf(action.connectorVersionId));\n return {\n ...state,\n isFetchingConnectorConfiguration: false,\n fetchingConnectorConfigurationFailed: true,\n fetchingConnectorConfiguration: newFetchingState1\n };\n\n case actions.UPDATING_CONNECTOR_CONFIGURATION:\n return {\n ...state,\n isUpdatingConnectorConfiguration: true,\n updatingConnectorConfigurationFailed: null\n };\n case actions.UPDATED_CONNECTOR_CONFIGURATION:\n return {\n ...state,\n isUpdatingConnectorConfiguration: false,\n updatingConnectorConfigurationFailed: false,\n connectorConfigs: {\n ...state.connectorConfigs,\n [action.connectorVersionId]: action.connectorConfig\n },\n fetchingConnectorConfigurationFailed: null\n };\n case actions.UPDATE_CONNECTOR_CONFIGURATION_FAILED:\n return {\n ...state,\n isUpdatingConnectorConfiguration: false,\n updatingConnectorConfigurationFailed: true\n };\n\n case actions.DELETING_CONNECTOR_CONFIGURATION:\n return {\n ...state,\n isDeletingConnectorConfiguration: true,\n deletingConnectorConfigurationFailed: null\n };\n case actions.DELETED_CONNECTOR_CONFIGURATION:\n const connectorConfigs = { ...state.connectorConfigs };\n delete connectorConfigs[action.connectorVersionId];\n return {\n ...state,\n isDeletingConnectorConfiguration: false,\n deletingConnectorConfigurationFailed: false,\n connectorConfigs\n };\n case actions.DELETED_CONNECTOR_CONFIGURATION_FAILED:\n return {\n ...state,\n isDeletingConnectorConfiguration: false,\n deletingConnectorConfigurationFailed: true\n };\n\n case actions.PUTTING_CONNECTOR_CONFIGURATION:\n return {\n ...state,\n puttingConnectorConfig: true,\n putConnectorConfig: false,\n failedPutConnectorConfig: false\n };\n case actions.PUT_CONNECTOR_CONFIGURATION:\n return {\n ...state,\n puttingConnectorConfig: false,\n putConnectorConfig: true,\n failedPutConnectorConfig: false\n };\n case actions.FAILED_PUT_CONNECTOR_CONFIGURATION:\n return {\n ...state,\n puttingConnectorConfig: false,\n putConnectorConfig: false,\n failedPutConnectorConfig: true\n };\n\n case actions.PUTTING_CONNECTOR_PERMISSIONS:\n return {\n ...state,\n puttingConnectorPermissions: true,\n putConnectorPermissions: false,\n failedPutConnectorPermissions: false\n };\n case actions.PUT_CONNECTOR_PERMISSIONS:\n return {\n ...state,\n puttingConnectorPermissions: false,\n putConnectorPermissions: true,\n failedPutConnectorPermissions: false\n };\n case actions.FAILED_PUT_CONNECTOR_PERMISSIONS:\n return {\n ...state,\n puttingConnectorPermissions: false,\n putConnectorPermissions: false,\n failedPutConnectorPermissions: true\n };\n\n case actions.SELECT_COMPANY:\n // Prevent state from being reset when app loads\n if (state.noCompanySelected === true) {\n return { ...state, noCompanySelected: false };\n }\n return { ...defaultConnectorState, noCompanySelected: false };\n default:\n return state;\n }\n}\n\nfunction filterCompletedRequests(state, objectToFilter) {\n let data = state.currentlyRunningRequests.filter(requests => {\n return _.isEqual(requests, objectToFilter) !== true;\n });\n return data;\n}\n\nfunction updateSpecificConnectorResponseData(state, currentParams, responseState, response) {\n let cSRD = state.specificConnectorResponseData;\n let oppositeResponseState = responseState === \"SUCCESS\" ? \"FAIL\" : \"SUCCESS\";\n let newCSRD = null;\n let { reqType, endpoint } = currentParams;\n let responseData = {\n [endpoint]: {\n [reqType]: {\n [responseState]: response,\n [oppositeResponseState]: undefined,\n RESPONSE_STATE: responseState\n }\n }\n };\n\n if (cSRD[endpoint] !== undefined) {\n responseData = { ...cSRD[endpoint], ...responseData };\n }\n\n newCSRD = { ...cSRD, ...responseData };\n\n return newCSRD;\n}\n\nexport default connectorReducer;\n","import data from \"../lib/data\";\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\nimport { isEmpty, find } from \"../lib/utils\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n\r\n SET_SELECTED_PERSPECTIVE_ID: \"SET_SELECTED_PERSPECTIVE_ID\",\r\n FETCHING_PERSPECTIVES: \"FETCHING_PERSPECTIVES\",\r\n FETCHED_PERSPECTIVES: \"FETCHED_PERSPECTIVES\",\r\n FETCH_PERSPECTIVES_FAILED: \"FETCH_PERSPECTIVES_FAILED\",\r\n\r\n FETCHING_COMPANY_PERSPECTIVES: \"FETCHING_COMPANY_PERSPECTIVES\",\r\n FETCHED_COMPANY_PERSPECTIVES: \"FETCHED_COMPANY_PERSPECTIVES\",\r\n FETCH_COMPANY_PERSPECTIVES_FAILED: \"FETCH_COMPANY_PERSPECTIVES_FAILED\",\r\n\r\n CREATING_COMPANY_PERSPECTIVE: \"CREATING_COMPANY_PERSPECTIVE\",\r\n CREATED_COMPANY_PERSPECTIVE: \"CREATED_COMPANY_PERSPECTIVE\",\r\n CREATE_COMPANY_PERSPECTIVE_FAILED: \"CREATE_COMPANY_PERSPECTIVE_FAILED\",\r\n\r\n DELETING_COMPANY_PERSPECTIVE: \"DELETING_COMPANY_PERSPECTIVE\",\r\n DELETED_COMPANY_PERSPECTIVE: \"DELETED_COMPANY_PERSPECTIVE\",\r\n FAILED_DELETE_COMPANY_PERSPECTIVE: \"FAILED_DELETE_COMPANY_PERSPECTIVE\",\r\n\r\n UPDATED_COMPANY_PERSPECTIVE: \"UPDATED_COMPANY_PERSPECTIVE\"\r\n};\r\n\r\nconst fetchPerspectives = () => dispatch => {\r\n dispatch({ type: actions.FETCHING_PERSPECTIVES });\r\n return data\r\n .get(\"v1/api/perspective\")\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_PERSPECTIVES,\r\n perspectives: response.data\r\n });\r\n return response.data;\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FETCH_PERSPECTIVES_FAILED });\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Fetching perspectives failed. Please refresh the page and try again.\",\r\n \"perspectives\"\r\n );\r\n });\r\n};\r\n\r\nconst fetchCompanyPerspectives = companyId => (dispatch, getState) => {\r\n if (getState().perspectives.isFetchingCompanyPerspectives) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_COMPANY_PERSPECTIVES });\r\n data\r\n .get(`v1/api/perspective/${companyId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_COMPANY_PERSPECTIVES,\r\n companyPerspectives: response.data\r\n });\r\n // return response.data\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FETCH_COMPANY_PERSPECTIVES_FAILED });\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: Fetching company perspectives failed. Please refresh the page and try again.\",\r\n \"company workspaces\"\r\n );\r\n });\r\n};\r\n\r\nconst deleteCompanyPerspective = (companyId, perspectiveId) => (dispatch, getState) => {\r\n dispatch({ type: actions.DELETING_COMPANY_PERSPECTIVE });\r\n data\r\n .delete(`v1/api/perspective/${companyId}/${perspectiveId}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.DELETED_COMPANY_PERSPECTIVE,\r\n companyPerspectives: response.data\r\n });\r\n })\r\n .catch(rejection => {\r\n dispatch({ type: actions.FAILED_DELETE_COMPANY_PERSPECTIVE });\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: deleting company perspective failed. Please refresh the page and try again.\",\r\n \"company workspaces\"\r\n );\r\n });\r\n};\r\n\r\nexport const getCompanyPerspectives = companyId => (dispatch, getState) => {\r\n const { fetchingCompanyPerspectivesFailed, companyPerspectives } = getState().perspectives;\r\n if (fetchingCompanyPerspectivesFailed === null) {\r\n dispatch(fetchCompanyPerspectives(companyId));\r\n return null;\r\n }\r\n return companyPerspectives;\r\n};\r\n\r\nconst updateCompanyPerspective = (perspectiveId, payload) => dispatch => {\r\n dispatch({ type: actions.UPDATED_COMPANY_PERSPECTIVE, perspectiveId, payload });\r\n};\r\n\r\nconst createCompanyPerspective = (companyId, payload) => (dispatch, getState) => {\r\n if (getState().isCreatingCompanyPerspective) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.CREATING_COMPANY_PERSPECTIVE });\r\n return data\r\n .post(`v1/api/perspective/${companyId}`, payload)\r\n .then(response => {\r\n dispatch({\r\n type: actions.CREATED_COMPANY_PERSPECTIVE,\r\n companyPerspectives: response.data\r\n });\r\n return response.data;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.CREATE_COMPANY_PERSPECTIVE_FAILED });\r\n if (\r\n (((error.response || {}).data || {}).PerspectiveName || [])[0] ===\r\n \"The provided PerspectiveName already exists.\"\r\n ) {\r\n handlePromiseError(\r\n error,\r\n \"TODO: The provided workspace name already exists. Please provide a unique workspace name and try again.\"\r\n );\r\n } else if (\r\n ((((error.response || {}).data || {}).errors || {}).PerspectiveName || [])[0] ===\r\n \"The PerspectiveName field is required.\"\r\n ) {\r\n handlePromiseError(\r\n error,\r\n \"TODO: The workspace name field is required. Please provide a unique workspace name and try again.\"\r\n );\r\n } else {\r\n handlePromiseError(\r\n error,\r\n \"TODO: Creating the workspace failed. Please refresh the page and try again.\",\r\n \"company workspace\"\r\n );\r\n }\r\n });\r\n};\r\n\r\nconst getCompanyPerspectiveById = (companyPerspectiveId, companyId) => (dispatch, getState) => {\r\n const { fetchingCompanyPerspectivesFailed, companyPerspectives } = getState().perspectives;\r\n if (fetchingCompanyPerspectivesFailed === null) {\r\n dispatch(fetchCompanyPerspectives(companyId));\r\n return null;\r\n }\r\n if (isEmpty(companyPerspectiveId)) {\r\n return null;\r\n }\r\n return find(companyPerspectives, perspective => {\r\n return perspective.perspectiveId === companyPerspectiveId;\r\n });\r\n};\r\n\r\nconst getPerspectiveById = perspectiveId => (dispatch, getState) => {\r\n const { perspectives, fetchingPerspectives } = getState().perspectives;\r\n if (isEmpty(perspectives) && fetchingPerspectives !== true) {\r\n dispatch(fetchPerspectives());\r\n }\r\n\r\n return find(perspectives, p => p.perspectiveId === perspectiveId) || {};\r\n};\r\n\r\nconst getPerspectiveByName = perspectiveName => (dispatch, getState) => {\r\n const { perspectives, fetchingPerspectives } = getState().perspectives;\r\n if (isEmpty(perspectives) && fetchingPerspectives !== true) {\r\n dispatch(fetchPerspectives());\r\n }\r\n\r\n return find(perspectives, p => p.perspectiveName === perspectiveName) || {};\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n setSelectedPerspectiveId: perspectiveId => {\r\n dispatch({ type: actions.SET_SELECTED_PERSPECTIVE_ID, perspectiveId });\r\n },\r\n fetchPerspectives: () => {\r\n return dispatch(fetchPerspectives());\r\n },\r\n deleteCompanyPerspective: (companyId, perspectiveId) => {\r\n return dispatch(deleteCompanyPerspective(companyId, perspectiveId));\r\n },\r\n fetchCompanyPerspectives: companyId => {\r\n dispatch(fetchCompanyPerspectives(companyId));\r\n },\r\n getCompanyPerspectives: companyId => {\r\n return dispatch(getCompanyPerspectives(companyId));\r\n },\r\n getCompanyPerspectiveById: (companyPerspectiveId, companyId) => {\r\n return dispatch(getCompanyPerspectiveById(companyPerspectiveId, companyId));\r\n },\r\n createCompanyPerspective: (companyId, payload) => {\r\n return dispatch(createCompanyPerspective(companyId, payload));\r\n },\r\n updateCompanyPerspective: (perspectiveId, payload) => {\r\n return dispatch(updateCompanyPerspective(perspectiveId, payload));\r\n },\r\n\r\n getPerspectiveById: perspectiveId => {\r\n return dispatch(getPerspectiveById(perspectiveId));\r\n },\r\n getPerspectiveByName: perspectiveName => {\r\n return dispatch(getPerspectiveByName(perspectiveName));\r\n }\r\n});\r\n","import { actions } from \"./perspectives-actions\";\r\nimport { find } from \"../lib/utils\";\r\n\r\nexport const defaultPerspectivesState = {\r\n perspectives: [],\r\n fetchingPerspectives: false,\r\n fetchingPerspectivesFailed: null,\r\n\r\n isFetchingCompanyPerspectives: false,\r\n fetchingCompanyPerspectivesFailed: null,\r\n companyPerspectives: [],\r\n companyPerspectivesMap: {},\r\n\r\n isCreatingCompanyPerspective: false,\r\n creatingCompanyPerspectiveFailed: null,\r\n createdPerspective: null,\r\n\r\n deletingCompanyPerspective: false,\r\n deletedCompanyPerspective: false,\r\n failedDeleteCompanyPerspective: false,\r\n\r\n companyId: null,\r\n\r\n selectedPerspectiveId: null,\r\n selectedPerspective: null,\r\n\r\n // vendors = 1 and customers = 2\r\n selectedPerspectiveType: null\r\n};\r\n\r\nfunction perspectivesReducer(state = defaultPerspectivesState, action) {\r\n if (window.logToConsole) console.log(action);\r\n switch (action.type) {\r\n case actions.FETCHING_PERSPECTIVES:\r\n return { ...state, fetchingPerspectives: true };\r\n case actions.FETCHED_PERSPECTIVES:\r\n return {\r\n ...state,\r\n fetchingPerspectives: false,\r\n fetchingPerspectivesFailed: false,\r\n perspectives: action.perspectives\r\n };\r\n case actions.FETCH_PERSPECTIVES_FAILED:\r\n return {\r\n ...state,\r\n fetchingPerspectivesFailed: true,\r\n fetchingPerspectives: false\r\n };\r\n\r\n case actions.FETCHING_COMPANY_PERSPECTIVES:\r\n return { ...state, isFetchingCompanyPerspectives: true };\r\n case actions.FETCHED_COMPANY_PERSPECTIVES:\r\n const companyPerspectivesMap = {};\r\n action.companyPerspectives.forEach(p => (companyPerspectivesMap[p.perspectiveId] = p));\r\n return {\r\n ...state,\r\n isFetchingCompanyPerspectives: false,\r\n fetchingCompanyPerspectivesFailed: false,\r\n companyPerspectives: action.companyPerspectives,\r\n companyPerspectivesMap\r\n };\r\n case actions.FETCH_COMPANY_PERSPECTIVES_FAILED:\r\n return {\r\n ...state,\r\n fetchingCompanyPerspectivesFailed: true,\r\n isFetchingCompanyPerspectives: false\r\n };\r\n\r\n case actions.DELETING_COMPANY_PERSPECTIVE:\r\n return {\r\n ...state,\r\n deletingCompanyPerspective: true,\r\n deletedCompanyPerspective: false,\r\n failedDeleteCompanyPerspective: false\r\n };\r\n case actions.DELETED_COMPANY_PERSPECTIVE:\r\n return {\r\n ...state,\r\n deletingCompanyPerspective: false,\r\n failedDeleteCompanyPerspective: false,\r\n deletedCompanyPerspective: true\r\n };\r\n case actions.FAILED_DELETE_COMPANY_PERSPECTIVE:\r\n return {\r\n ...state,\r\n deletingCompanyPerspective: false,\r\n deletedCompanyPerspective: false,\r\n failedDeleteCompanyPerspective: true\r\n };\r\n\r\n case actions.CREATING_COMPANY_PERSPECTIVE:\r\n return { ...state, isCreatingCompanyPerspective: true };\r\n case actions.CREATED_COMPANY_PERSPECTIVE:\r\n const createdPerspective = [...action.companyPerspectives].sort((a, b) => {\r\n return new Date(b.modifiedDate) - new Date(a.modifiedDate);\r\n })[0];\r\n return {\r\n ...state,\r\n isCreatingCompanyPerspective: false,\r\n creatingCompanyPerspectiveFailed: false,\r\n companyPerspectives: action.companyPerspectives,\r\n createdPerspective\r\n };\r\n case actions.CREATE_COMPANY_PERSPECTIVE_FAILED:\r\n return {\r\n ...state,\r\n isCreatingCompanyPerspective: false,\r\n fetchingCompanyPerspectiveFailed: true,\r\n isFetchingCompanyPerspective: false\r\n };\r\n\r\n case actions.UPDATED_COMPANY_PERSPECTIVE:\r\n const idx = state.companyPerspectives.findIndex(({ perspectiveId }) => perspectiveId === action.perspectiveId);\r\n const updated = { ...state.companyPerspectives[idx], ...action.payload };\r\n\r\n return {\r\n ...state,\r\n // isCreatingCompanyPerspective: false,\r\n // creatingCompanyPerspectiveFailed: false,\r\n companyPerspectives: [\r\n ...state.companyPerspectives.slice(0, idx),\r\n updated,\r\n ...state.companyPerspectives.slice(idx + 1)\r\n ]\r\n };\r\n\r\n case actions.SET_SELECTED_PERSPECTIVE_ID:\r\n let selectedPerspective =\r\n find(state.perspectives, perspective => perspective.perspectiveId === action.perspectiveId) ||\r\n find(state.companyPerspectives, perspective => perspective.perspectiveId === action.perspectiveId) ||\r\n {};\r\n return {\r\n ...state,\r\n selectedPerspectiveId: action.perspectiveId,\r\n selectedPerspective,\r\n selectedPerspectiveType: (selectedPerspective.parentPerspective || {}).perspectiveName\r\n };\r\n\r\n case actions.CLEAR_DATA:\r\n return defaultPerspectivesState;\r\n\r\n case actions.SELECT_COMPANY:\r\n if (state.companyId === null) {\r\n return {\r\n ...state,\r\n companyId: action.companyId\r\n };\r\n } else if (action.companyId !== state.companyId) {\r\n return {\r\n ...defaultPerspectivesState,\r\n companyId: action.companyId\r\n };\r\n }\r\n\r\n return state;\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default perspectivesReducer;\r\n","import util from \"util\";\r\nimport data from \"../lib/data\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\nimport moment from \"moment\";\r\nimport auth from \"../lib/auth\";\r\n\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport { isEmpty, coalesceUserName } from \"../lib/utils\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n FETCHING_REPORT_DATA: \"FETCHING_REPORT_DATA\",\r\n FETCHED_REPORT_DATA: \"FETCHED_REPORT_DATA\",\r\n FETCH_REPORT_DATA_FAILED: \"FETCH_REPORT_DATA_FAILED\",\r\n\r\n CHANGE_RANGE_TYPE: \"CHANGE_RANGE_TYPE\",\r\n\r\n FETCHING_REPORT_USERS: \"FETCHING_REPORT_USERS\",\r\n FETCHED_REPORT_USERS: \"FETCHED_REPORT_USERS\",\r\n FETCH_REPORT_USERS_FAILED: \"FETCH_REPORT_USERS_FAILED\"\r\n }\r\n};\r\n\r\nconst fetchReportsData = (companyId, reportType, rangeType, fromDate, toDate) => (dispatch, getState) => {\r\n dispatch({ type: actions.FETCHING_REPORT_DATA, reportType });\r\n data\r\n .get(`v1/api/stats/${companyId}/${reportType}/from/${fromDate}/to/${toDate}`)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_REPORT_DATA,\r\n companyId,\r\n reportType,\r\n rangeType,\r\n reportData: response.data\r\n });\r\n })\r\n .catch(rejection => {\r\n dispatch({\r\n type: actions.FETCH_REPORT_DATA_FAILED,\r\n companyId,\r\n reportType,\r\n fromDate,\r\n toDate\r\n });\r\n let state = getState().reports;\r\n if (reportType === state.reportType && companyId === state.companyId) {\r\n handlePromiseError(\r\n rejection,\r\n \"TODO: The request getting the report data has failed. Please try again.\",\r\n \"report data\"\r\n );\r\n }\r\n });\r\n};\r\n\r\nconst getReportsData = reportType => (dispatch, getState) => {\r\n let state = getState().reports;\r\n let companyId = state.companyId;\r\n let reportTypeEndpoint = dispatch(getEndPointForReportType(reportType));\r\n let rangeType = state.rangeType;\r\n\r\n let fromAndToDate = dispatch(getTimesFromRangeType(rangeType));\r\n\r\n if (isEmpty(companyId)) {\r\n return;\r\n }\r\n dispatch(fetchReportsData(state.companyId, reportTypeEndpoint, rangeType, fromAndToDate[0], fromAndToDate[1]));\r\n};\r\n\r\nconst refreshReportData = () => (dispatch, getState) => {\r\n dispatch(getReportsData(this.getState.reports.reportType));\r\n};\r\n\r\nconst getEndPointForReportType = reportType => (dispatch, getState) => {\r\n switch (reportType) {\r\n case \"team\":\r\n return \"team\";\r\n case \"approval-aging\":\r\n return \"aging\";\r\n case \"tasks\":\r\n return \"tasks\";\r\n case \"approvers\":\r\n return \"approvers\";\r\n default:\r\n return \"tasks\";\r\n }\r\n};\r\n\r\nconst getTimesFromRangeType = rangeType => (dispatch, getstate) => {\r\n let dateStart;\r\n let dateEnd;\r\n switch (rangeType) {\r\n case \"lastWeek\":\r\n dateStart = moment()\r\n .subtract(1, \"week\")\r\n .startOf(\"week\");\r\n dateEnd = moment().startOf(\"week\");\r\n break;\r\n case \"thisWeek\":\r\n dateStart = moment().startOf(\"week\");\r\n dateEnd = moment()\r\n .add(1, \"week\")\r\n .startOf(\"week\");\r\n break;\r\n case \"lastMonth\":\r\n dateStart = moment()\r\n .subtract(1, \"month\")\r\n .startOf(\"month\");\r\n dateEnd = moment().startOf(\"month\");\r\n break;\r\n case \"thisMonth\":\r\n dateStart = moment().startOf(\"month\");\r\n dateEnd = moment()\r\n .add(1, \"month\")\r\n .startOf(\"month\");\r\n break;\r\n case \"lastQuarter\":\r\n dateStart = moment()\r\n .subtract(1, \"quarter\")\r\n .startOf(\"quarter\");\r\n dateEnd = moment().startOf(\"quarter\");\r\n break;\r\n case \"thisQuarter\":\r\n dateStart = moment().startOf(\"quarter\");\r\n dateEnd = moment()\r\n .add(1, \"quarter\")\r\n .startOf(\"quarter\");\r\n break;\r\n default:\r\n dateStart = moment().startOf(\"week\");\r\n dateEnd = moment()\r\n .add(1, \"week\")\r\n .startOf(\"week\");\r\n break;\r\n }\r\n return [dateStart.format(), dateEnd.format()];\r\n};\r\n\r\nconst changeRangeType = rangeType => (dispatch, getState) => {\r\n dispatch({ type: actions.CHANGE_RANGE_TYPE, rangeType });\r\n};\r\n\r\nconst getReportUsers = guids => (dispatch, getState) => {\r\n dispatch({ type: actions.FETCHING_REPORT_USERS });\r\n if (isEmpty(guids)) {\r\n dispatch({\r\n type: actions.FETCHED_REPORT_USERS,\r\n reportUsers: {},\r\n reportUserIds: {}\r\n });\r\n return;\r\n }\r\n auth\r\n .post(\"v1/user/list\", guids)\r\n .then(response => {\r\n if (util.isString(response.data)) dispatch({ type: actions.FETCH_REPORT_USERS_FAILED });\r\n else {\r\n let userIdMap = {};\r\n response.data.forEach(user => {\r\n userIdMap[user.userId] = user;\r\n });\r\n dispatch({\r\n type: actions.FETCHED_REPORT_USERS,\r\n reportUsers: response.data,\r\n reportUserIds: userIdMap\r\n });\r\n }\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.FETCH_REPORT_USERS_FAILED });\r\n });\r\n};\r\n\r\nconst getReportUserDisplayName = userId => (dispatch, getState) => {\r\n if (getState().reports.fetchedReportUserIds === false || isEmpty(getState().reports.reportUsers)) {\r\n return \"\";\r\n }\r\n let userData = getState().reports.reportUserIds;\r\n\r\n return coalesceUserName(userData[userId]) || \"SAML User\";\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n getReportsData: reportType => {\r\n return dispatch(getReportsData(reportType));\r\n },\r\n changeRangeType: rangeType => {\r\n return dispatch(changeRangeType(rangeType));\r\n },\r\n getReportUsers: guids => {\r\n return dispatch(getReportUsers(guids));\r\n },\r\n getReportUserDisplayName: userId => {\r\n return dispatch(getReportUserDisplayName(userId));\r\n },\r\n refreshReportData: () => {\r\n return dispatch(refreshReportData());\r\n }\r\n});\r\n","import { actions } from \"./reports-actions\";\r\n\r\nconst defaultReportsSettings = {\r\n fetchingReport: false,\r\n fetchedReport: false,\r\n failedToFetchReport: false,\r\n\r\n fetchingReportUsers: false,\r\n fetchedReportUsers: false,\r\n failedToFetchReportUsers: false,\r\n\r\n reportType: \"\",\r\n rangeType: \"thisWeek\",\r\n\r\n reportData: {},\r\n reportUsers: {},\r\n reportUserIds: {}\r\n};\r\n\r\nfunction reportsReducer(state = { ...defaultReportsSettings }, action) {\r\n switch (action.type) {\r\n case actions.FETCHING_REPORT_DATA:\r\n return {\r\n ...state,\r\n fetchingReport: true,\r\n fetchedReport: false,\r\n failedToFetchReport: false,\r\n reportType: action.reportType,\r\n reportData: {}\r\n };\r\n case actions.FETCHED_REPORT_DATA:\r\n if (\r\n action.reportType !== state.reportType ||\r\n action.companyId !== state.companyId ||\r\n action.rangeType !== state.rangeType\r\n )\r\n return state;\r\n return {\r\n ...state,\r\n fetchingReport: false,\r\n fetchedReport: true,\r\n failedToFetchReport: false,\r\n reportData: action.reportData\r\n };\r\n case actions.FETCH_REPORT_DATA_FAILED:\r\n if (\r\n action.reportType !== state.reportType ||\r\n action.companyId !== state.companyId ||\r\n action.rangeType !== state.rangeType\r\n )\r\n return state;\r\n return {\r\n ...state,\r\n fetchingReport: false,\r\n fetchedReport: false,\r\n failedToFetchReport: true,\r\n reportData: {}\r\n };\r\n\r\n case actions.CHANGE_RANGE_TYPE:\r\n return { ...state, rangeType: action.rangeType };\r\n\r\n case actions.FETCHING_REPORT_USERS:\r\n if (state.fetchingReport) return state;\r\n return {\r\n ...state,\r\n fetchingReportUsers: true,\r\n fetchedReportUsers: false,\r\n failedToFetchReportUsers: false,\r\n reportUsers: {},\r\n reportUserIds: {}\r\n };\r\n case actions.FETCHED_REPORT_USERS:\r\n return {\r\n ...state,\r\n fetchingReportUsers: false,\r\n fetchedReportUsers: true,\r\n failedToFetchReportUsers: false,\r\n reportUsers: action.reportUsers,\r\n reportUserIds: action.reportUserIds\r\n };\r\n case actions.FETCH_REPORT_USERS_FAILED:\r\n return {\r\n ...state,\r\n fetchingReportUsers: false,\r\n fetchedReportUsers: false,\r\n failedToFetchReportUsers: true\r\n };\r\n\r\n case actions.CLEAR_DATA:\r\n return { ...defaultReportsSettings };\r\n case actions.SELECT_COMPANY:\r\n if (action.companyId === state.companyId) return state;\r\n return { ...defaultReportsSettings, companyId: action.companyId };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default reportsReducer;\r\n","import { actions } from \"./general-actions\";\r\n\r\nconst defaultInviteSettings = {\r\n showToast: false,\r\n toastInfo: {},\r\n toastTimeout: null,\r\n hasNetworkError: false,\r\n pageRowCount: 10,\r\n isAPILive: null\r\n};\r\n\r\nfunction generalReducer(state = { ...defaultInviteSettings }, action) {\r\n switch (action.type) {\r\n case actions.SHOW_TOAST:\r\n return {\r\n ...state,\r\n showToast: true,\r\n toastTimeout: action.toastTimeout,\r\n toastInfo: action.toastInfo\r\n };\r\n case actions.HIDE_TOAST:\r\n return { ...state, showToast: false, toastTimeout: null };\r\n case actions.NETWORK_ERROR:\r\n return { ...state, hasNetworkError: true };\r\n case actions.CLEAR_NETWORK_ERROR:\r\n return { ...state, hasNetworkError: false };\r\n case actions.UPDATE_PAGE_ROW_COUNT:\r\n return { ...state, pageRowCount: action.pageRowCount };\r\n case actions.UPDATE_API_STATUS:\r\n return { ...state, isAPILive: action.isAPILive };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default generalReducer;\r\n","import { actions } from \"./modal-actions\";\n\nconst defaultModalState = {\n showModal: false,\n modalType: \"\",\n modalProps: { companyEmail: \"\" },\n showFlyout: false,\n flyoutType: \"\",\n flyoutProps: {},\n showNotification: false,\n notificationType: \"\",\n notificationProps: {}\n};\n\nfunction modalReducer(state = { ...defaultModalState }, action) {\n switch (action.type) {\n case actions.SHOW_MODAL:\n return {\n ...state,\n showModal: true,\n modalType: action.modalType,\n modalProps: action.modalProps\n };\n case actions.HIDE_MODAL:\n return { ...state, showModal: false, modalType: \"\", modalProps: {} };\n\n case actions.SHOW_FLYOUT:\n return {\n ...state,\n showFlyout: true,\n flyoutType: action.flyoutType,\n flyoutProps: action.flyoutProps\n };\n case actions.HIDE_FLYOUT:\n return { ...state, showFlyout: false, flyoutType: \"\", flyoutProps: {} };\n\n case actions.SHOW_NOTIFICATION:\n return {\n ...state,\n showNotification: true,\n notificationType: action.notificationType,\n notificationProps: action.notificationProps\n };\n case actions.HIDE_NOTIFICATION:\n return { ...state, showNotification: false, flyoutTynotificationTypepe: \"\", notificationProps: {} };\n\n case actions.UPDATE_NOTIFICATION_PROPS:\n return { ...state, notificationProps: { ...state.notificationProps, ...action.notificationProps } };\n\n case actions.CLEAR_DATA:\n return { ...defaultModalState };\n case actions.SELECT_COMPANY:\n if (action.companyId === state.companyId) return state;\n return { ...defaultModalState, companyId: action.companyId };\n\n default:\n return state;\n }\n}\n\nexport default modalReducer;\n","import data from \"../lib/data\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\n\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport Resources from \"../lib/resources\";\r\nimport { isEmpty, find } from \"../lib/utils\";\r\nimport { getCompanyPerspectives } from \"./perspectives-actions\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n ...{\r\n GETTING_CONTEXT_GROUPS: \"GETTING_CONTEXT_GROUPS\",\r\n GOT_CONTEXT_GROUPS: \"GOT_CONTEXT_GROUPS\",\r\n GET_CONTEXT_GROUPS_FAILED: \"GET_CONTEXT_GROUPS_FAILED\",\r\n\r\n GETTING_CONTEXT_GROUPS_STATS: \"GETTING_CONTEXT_GROUPS_STATS\",\r\n GOT_CONTEXT_GROUPS_STATS: \"GOT_CONTEXT_GROUPS_STATS\",\r\n GET_CONTEXT_GROUPS_STATS_FAILED: \"GET_CONTEXT_GROUPS_STATS_FAILED\",\r\n\r\n UPDATE_PERSPECTIVE_CONTEXT_GROUPS_STATS: \"UPDATE_PERSPECTIVE_CONTEXT_GROUPS_STATS\",\r\n\r\n MOVING_CONVERSATION_TO_CONTEXT_GROUP: \"MOVING_CONVERSATION_TO_CONTEXT_GROUP\",\r\n MOVED_CONVERSATION_TO_CONTEXT_GROUP: \"MOVED_CONVERSATION_TO_CONTEXT_GROUP\",\r\n MOVE_CONVERSATION_TO_CONTEXT_GROUP_FAILED: \"MOVE_CONVERSATION_TO_CONTEXT_GROUP_FAILED\",\r\n\r\n BULK_MOVING_CONVERSATIONS_TO_CONTEXT_GROUP: \"BULK_MOVING_CONVERSATIONS_TO_CONTEXT_GROUP\",\r\n BULK_MOVED_CONVERSATIONS_TO_CONTEXT_GROUP: \"BULK_MOVED_CONVERSATIONS_TO_CONTEXT_GROUP\",\r\n BULK_MOVE_CONVERSATIONS_TO_CONTEXT_GROUP_FAILED: \"BULK_MOVE_CONVERSATIONS_TO_CONTEXT_GROUP_FAILED\",\r\n\r\n SET_CONTEXT_GROUPS_SORT_BY: \"SET_CONTEXT_GROUPS_SORT_BY\",\r\n SET_CONTEXT_GROUPS_SORT_DIRECTION: \"SET_CONTEXT_GROUPS_SORT_DIRECTION\",\r\n SET_CONTEXT_GROUPS_SORT: \"SET_CONTEXT_GROUPS_SORT\",\r\n\r\n POSTING_CONTEXT_GROUP: \"POSTING_CONTEXT_GROUP\",\r\n POSTED_CONTEXT_GROUP: \"POSTED_CONTEXT_GROUP\",\r\n POST_CONTEXT_GROUP_FAILED: \"POST_CONTEXT_GROUP_FAILED\"\r\n }\r\n};\r\n\r\nexport const SortBy = {\r\n Name: \"NAME\",\r\n ActiveCount: \"ACTIVE_COUNT\",\r\n MostRecent: \"MOST_RECENT\",\r\n Hidden: \"HIDDEN\"\r\n};\r\n\r\nexport const SortDirection = {\r\n Ascending: \"ASC\",\r\n Descending: \"DESC\"\r\n};\r\n\r\nexport const fetchContextGroups = (companyId, perspectiveId) => (dispatch, getState) => {\r\n const store = getState().contextGroups;\r\n if (store.companyId === companyId && store.perspectiveId === perspectiveId && store.gettingContextGroups === true) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: actions.GETTING_CONTEXT_GROUPS,\r\n companyId,\r\n perspectiveId\r\n });\r\n return data\r\n .get(`v2/api/conversation/for/${companyId}/${perspectiveId}/contextgroups`)\r\n .then(response => {\r\n dispatch({ type: actions.GOT_CONTEXT_GROUPS, companyId, perspectiveId, data: response.data });\r\n dispatch({\r\n type: actions.UPDATE_PERSPECTIVE_CONTEXT_GROUPS_STATS,\r\n perspectiveId,\r\n stats: computeStatsForContextGroups(response.data)\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_CONTEXT_GROUPS_FAILED, companyId, perspectiveId });\r\n if (\r\n getState().contextGroups.companyId === companyId &&\r\n getState().contextGroups.perspectiveId === perspectiveId\r\n ) {\r\n handlePromiseError(\r\n response,\r\n \"TODO: Getting the contextGroups has failed. Please refresh the page. If this continues please let us know.\",\r\n \"context groups\"\r\n );\r\n }\r\n });\r\n};\r\n\r\nexport const computeStatsForContextGroups = contextGroups => {\r\n let unassignedActive = 0;\r\n let mineActive = 0;\r\n let assignedActive = 0;\r\n let pendingApproval = 0;\r\n let waitingResponse = 0;\r\n let reminders = 0; //this.props.reminders.count || 0;\r\n let summaryCountsMap = {};\r\n let badgeTypesMap = {};\r\n\r\n for (let i = 0; i < contextGroups.length; i++) {\r\n let contextGroup = contextGroups[i];\r\n if (contextGroup.isSpam) {\r\n continue;\r\n }\r\n if (contextGroup.isHidden) {\r\n continue;\r\n }\r\n const ac = contextGroup.activeCounts || {};\r\n unassignedActive += ac.unassigned || 0;\r\n mineActive += ac.assignedToMe || 0;\r\n assignedActive += ac.assignedToOthers || 0;\r\n pendingApproval += ac.pendingApproval || 0;\r\n waitingResponse += ac.waitingForResponse || 0;\r\n\r\n let hasTasksForUser = (ac.unassigned || 0) + (ac.assignedToMe || 0) > 0;\r\n if (hasTasksForUser) {\r\n summaryCountsMap[contextGroup.companyLocalKey] = (ac.unassigned || 0) + (ac.assignedToMe || 0);\r\n } else {\r\n summaryCountsMap[contextGroup.companyLocalKey] =\r\n (ac.unassigned || 0) + (ac.assignedToMe || 0) + (ac.assignedToOthers || 0) + (ac.pendingApproval || 0);\r\n }\r\n\r\n badgeTypesMap[contextGroup.companyLocalKey] = hasTasksForUser ? \"alert\" : \"info\";\r\n }\r\n\r\n summaryCountsMap.mine = mineActive;\r\n summaryCountsMap.unassigned = unassignedActive;\r\n summaryCountsMap.assigned = assignedActive;\r\n summaryCountsMap[\"waiting-for-response\"] = waitingResponse;\r\n summaryCountsMap[\"pending-approval\"] = pendingApproval;\r\n summaryCountsMap.snoozed = reminders;\r\n summaryCountsMap.activities = mineActive + unassignedActive;\r\n\r\n badgeTypesMap.mine = \"alert\";\r\n badgeTypesMap.unassigned = \"alert\";\r\n badgeTypesMap.assigned = \"info\";\r\n badgeTypesMap[\"waiting-for-response\"] = \"info\";\r\n badgeTypesMap[\"pending-approval\"] = \"info\";\r\n badgeTypesMap.snoozed = \"info\";\r\n badgeTypesMap.activities = \"alert\";\r\n badgeTypesMap.all = \"info\";\r\n\r\n return {\r\n summaryCounts: summaryCountsMap,\r\n badgeTypes: badgeTypesMap,\r\n displayActiveIndicator: summaryCountsMap.activities > 0\r\n };\r\n};\r\n\r\nexport const fetchContextGroupsStats = () => (dispatch, getState) => {\r\n const store = getState();\r\n let companyPerspectives = ((store.accounts.selectedAccount || {}).companies || [])\r\n .map(company => dispatch(getCompanyPerspectives(company.companyId)))\r\n .flat();\r\n let displayPerspectives = [];\r\n\r\n companyPerspectives.forEach(perspective => {\r\n if (!isEmpty(perspective) && !find(displayPerspectives, i => perspective.perspectiveId === i.perspectiveId)) {\r\n displayPerspectives.push(perspective);\r\n }\r\n });\r\n if (!displayPerspectives.reduce(perspective => typeof perspective !== \"function\")) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: actions.GETTING_CONTEXT_GROUPS_STATS\r\n });\r\n let promises = Promise.all(\r\n displayPerspectives.map(perspective => {\r\n if (perspective.companyId && perspective.perspectiveId) {\r\n return data\r\n .get(`v2/api/conversation/for/${perspective.companyId}/${perspective.perspectiveId}/contextgroups`)\r\n .then(response => {\r\n const { summaryCounts, badgeTypes, displayActiveIndicator } = computeStatsForContextGroups(response.data);\r\n return {\r\n [perspective.perspectiveId]: {\r\n summaryCounts,\r\n badgeTypes,\r\n displayActiveIndicator\r\n }\r\n };\r\n });\r\n } else {\r\n return true;\r\n }\r\n })\r\n );\r\n\r\n return promises\r\n .then(responses => {\r\n let dataMap = {};\r\n responses.forEach(response => (dataMap = { ...dataMap, ...response }));\r\n dispatch({ type: actions.GOT_CONTEXT_GROUPS_STATS, data: dataMap });\r\n })\r\n .catch(response => {\r\n dispatch({ type: actions.GET_CONTEXT_GROUPS_STATS_FAILED });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Getting the contextGroups stats has failed. Please refresh the page. If this continues please let us know.\",\r\n \"context groups\"\r\n );\r\n });\r\n};\r\n\r\nexport const getContextGroupsMaps = (companyId, perspectiveId) => (dispatch, getState) => {\r\n let state = getState().contextGroups;\r\n if (state.companyId === companyId && state.perspectiveId === perspectiveId && state.gotContextGroups === true) {\r\n return state.contextGroupsMaps;\r\n }\r\n\r\n if (state.gettingContextGroups === false && state.failedGetContextGroups === false) {\r\n dispatch(fetchContextGroups(companyId, perspectiveId));\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const moveConversationToContextGroup = (\r\n companyId,\r\n perspectiveId,\r\n contextGroupId,\r\n conversationId,\r\n remapIdentifiers\r\n) => (dispatch, getState) => {\r\n dispatch({\r\n type: actions.MOVING_CONVERSATION_TO_CONTEXT_GROUP,\r\n companyId,\r\n perspectiveId,\r\n contextGroupId,\r\n conversationId\r\n });\r\n return data\r\n .put(\r\n `v2/api/conversation/for/${companyId}/${perspectiveId}/contextgroups/${contextGroupId}/move`,\r\n { conversationId, remapIdentifiers },\r\n {\r\n headers: { \"Content-Type\": \"application/json\" }\r\n }\r\n )\r\n .then(response => {\r\n dispatch({\r\n type: actions.MOVED_CONVERSATION_TO_CONTEXT_GROUP,\r\n companyId,\r\n perspectiveId,\r\n contextGroupId,\r\n conversationId,\r\n data: response.data\r\n });\r\n dispatch({ type: actions.GOT_CONTEXT_GROUPS, companyId, perspectiveId, data: response.data });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: actions.MOVE_CONVERSATION_TO_CONTEXT_GROUP_FAILED,\r\n companyId,\r\n perspectiveId,\r\n contextGroupId,\r\n conversationId\r\n });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Moving the conversation has failed. Please try again. If this continues please let us know.\",\r\n \"context groups\"\r\n );\r\n });\r\n};\r\n\r\nexport const bulkMoveConversationsToContextGroup = (\r\n companyId,\r\n perspectiveId,\r\n contextGroupId,\r\n conversationIds,\r\n remapIdentifiers\r\n) => (dispatch, getState) => {\r\n dispatch({\r\n type: actions.BULK_MOVING_CONVERSATIONS_TO_CONTEXT_GROUP\r\n });\r\n return data\r\n .put(\r\n `v2/api/conversation/for/${companyId}/${perspectiveId}/contextgroups/${contextGroupId}/move/bulk`,\r\n { conversationIds, remapIdentifiers },\r\n {\r\n headers: { \"Content-Type\": \"application/json\" }\r\n }\r\n )\r\n .then(response => {\r\n dispatch({\r\n type: actions.BULK_MOVED_CONVERSATIONS_TO_CONTEXT_GROUP\r\n });\r\n dispatch({ type: actions.GOT_CONTEXT_GROUPS, companyId, perspectiveId, data: response.data });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: actions.BULK_MOVE_CONVERSATIONS_TO_CONTEXT_GROUP_FAILED\r\n });\r\n handlePromiseError(\r\n response,\r\n \"TODO: Moving the conversation has failed. Please try again. If this continues please let us know.\",\r\n \"context groups\"\r\n );\r\n });\r\n};\r\n\r\nconst getContextGroupsSortByDisplayName = () => (dispatch, getState) => {\r\n let sortBy = getState().contextGroups.contextGroupsSortBy;\r\n let sortDirection = getState().contextGroups.contextGroupsSortDirection;\r\n\r\n switch (sortBy) {\r\n case SortBy.Name:\r\n switch (sortDirection) {\r\n case SortDirection.Ascending:\r\n return Resources.NameAscending;\r\n case SortDirection.Descending:\r\n return Resources.NameDescending;\r\n default:\r\n return \"\";\r\n }\r\n case SortBy.ActiveCount:\r\n switch (sortDirection) {\r\n case SortDirection.Ascending:\r\n return Resources.SmallestActiveCount;\r\n case SortDirection.Descending:\r\n return Resources.LargestActiveCount;\r\n default:\r\n return \"\";\r\n }\r\n case SortBy.MostRecent:\r\n switch (sortDirection) {\r\n case SortDirection.Ascending:\r\n return Resources.OldestToNewest;\r\n case SortDirection.Descending:\r\n return Resources.NewestToOldest;\r\n default:\r\n return \"\";\r\n }\r\n case SortBy.Hidden:\r\n return Resources.Hidden;\r\n default:\r\n return \"\";\r\n }\r\n};\r\n\r\nexport const postContextGroup = (contextGroupId, displayName, isHidden) => (dispatch, getState) => {\r\n let state = getState().contextGroups;\r\n dispatch({\r\n type: actions.POSTING_CONTEXT_GROUP\r\n });\r\n let postContent = {};\r\n if (!isEmpty(displayName)) {\r\n postContent.displayName = displayName;\r\n }\r\n if (!isEmpty(isHidden)) {\r\n postContent.isHidden = isHidden;\r\n }\r\n\r\n return data\r\n .put(`v2/api/contextgroup/${contextGroupId}`, postContent)\r\n .then(response => {\r\n dispatch({\r\n type: actions.POSTED_CONTEXT_GROUP\r\n });\r\n return dispatch(fetchContextGroups(state.companyId, state.perspectiveId));\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: actions.POST_CONTEXT_GROUP_FAILED\r\n });\r\n handlePromiseError(\r\n response,\r\n \"Updating the context group has failed. Please try again. If this continues please let us know.\",\r\n \"context groups\"\r\n );\r\n return false;\r\n });\r\n};\r\n\r\nexport const getContextGroupName = (contextGroupId, includeId = false, unknownValue = Resources.Unknown) => (\r\n dispatch,\r\n getState\r\n) => {\r\n let state = getState().contextGroups;\r\n if (includeId) {\r\n return (state.contextGroupsMaps[contextGroupId] || {}).companyName || unknownValue;\r\n } else {\r\n return (state.contextGroupsMaps[contextGroupId] || {}).displayName || unknownValue;\r\n }\r\n};\r\n\r\nexport const getContextGroupNameFromCompanyId = companyId => (dispatch, getState) => {\r\n let state = getState().contextGroups;\r\n let contextGroup = find(state.value, contextGroup => companyId === contextGroup.companyId) || {};\r\n return contextGroup.displayName || Resources.Unknown;\r\n};\r\n\r\nexport const isCompanyNew = (companyId, perspective, currentCompanyId) => (dispatch, getState) => {\r\n let state = getState();\r\n if (isEmpty(companyId)) {\r\n return false;\r\n }\r\n\r\n if (isEmpty(state.contextGroups.contextGroupsMaps) && !isEmpty(currentCompanyId)) {\r\n dispatch(fetchContextGroups(currentCompanyId, perspective));\r\n return null;\r\n }\r\n\r\n return (find(state.contextGroups.value, contextGroup => companyId === contextGroup.companyId) || {}).isNew;\r\n};\r\n\r\nexport const isContextGroupNew = (contextGroupId, perspective, currentCompanyId) => (dispatch, getState) => {\r\n let state = getState();\r\n if (isEmpty(contextGroupId)) {\r\n return false;\r\n }\r\n\r\n if (isEmpty(state.contextGroups.contextGroupsMaps) && !isEmpty(currentCompanyId)) {\r\n dispatch(fetchContextGroups(currentCompanyId, perspective));\r\n return null;\r\n }\r\n\r\n if (isEmpty(state.contextGroups.contextGroupsMaps[contextGroupId])) {\r\n return false;\r\n }\r\n\r\n return (state.contextGroups.contextGroupsMaps[contextGroupId] || {}).isNew;\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n fetchContextGroups: (companyId, perspectiveId) => {\r\n return dispatch(fetchContextGroups(companyId, perspectiveId));\r\n },\r\n fetchContextGroupsStats: () => {\r\n return dispatch(fetchContextGroupsStats());\r\n },\r\n getContextGroupsMaps: (companyId, perspectiveId) => {\r\n return dispatch(getContextGroupsMaps(companyId, perspectiveId));\r\n },\r\n refreshContextGroups: (companyId, perspectiveId) => {\r\n return dispatch(fetchContextGroups(companyId, perspectiveId));\r\n },\r\n setContextGroupsSortBy: sortBy => {\r\n return dispatch({\r\n type: actions.SET_CONTEXT_GROUPS_SORT_BY,\r\n sortBy\r\n });\r\n },\r\n setContextGroupsSortDirection: sortDirection => {\r\n return dispatch({\r\n type: actions.SET_CONTEXT_GROUPS_SORT_DIRECTION,\r\n sortDirection\r\n });\r\n },\r\n setContextGroupsSort: (sortBy, sortDirection) => {\r\n return dispatch({\r\n type: actions.SET_CONTEXT_GROUPS_SORT,\r\n sortBy,\r\n sortDirection\r\n });\r\n },\r\n moveConversationToContextGroup: (companyId, perspectiveId, contextGroupId, conversationId, remapIdentifiers) => {\r\n return dispatch(\r\n moveConversationToContextGroup(companyId, perspectiveId, contextGroupId, conversationId, remapIdentifiers)\r\n );\r\n },\r\n bulkMoveConversationsToContextGroup: (\r\n companyId,\r\n perspectiveId,\r\n contextGroupId,\r\n conversationIds,\r\n remapIdentifiers\r\n ) => {\r\n return dispatch(\r\n bulkMoveConversationsToContextGroup(companyId, perspectiveId, contextGroupId, conversationIds, remapIdentifiers)\r\n );\r\n },\r\n getContextGroupsSortByDisplayName: () => {\r\n return dispatch(getContextGroupsSortByDisplayName());\r\n },\r\n postContextGroup: (contextGroupId, displayName, isHidden) => {\r\n return dispatch(postContextGroup(contextGroupId, displayName, isHidden));\r\n },\r\n getContextGroupName: (contextGroupId, includeId, unknownValue) => {\r\n return dispatch(getContextGroupName(contextGroupId, includeId, unknownValue));\r\n },\r\n getContextGroupNameFromCompanyId: companyId => {\r\n return dispatch(getContextGroupNameFromCompanyId(companyId));\r\n },\r\n hideContextGroup: contextGroupId => {\r\n return dispatch(postContextGroup(contextGroupId, \"\", true));\r\n },\r\n unhideContextGroup: contextGroupId => {\r\n return dispatch(postContextGroup(contextGroupId, \"\", false));\r\n },\r\n isCompanyNew: (companyId, perspective, currentCompanyId) => {\r\n return dispatch(isCompanyNew(companyId, perspective, currentCompanyId));\r\n },\r\n isContextGroupNew: contextGroupId => {\r\n return dispatch(isContextGroupNew(contextGroupId));\r\n }\r\n});\r\n","// import moment from \"moment\";\r\n\r\nimport { actions, SortBy, SortDirection } from \"./contextGroups-actions\";\r\nimport { compareDates, compareStrings } from \"../lib/utils\";\r\n\r\nexport const defaultConversationsState = {\r\n companyId: null,\r\n perspectiveId: null,\r\n gettingContextGroups: false,\r\n gotContextGroups: false,\r\n failedGetContextGroups: false,\r\n\r\n movingConversation: false,\r\n movedConversation: false,\r\n moveConversationFailed: false,\r\n\r\n bulkMovingConversation: false,\r\n bulkMovedConversation: false,\r\n bulkMoveConversationFailed: false,\r\n\r\n value: [],\r\n contextGroupsMaps: {},\r\n contextGroupsStats: {},\r\n contextGroupsSortBy: SortBy.ActiveCount,\r\n contextGroupsSortDirection: SortDirection.Descending\r\n};\r\n\r\nfunction contextGroupsReducer(state = defaultConversationsState, action) {\r\n if (window.logToConsole) console.log(action);\r\n\r\n if (action.type === actions.SELECT_COMPANY) {\r\n if (state.companyId === action.companyId) return state;\r\n return { ...defaultConversationsState, companyId: action.companyId, contextGroupsStats: state.contextGroupsStats };\r\n }\r\n\r\n switch (action.type) {\r\n case actions.GETTING_CONTEXT_GROUPS:\r\n if (state.companyId !== action.companyId || state.perspectiveId !== action.perspectiveId) {\r\n return {\r\n ...defaultConversationsState,\r\n gettingContextGroups: true,\r\n gotContextGroups: false,\r\n failedGetContextGroups: false,\r\n companyId: action.companyId,\r\n perspectiveId: action.perspectiveId,\r\n contextGroupsStats: state.contextGroupsStats\r\n };\r\n }\r\n return { ...state, gettingContextGroups: true, gotContextGroups: false, failedGetContextGroups: false };\r\n case actions.GET_CONTEXT_GROUPS_FAILED:\r\n if (state.companyId !== action.companyId || state.perspectiveId !== action.perspectiveId) {\r\n return state;\r\n }\r\n return { ...state, gettingContextGroups: false, gotContextGroups: false, failedGetContextGroups: true };\r\n\r\n case actions.GOT_CONTEXT_GROUPS:\r\n if (state.companyId !== action.companyId || state.perspectiveId !== action.perspectiveId) {\r\n return state;\r\n }\r\n\r\n // let currentcontextGroups = state.value;\r\n // let currentMostRecent = moment.max(\r\n // currentcontextGroups.map(contextGroup => {\r\n // return moment(contextGroup.mostRecent);\r\n // })\r\n // );\r\n // let mostRecent = moment.max(\r\n // action.data.map(contextGroup => {\r\n // return moment(contextGroup.mostRecent);\r\n // })\r\n // );\r\n\r\n let newState = {\r\n ...state,\r\n gettingContextGroups: false,\r\n gotContextGroups: true,\r\n failedGetContextGroups: false\r\n };\r\n\r\n //TODO: Add polling to context groups and do not update store if the times are same\r\n //if (mostRecent.isSame(currentMostRecent) === false || action.data.length !== currentcontextGroups.length) {\r\n newState.value = [...action.data];\r\n newState.contextGroupsMaps = {};\r\n\r\n sortContextGroupsBy(action.data, state.contextGroupsSortBy, state.contextGroupsSortDirection);\r\n newState.value = action.data;\r\n action.data.forEach(contextGroup => {\r\n newState.contextGroupsMaps[contextGroup.contextGroupId] = contextGroup;\r\n });\r\n //}\r\n return newState;\r\n\r\n case actions.GOT_CONTEXT_GROUPS_STATS:\r\n return { ...state, contextGroupsStats: action.data };\r\n case actions.UPDATE_PERSPECTIVE_CONTEXT_GROUPS_STATS:\r\n return {\r\n ...state,\r\n contextGroupsStats: { ...state.contextGroupsStats, [action.perspectiveId]: { ...action.stats } }\r\n };\r\n\r\n case actions.MOVING_CONVERSATION_TO_CONTEXT_GROUP:\r\n return { ...state, movingConversation: true, movedConversation: false, moveConversationFailed: false };\r\n case actions.MOVED_CONVERSATION_TO_CONTEXT_GROUP:\r\n return { ...state, movingConversation: false, movedConversation: true, moveConversationFailed: false };\r\n case actions.MOVE_CONVERSATION_TO_CONTEXT_GROUP_FAILED:\r\n return { ...state, movingConversation: false, movedConversation: false, moveConversationFailed: true };\r\n\r\n case actions.BULK_MOVING_CONVERSATIONS_TO_CONTEXT_GROUP:\r\n return {\r\n ...state,\r\n bulkMovingConversation: true,\r\n bulkMovedConversation: false,\r\n bulkMoveConversationFailed: false\r\n };\r\n case actions.BULK_MOVED_CONVERSATIONS_TO_CONTEXT_GROUP:\r\n return {\r\n ...state,\r\n bulkMovingConversation: false,\r\n bulkMovedConversation: true,\r\n bulkMoveConversationFailed: false\r\n };\r\n case actions.BULK_MOVE_CONVERSATIONS_TO_CONTEXT_GROUP_FAILED:\r\n return {\r\n ...state,\r\n bulkMovingConversation: false,\r\n bulkMovedConversation: false,\r\n bulkMoveConversationFailed: true\r\n };\r\n case actions.SET_CONTEXT_GROUPS_SORT_BY:\r\n if (state.contextGroupsSortBy === action.sortBy) {\r\n return state;\r\n }\r\n\r\n let sortByValue = [...state.value];\r\n sortContextGroupsBy(sortByValue, action.sortBy);\r\n\r\n return { ...state, contextGroupsSortBy: action.sortBy, value: sortByValue };\r\n case actions.SET_CONTEXT_GROUPS_SORT_DIRECTION:\r\n if (state.contextGroupsSortDirection === action.sortDirection) {\r\n return state;\r\n }\r\n\r\n let sortDirectionValue = [...state.value];\r\n sortContextGroupsBy(sortDirectionValue, this.state.contextGroupsSortBy, action.sortDirection);\r\n\r\n return { ...state, contextGroupsSortDirection: action.sortDirection, value: sortDirectionValue };\r\n case actions.SET_CONTEXT_GROUPS_SORT:\r\n if (state.contextGroupsSortBy === action.sortBy && state.contextGroupsSortDirection === action.sortDirection) {\r\n return state;\r\n }\r\n\r\n let sortValue = [...state.value];\r\n sortContextGroupsBy(\r\n sortValue,\r\n action.sortBy || state.contextGroupsSortBy,\r\n action.sortDirection || state.contextGroupsSortDirection\r\n );\r\n return {\r\n ...state,\r\n contextGroupsSortBy: action.sortBy,\r\n contextGroupsSortDirection: action.sortDirection,\r\n value: sortValue\r\n };\r\n case actions.CLEAR_DATA:\r\n return defaultConversationsState;\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nfunction compareActiveCounts(a, b) {\r\n let aCount = a.activeCounts.unassigned + a.activeCounts.assignedToMe + a.activeCounts.assignedToOthers;\r\n let bCount = b.activeCounts.unassigned + b.activeCounts.assignedToMe + b.activeCounts.assignedToOthers;\r\n\r\n if (aCount === bCount) {\r\n return 0;\r\n } else if (aCount < bCount) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n}\r\n\r\nfunction sortContextGroupsBy(contextGroups, sortBy, givenSortDirection) {\r\n switch (sortBy) {\r\n case SortBy.ActiveCount:\r\n contextGroups.sort((a, b) => {\r\n let result;\r\n if (givenSortDirection === SortDirection.Ascending) {\r\n result = 0 + compareActiveCounts(a, b);\r\n } else {\r\n result = 0 - compareActiveCounts(a, b);\r\n }\r\n if (result === 0) {\r\n result = 0 - compareDates(a.mostRecent, b.mostRecent);\r\n }\r\n return result;\r\n });\r\n break;\r\n case SortBy.Name:\r\n contextGroups.sort((a, b) => {\r\n if (givenSortDirection === SortDirection.Ascending) {\r\n return 0 - compareStrings(a.displayName, b.displayName);\r\n } else {\r\n return 0 + compareStrings(a.displayName, b.displayName);\r\n }\r\n });\r\n break;\r\n case SortBy.MostRecent:\r\n contextGroups.sort((a, b) => {\r\n if (givenSortDirection === SortDirection.Ascending) {\r\n return 0 + compareDates(a.mostRecent, b.mostRecent);\r\n } else {\r\n return 0 - compareDates(a.mostRecent, b.mostRecent);\r\n }\r\n });\r\n break;\r\n case SortBy.Hidden:\r\n contextGroups.sort((a, b) => {\r\n return 0 + compareStrings(a.companyName, b.companyName);\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport default contextGroupsReducer;\r\n","import data from \"../lib/data\";\r\nimport moment from \"moment\";\r\nimport { actions as GeneralActions } from \"./general-actions\";\r\nimport { handlePromiseError } from \"./error-actions\";\r\nimport { isEmpty, removeLeading, saveBlobAsDownload, debounce } from \"../lib/utils\";\r\nimport Resources from \"../lib/resources\";\r\n\r\nexport const actions = {\r\n ...GeneralActions,\r\n\r\n SET_WITH_COMPANY_ID: \"SET_WITH_COMPANY_ID\",\r\n\r\n FETCHING_ALL_INVOICES: \"FETCHING_ALL_INVOICES\",\r\n FETCHED_ALL_INVOICES: \"FETCHED_ALL_INVOICES\",\r\n FETCH_ALL_INVOICES_FAILED: \"FETCH_ALL_INVOICES_FAILED\",\r\n\r\n FETCHING_CLOSED_INVOICES: \"FETCHING_CLOSED_INVOICES\",\r\n FETCHED_CLOSED_INVOICES: \"FETCHED_CLOSED_INVOICES\",\r\n FETCH_CLOSED_INVOICES_FAILED: \"FETCH_CLOSED_INVOICES_FAILED\",\r\n\r\n FETCHING_CLOSED_INVOICES_TEMPLATE: \"FETCHING_CLOSED_INVOICES_TEMPLATE\",\r\n FETCHED_CLOSED_INVOICES_TEMPLATE: \"FETCHED_CLOSED_INVOICES_TEMPLATE\",\r\n FETCH_CLOSED_INVOICES_TEMPLATE_FAILED: \"FETCH_CLOSED_INVOICES_TEMPLATE_FAILED\",\r\n\r\n UPDATE_CLOSED_INVOICES_SORT: \"UPDATE_CLOSED_INVOICES_SORT\",\r\n UPDATE_CLOSED_INVOICES_DATE: \"UPDATE_CLOSED_INVOICES_DATE\",\r\n\r\n FETCHING_OPEN_INVOICES: \"FETCHING_OPEN_INVOICES\",\r\n FETCHED_OPEN_INVOICES: \"FETCHED_OPEN_INVOICES\",\r\n FETCH_OPEN_INVOICES_FAILED: \"FETCH_OPEN_INVOICES_FAILED\",\r\n\r\n FETCHING_OPEN_INVOICES_TEMPLATE: \"FETCHING_OPEN_INVOICES_TEMPLATE\",\r\n FETCHED_OPEN_INVOICES_TEMPLATE: \"FETCHED_OPEN_INVOICES_TEMPLATE\",\r\n FETCH_OPEN_INVOICES_TEMPLATE_FAILED: \"FETCH_OPEN_INVOICES_TEMPLATE_FAILED\",\r\n\r\n UPDATE_OPEN_INVOICES_SORT: \"UPDATE_OPEN_INVOICES_SORT\",\r\n UPDATE_OPEN_INVOICES_DATE: \"UPDATE_OPEN_INVOICES_DATE\",\r\n UPDATE_OPEN_INVOICES_UPPER_TABLE_SORT: \"UPDATE_OPEN_INVOICES_UPPER_TABLE_SORT\",\r\n\r\n FETCHING_PAYMENTS: \"FETCHING_PAYMENTS\",\r\n FETCHED_PAYMENTS: \"FETCHED_PAYMENTS\",\r\n FETCH_PAYMENTS_FAILED: \"FETCH_PAYMENTS_FAILED\",\r\n\r\n FETCHING_UNAPPLIED_PAYMENTS: \"FETCHING_UNAPPLIED_PAYMENTS\",\r\n FETCHED_UNAPPLIED_PAYMENTS: \"FETCHED_UNAPPLIED_PAYMENTS\",\r\n FETCH_UNAPPLIED_PAYMENTS_FAILED: \"FETCH_UNAPPLIED_PAYMENTS_FAILED\",\r\n UPDATE_UNAPPLIED_PAYMENTS_SORT: \"UPDATE_UNAPPLIED_PAYMENTS_SORT\",\r\n\r\n FETCHING_PAYMENTS_TEMPLATE: \"FETCHING_PAYMENTS_TEMPLATE\",\r\n FETCHED_PAYMENTS_TEMPLATE: \"FETCHED_PAYMENTS_TEMPLATE\",\r\n FETCH_PAYMENTS_TEMPLATE_FAILED: \"FETCH_PAYMENTS_TEMPLATE_FAILED\",\r\n\r\n UPDATE_PAYMENTS_SORT: \"UPDATE_PAYMENTS_SORT\",\r\n UPDATE_PAYMENTS_DATE: \"UPDATE_PAYMENTS_DATE\",\r\n\r\n FETCHING_PAYMENT_INFO: \"FETCHING_PAYMENT_INFO\",\r\n FETCHED_PAYMENT_INFO: \"FETCHED_PAYMENT_INFO\",\r\n FETCH_PAYMENT_INFO_FAILED: \"FETCH_PAYMENT_INFO_FAILED\",\r\n\r\n MAKING_PAYMENT: \"MAKING_PAYMENT\",\r\n MADE_PAYMENT: \"MADE_PAYMENT\",\r\n MAKE_PAYMENT_FAILED: \"MAKE_PAYMENT_FAILED\",\r\n\r\n ADDING_PAYMENT_METHOD: \"ADDING_PAYMENT_METHOD\",\r\n ADDED_PAYMENT_METHOD: \"ADDED_PAYMENT_METHOD\",\r\n ADD_PAYMENT_METHOD_FAILED: \"ADD_PAYMENT_METHOD_FAILED\",\r\n\r\n DELETING_PAYMENT_METHOD: \"DELETING_PAYMENT_METHOD\",\r\n DELETED_PAYMENT_METHOD: \"DELETED_PAYMENT_METHOD\",\r\n DELETE_PAYMENT_METHOD_FAILED: \"DELETE_PAYMENT_METHOD_FAILED\",\r\n\r\n FETCHING_TABLE_EXPORT: \"FETCHING_TABLE_EXPORT\",\r\n FETCHED_TABLE_EXPORT: \"FETCHED_TABLE_EXPORT\",\r\n FETCH_TABLE_EXPORT_FAILED: \"FETCH_TABLE_EXPORT_FAILED\",\r\n\r\n FETCHING_CURRENCIES: \"FETCHING_CURRENCIES\",\r\n FETCHED_CURRENCIES: \"FETCHED_CURRENCIES\",\r\n FETCH_CURRENCIES_FAILED: \"FETCH_CURRENCIES_FAILED\",\r\n SET_SELECTED_CURRENCY: \"SET_SELECTED_CURRENCY\",\r\n\r\n FETCHING_CURRENCY_STATS: \"FETCHING_CURRENCY_STATS\",\r\n FETCHED_CURRENCY_STATS: \"FETCHED_CURRENCY_STATS\",\r\n FETCH_CURRENCY_STATS_FAILED: \"FETCH_CURRENCY_STATS_FAILED\",\r\n\r\n FETCHING_STATEMENTS_SEARCH_RESULTS: \"FETCHING_STATEMENTS_SEARCH_RESULTS\",\r\n FETCHED_STATEMENTS_SEARCH_RESULTS: \"FETCHED_STATEMENTS_SEARCH_RESULTS\",\r\n FETCH_STATEMENTS_SEARCH_RESULTS_FAILED: \"FETCH_STATEMENTS_SEARCH_RESULTS_FAILED\",\r\n\r\n SET_OPEN_INVOICES_TO_SEARCH_RESULT: \"SET_OPEN_INVOICES_TO_SEARCH_RESULT\",\r\n SET_CLOSED_INVOICES_TO_SEARCH_RESULT: \"SET_CLOSED_INVOICES_TO_SEARCH_RESULT\",\r\n SET_PAYMENTS_TO_SEARCH_RESULT: \"SET_PAYMENTS_TO_SEARCH_RESULT\",\r\n\r\n POSTING_AUTO_PAY_CONFIG: \"POSTING_AUTO_PAY_CONFIG\",\r\n POSTED_AUTO_PAY_CONFIG: \"POSTED_AUTO_PAY_CONFIG\",\r\n FAILED_POST_AUTO_PAY_CONFIG: \"FAILED_POST_AUTO_PAY_CONFIG\",\r\n\r\n SET_SELECTED_KEYS: \"SET_SELECTED_KEYS\",\r\n\r\n CLEAR_STATEMENTS_SEARCH_RESULTS: \"CLEAR_STATEMENTS_SEARCH_RESULTS\"\r\n};\r\n\r\nconst debouncedSearchResultsFetch = debounce(\r\n (endpoint, dispatch, searchTerm) =>\r\n data\r\n .get(endpoint)\r\n .then(res =>\r\n dispatch({\r\n type: actions.FETCHED_STATEMENTS_SEARCH_RESULTS,\r\n searchResults: res.data.value,\r\n searchTerm\r\n })\r\n )\r\n .catch(error => {\r\n dispatch({ type: actions.FETCH_STATEMENTS_SEARCH_RESULTS_FAILED });\r\n handlePromiseError(error, \"Fetching search results failed.\", \"search results\");\r\n }),\r\n 400\r\n);\r\n\r\nconst fetchStatementSearchResults = request => (dispatch, getState) => {\r\n const { companyId, perspectiveId, withCompanyId, fromDate, toDate, searchTerm, type = \"all\", allAccountsSelected } = request;\r\n\r\n if (isEmpty(searchTerm)) {\r\n return dispatch({ type: actions.CLEAR_STATEMENTS_SEARCH_RESULTS });\r\n }\r\n\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/${type}`;\r\n\r\n if (!isEmpty(fromDate)) {\r\n endpoint = `${endpoint}/from/${fromDate}`;\r\n if (!isEmpty(toDate)) {\r\n endpoint = `${endpoint}/to/${toDate}`;\r\n }\r\n }\r\n\r\n endpoint = `${endpoint}?$top=${getState().general.pageRowCount}&$filter=Id%20LIKE%20${encodeURI(searchTerm)}&$allAccountsSelected=${!!allAccountsSelected}`;\r\n\r\n dispatch({ type: actions.FETCHING_STATEMENTS_SEARCH_RESULTS, searchTerm });\r\n debouncedSearchResultsFetch(endpoint, dispatch, searchTerm);\r\n};\r\n\r\nconst fetchAllInvoices = (companyId, perspectiveId, withCompanyId, options) => (dispatch, getState) => {\r\n const { fromDate = null, toDate = null, top, skip, filter } = options;\r\n const state = getState().statements;\r\n if (state.isFetchingOpenInvoices === true && state.withCompanyId === withCompanyId) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_ALL_INVOICES, withCompanyId });\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/all`;\r\n if (!isEmpty(fromDate)) {\r\n endpoint = `${endpoint}/from/${fromDate}`;\r\n if (!isEmpty(toDate)) {\r\n endpoint = `${endpoint}/to/${toDate}`;\r\n }\r\n }\r\n endpoint = `${endpoint}?$orderBy=${state.openInvoicesSortBy}%20${state.openInvoicesSortDirection}${\r\n state.openInvoicesSortBy === \"Id\" ? \"\" : \",%20Id%20desc\"\r\n }`;\r\n\r\n if (!isEmpty(top)) {\r\n endpoint = `${endpoint}&$top=${top}`;\r\n }\r\n if (!isEmpty(skip)) {\r\n endpoint = `${endpoint}&$skip=${skip}`;\r\n }\r\n\r\n if (!isEmpty(filter)) {\r\n endpoint += `&$filter=${filter}`;\r\n }\r\n\r\n return data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_ALL_INVOICES,\r\n openInvoices: response.data.value,\r\n count: response.data.count,\r\n skip: skip || 0,\r\n totalAmount: response.data.totalAmount,\r\n nextLink: response.data.nextLink,\r\n withCompanyId\r\n });\r\n return response.data;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"Fetching invoices failed.\", \"invoice information\");\r\n dispatch({ type: actions.FETCH_ALL_INVOICES_FAILED });\r\n });\r\n};\r\n\r\nconst fetchClosedInvoices = (\r\n companyId,\r\n perspectiveId,\r\n withCompanyId,\r\n fromDate = null,\r\n toDate = null,\r\n top,\r\n skip,\r\n filter,\r\n allAccountsSelected\r\n) => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.isFetchingClosedInvoices === true && state.withCompanyId === withCompanyId) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.FETCHING_CLOSED_INVOICES, withCompanyId });\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/closed`;\r\n\r\n if (!isEmpty(fromDate)) {\r\n endpoint = `${endpoint}/from/${fromDate}`;\r\n if (!isEmpty(toDate)) {\r\n endpoint = `${endpoint}/to/${toDate}`;\r\n }\r\n }\r\n\r\n endpoint = `${endpoint}?$orderBy=${state.closedInvoicesSortBy}%20${state.closedInvoicesSortDirection}${\r\n state.closedInvoicesSortBy.toLowerCase() === \"id\" ? \"\" : \",%20Id%20desc\"\r\n }`;\r\n\r\n if (!isEmpty(top)) {\r\n endpoint = `${endpoint}&$top=${top}`;\r\n }\r\n if (!isEmpty(skip)) {\r\n endpoint = `${endpoint}&$skip=${skip}`;\r\n }\r\n\r\n const currency = state.selectedCurrency;\r\n\r\n if (!isEmpty(filter)) {\r\n endpoint = `${endpoint}&$filter=${filter}%20AND%20CurrencyID%20=%20${currency}`;\r\n } else {\r\n endpoint = `${endpoint}&$filter=CurrencyID%20=%20${currency}`;\r\n }\r\n\r\n endpoint = `${endpoint}&$allAccountsSelected=${!!allAccountsSelected}`;\r\n\r\n data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_CLOSED_INVOICES,\r\n closedInvoices: response.data.value,\r\n count: response.data.count,\r\n skip: skip || 0,\r\n totalAmount: response.data.totalAmount,\r\n totalAmountCurrentYear: response.data.totalAmountCurrentYear,\r\n totalAmountPastYear: response.data.totalAmountPastYear,\r\n nextLink: response.data.nextLink,\r\n withCompanyId,\r\n currency,\r\n response: response.data\r\n });\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.FETCH_CLOSED_INVOICES_FAILED });\r\n handlePromiseError(error, \"Fetching closed invoices failed.\", \"invoice information\");\r\n });\r\n};\r\n\r\nconst fetchNextClosedInvoices = () => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.isFetchingClosedInvoices === true || isEmpty(state.closedInvoicesNextLink)) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_CLOSED_INVOICES, isNextLink: true });\r\n data\r\n .get(removeLeading(\"/\", state.closedInvoicesNextLink))\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_CLOSED_INVOICES,\r\n closedInvoices: response.data.value,\r\n count: response.data.count,\r\n totalAmount: response.data.totalAmount,\r\n nextLink: response.data.nextLink,\r\n withCompanyId: state.withCompanyId,\r\n response: response.data\r\n });\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"Fetching closed invoices failed.\", \"invoice information\");\r\n dispatch({ type: actions.FETCH_CLOSED_INVOICES_FAILED });\r\n });\r\n};\r\n\r\nconst fetchClosedInvoicesTemplate = (\r\n companyId,\r\n perspectiveId,\r\n withCompanyId,\r\n filters = { fromDate: null, toDate: null, invoiceIds: null }\r\n) => (dispatch, getState) => {\r\n const { fromDate, toDate, invoiceIds } = filters;\r\n\r\n dispatch({ type: actions.FETCHING_CLOSED_INVOICES_TEMPLATE });\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/closed`;\r\n if (!isEmpty(fromDate)) {\r\n endpoint = `${endpoint}/from/${fromDate}`;\r\n if (!isEmpty(toDate)) {\r\n endpoint = `${endpoint}/to/${toDate}`;\r\n }\r\n }\r\n\r\n endpoint = `${endpoint}/template`;\r\n\r\n if (Array.isArray(invoiceIds) && invoiceIds.length > 0) {\r\n endpoint = `${endpoint}?$filter=Id%20in%20${invoiceIds.join()}`;\r\n }\r\n\r\n return data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_CLOSED_INVOICES_TEMPLATE\r\n });\r\n return response.data;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"Fetching closed invoices template failed.\", \"closed invoice template\");\r\n dispatch({ type: actions.FETCH_CLOSED_INVOICES_TEMPLATE_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nconst setSelectedKeys = (keys, rows) => (dispatch) => {\r\n dispatch({ type: actions.SET_SELECTED_KEYS, keys, rows });\r\n}\r\n\r\nconst fetchOpenInvoices = (companyId, perspectiveId, withCompanyId, fromDate, toDate = null, top, skip, selectAll, filter, allAccountsSelected) => (\r\n dispatch,\r\n getState\r\n) => {\r\n const state = getState().statements;\r\n\r\n if (state.isFetchingOpenInvoices === true && state.withCompanyId === withCompanyId) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.FETCHING_OPEN_INVOICES, withCompanyId });\r\n\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/open`;\r\n\r\n if (!isEmpty(fromDate)) {\r\n endpoint = `${endpoint}/from/${fromDate}`;\r\n\r\n if (!isEmpty(toDate)) {\r\n endpoint = `${endpoint}/to/${toDate}`;\r\n }\r\n }\r\n\r\n endpoint = `${endpoint}?$orderBy=${state.openInvoicesSortBy.toLowerCase()}%20${state.openInvoicesSortDirection}${\r\n state.openInvoicesSortBy.toLowerCase() === \"id\" ? \"\" : \",%20Id%20desc\"\r\n }`;\r\n\r\n if (!isEmpty(top)) {\r\n endpoint = `${endpoint}&$top=${top}`;\r\n }\r\n\r\n if (!isEmpty(skip)) {\r\n endpoint = `${endpoint}&$skip=${skip}`;\r\n }\r\n\r\n const currency = state.selectedCurrency;\r\n\r\n if (!isEmpty(filter)) {\r\n endpoint = `${endpoint}&$filter=${filter}%20AND%20CurrencyID%20=%20${currency}`;\r\n } else {\r\n endpoint = `${endpoint}&$filter=CurrencyID%20=%20${currency}`;\r\n }\r\n\r\n endpoint = `${endpoint}&$allAccountsSelected=${!!allAccountsSelected}`;\r\n\r\n data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_OPEN_INVOICES,\r\n openInvoices: response.data.value,\r\n count: response.data.count,\r\n skip: skip || 0,\r\n totalBalance: response.data.totalBalance,\r\n pastDueCount: response.data.pastDueCount,\r\n nextLink: response.data.nextLink,\r\n withCompanyId,\r\n currency,\r\n response: response.data,\r\n selectAll\r\n });\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"Fetching open invoices failed.\", \"invoice information\");\r\n dispatch({ type: actions.FETCH_OPEN_INVOICES_FAILED });\r\n });\r\n};\r\n\r\nconst refreshOpenInvoices = () => (dispatch, getState) => {\r\n let state = getState();\r\n let {\r\n perspectives: { selectedPerspectiveId },\r\n statements: { companyId, withCompanyId, openInvoicesSkip },\r\n general: { pageRowCount }\r\n } = state;\r\n\r\n return dispatch(\r\n fetchOpenInvoices(companyId, selectedPerspectiveId, withCompanyId, null, null, pageRowCount, openInvoicesSkip)\r\n );\r\n};\r\n\r\nconst fetchNextOpenInvoices = () => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.isFetchingOpenInvoices === true || isEmpty(state.openInvoicesNextLink)) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_OPEN_INVOICES, isNextLink: true });\r\n data\r\n .get(removeLeading(\"/\", state.openInvoicesNextLink))\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_OPEN_INVOICES,\r\n openInvoices: response.data.value,\r\n count: response.data.count,\r\n totalAmount: response.data.totalAmount,\r\n nextLink: response.data.nextLink,\r\n withCompanyId: state.withCompanyId,\r\n response: response.data\r\n });\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"Fetching open invoices failed.\", \"invoice information\");\r\n dispatch({ type: actions.FETCH_OPEN_INVOICES_FAILED });\r\n });\r\n};\r\n\r\nconst fetchOpenInvoicesTemplate = (\r\n companyId,\r\n perspectiveId,\r\n withCompanyId,\r\n filters = { fromDate: null, toDate: null, invoiceIds: null }\r\n) => (dispatch, getState) => {\r\n const { fromDate, toDate, invoiceIds } = filters;\r\n\r\n dispatch({ type: actions.FETCHING_OPEN_INVOICES_TEMPLATE });\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/open`;\r\n if (!isEmpty(fromDate)) {\r\n endpoint = `${endpoint}/from/${fromDate}`;\r\n if (!isEmpty(toDate)) {\r\n endpoint = `${endpoint}/to/${toDate}`;\r\n }\r\n }\r\n\r\n endpoint = `${endpoint}/template`;\r\n\r\n if (Array.isArray(invoiceIds) && invoiceIds.length > 0) {\r\n endpoint = `${endpoint}?$filter=Id%20in%20${invoiceIds.join()}`;\r\n }\r\n\r\n return data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_OPEN_INVOICES_TEMPLATE\r\n });\r\n return response.data;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"Fetching open invoices template failed.\", \"open invoice template\");\r\n dispatch({ type: actions.FETCH_OPEN_INVOICES_TEMPLATE_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nconst fetchPayments = (companyId, perspectiveId, withCompanyId, fromDate = null, toDate = null, top, skip, filter, allAccountsSelected) => (\r\n dispatch,\r\n getState\r\n) => {\r\n const state = getState().statements;\r\n\r\n if (state.isFetchingPayments === true && state.withCompanyId === withCompanyId) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.FETCHING_PAYMENTS, withCompanyId });\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/payments`;\r\n\r\n if (!isEmpty(fromDate)) {\r\n endpoint = `${endpoint}/from/${fromDate}`;\r\n if (!isEmpty(toDate)) {\r\n endpoint = `${endpoint}/to/${toDate}`;\r\n }\r\n }\r\n\r\n endpoint = `${endpoint}?$orderBy=${state.paymentsSortBy.toLowerCase()}%20${state.paymentsSortDirection}${\r\n state.paymentsSortBy.toLowerCase()=== \"id\" ? \"\" : \",%20Id%20desc\"\r\n }`;\r\n\r\n if (!isEmpty(top)) {\r\n endpoint = `${endpoint}&$top=${top}`;\r\n }\r\n if (!isEmpty(skip)) {\r\n endpoint = `${endpoint}&$skip=${skip}`;\r\n }\r\n\r\n const currency = state.selectedCurrency;\r\n\r\n if (!isEmpty(filter)) {\r\n endpoint = `${endpoint}&$filter=${filter}%20AND%20CurrencyID%20=%20${currency}`;\r\n } else {\r\n endpoint = `${endpoint}&$filter=CurrencyID%20=%20${currency}`;\r\n }\r\n\r\n endpoint = `${endpoint}&$allAccountsSelected=${!!allAccountsSelected}`;\r\n\r\n data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_PAYMENTS,\r\n payments: response.data.value,\r\n count: response.data.count,\r\n skip: skip || 0,\r\n totalAmount: response.data.totalAmount,\r\n totalAmountCurrentYear: response.data.totalAmountCurrentYear,\r\n totalAmountPastYear: response.data.totalAmountPastYear,\r\n totalBalance: response.data.totalBalance,\r\n nextLink: response.data.nextLink,\r\n withCompanyId,\r\n currency,\r\n response: response.data\r\n });\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"Fetching payments failed.\", \"payment information\");\r\n dispatch({ type: actions.FETCH_PAYMENTS_FAILED });\r\n });\r\n};\r\n\r\nconst fetchNextPayments = () => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.isFetchingPayments === true || isEmpty(state.paymentsNextLink)) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_PAYMENTS, isNextLink: true });\r\n data\r\n .get(removeLeading(\"/\", state.paymentsNextLink))\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_PAYMENTS,\r\n payments: response.data.value,\r\n count: response.data.count,\r\n totalAmount: response.data.totalAmount,\r\n totalBalance: response.data.totalBalance,\r\n nextLink: response.data.nextLink,\r\n withCompanyId: state.withCompanyId,\r\n response: response.data\r\n });\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"Fetching payments failed.\", \"payment information\");\r\n dispatch({ type: actions.FETCH_PAYMENTS_FAILED });\r\n });\r\n};\r\n\r\nconst fetchUnappliedOrPendingPayments = (\r\n companyId,\r\n perspectiveId,\r\n withCompanyId,\r\n fromDate = null,\r\n toDate = null,\r\n top,\r\n skip,\r\n allAccountsSelected\r\n) => (dispatch, getState) => {\r\n const state = getState().statements;\r\n\r\n if (state.isFetchingUnappliedOrPendingPayments === true && state.withCompanyId === withCompanyId) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.FETCHING_UNAPPLIED_PAYMENTS, withCompanyId });\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/payments`;\r\n\r\n if (!isEmpty(fromDate)) {\r\n endpoint = `${endpoint}/from/${fromDate}`;\r\n if (!isEmpty(toDate)) {\r\n endpoint = `${endpoint}/to/${toDate}`;\r\n }\r\n }\r\n\r\n const currency = state.selectedCurrency;\r\n\r\n endpoint = `${endpoint}?$orderBy=${state.unappliedPaymentsSortBy.toLowerCase()}%20${state.unappliedPaymentsSortDirection}${state.unappliedPaymentsSortBy.toLowerCase() === \"id\" ? \"\" : \",%20Id%20desc\"}?$filter=(UnappliedAmt > 0 OR PaymentName LIKE 'Pending Payment') AND CurrencyID = ${currency}&$top=${top || getState().general.pageRowCount}&$allAccountsSelected=${!!allAccountsSelected}`;\r\n if (!isEmpty(skip)) {\r\n endpoint = `${endpoint}&$skip=${skip}`; \r\n }\r\n\r\n data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_UNAPPLIED_PAYMENTS,\r\n unappliedOrPendingPayments: response.data.value,\r\n totalBalance: response.data.totalBalance,\r\n totalAmount: response.data.totalAmount,\r\n count: response.data.count,\r\n skip: skip || 0,\r\n withCompanyId\r\n });\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"Fetching payments failed.\", \"payment information\");\r\n dispatch({ type: actions.FETCH_UNAPPLIED_PAYMENTS_FAILED });\r\n });\r\n};\r\n\r\nconst fetchPaymentsTemplate = (\r\n companyId,\r\n perspectiveId,\r\n withCompanyId,\r\n filters = { fromDate: null, toDate: null, paymentIds: null }\r\n) => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.isFetchingPaymentsTemplate === true) {\r\n return;\r\n }\r\n\r\n const { fromDate, toDate } = filters;\r\n\r\n dispatch({ type: actions.FETCHING_PAYMENTS_TEMPLATE });\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/payments`;\r\n if (!isEmpty(fromDate)) {\r\n endpoint = `${endpoint}/from/${fromDate}`;\r\n if (!isEmpty(toDate)) {\r\n endpoint = `${endpoint}/to/${toDate}`;\r\n }\r\n }\r\n\r\n endpoint = `${endpoint}/template`;\r\n\r\n return data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_PAYMENTS_TEMPLATE\r\n });\r\n return response.data;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, \"Fetching payments template failed.\", \"payments template\");\r\n dispatch({ type: actions.FETCH_PAYMENTS_TEMPLATE_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nconst fetchPaymentInfo = (companyId, withCompanyId) => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.isFetchingPaymentInfo) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.FETCHING_PAYMENT_INFO });\r\n\r\n return data\r\n .get(`v2/api/payments/from/${companyId}/to/${withCompanyId}/info`)\r\n .then(res => {\r\n dispatch({ type: actions.FETCHED_PAYMENT_INFO, paymentInfo: res.data, withCompanyId });\r\n return res;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, Resources.PaymentInfoFetchError, \"payment info\");\r\n dispatch({ type: actions.FETCH_PAYMENT_INFO_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nconst postAutoPayConfig = (companyId, withCompanyId, config) => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.postingAutoPayConfig) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.POSTING_AUTO_PAY_CONFIG });\r\n\r\n return data\r\n .post(`v2/api/payments/from/${companyId}/to/${withCompanyId}/automaticpaymentconfiguration/save`, config)\r\n .then(response => {\r\n dispatch({ type: actions.POSTED_AUTO_PAY_CONFIG });\r\n return response.data;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, Resources.AutoPayConfigurationError, \"auto pay configuration\");\r\n dispatch({ type: actions.FAILED_POST_AUTO_PAY_CONFIG });\r\n throw error;\r\n });\r\n};\r\n\r\nconst makePayment = (companyId, withCompanyId, request) => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.isMakingPayment) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.MAKING_PAYMENT });\r\n\r\n return data\r\n .post(`v2/api/payments/from/${companyId}/to/${withCompanyId}/payment`, request)\r\n .then(response => {\r\n dispatch({ type: actions.MADE_PAYMENT });\r\n return response.data;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, Resources.MakePaymentError, \"payment\");\r\n dispatch({ type: actions.MAKE_PAYMENT_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nconst addOrUpdatePaymentMethod = (companyId, withCompanyId, request) => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.isAddingPaymentMethod) {\r\n return;\r\n }\r\n\r\n const dispatchAction = { type: actions.ADDING_PAYMENT_METHOD, withCompanyId };\r\n\r\n if (request.isDefault === true && !isEmpty(request.paymentMethodId)) {\r\n dispatchAction.setAsDefault = true;\r\n dispatchAction.paymentMethodId = request.paymentMethodId;\r\n }\r\n dispatch(dispatchAction);\r\n\r\n return data\r\n .post(`v2/api/payments/from/${companyId}/to/${withCompanyId}/info/methods`, request)\r\n .then(response => {\r\n dispatch({ type: actions.ADDED_PAYMENT_METHOD });\r\n return response.data;\r\n })\r\n .catch(error => {\r\n dispatch({ type: actions.ADD_PAYMENT_METHOD_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nconst deletePaymentMethod = (companyId, withCompanyId, paymentMethodId) => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.isAddingPaymentMethod) {\r\n return;\r\n }\r\n\r\n dispatch({ type: actions.DELETING_PAYMENT_METHOD });\r\n\r\n return data\r\n .delete(`v2/api/payments/from/${companyId}/to/${withCompanyId}/info/methods/${paymentMethodId}`)\r\n .then(response => {\r\n dispatch({ type: actions.DELETED_PAYMENT_METHOD, withCompanyId, paymentMethodId });\r\n return response;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, Resources.DeletePaymentMethodError, \"payment method\");\r\n dispatch({ type: actions.DELETE_PAYMENT_METHOD_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nconst fetchTableExport = (companyId, perspectiveId, withCompanyId, tableName, top, skip = 0, onIds, options, allAccountsSelected) => (\r\n dispatch,\r\n getState\r\n) => {\r\n const state = getState().statements;\r\n if (state.fetchingExportTable) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_TABLE_EXPORT });\r\n\r\n let { fromDate, toDate, fromDueDate, toDueDate } = options;\r\n\r\n let sortBy;\r\n let sortDirection;\r\n\r\n switch (tableName) {\r\n case \"open\":\r\n sortBy = state.openInvoicesSortBy;\r\n sortDirection = state.openInvoicesSortDirection;\r\n break;\r\n case \"closed\":\r\n sortBy = state.closedInvoicesSortBy;\r\n sortDirection = state.closedInvoicesSortDirection;\r\n break;\r\n case \"payments\":\r\n sortBy = state.paymentsSortBy;\r\n sortDirection = state.paymentsSortDirection;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/${tableName}/export?$top=${100000000}&$allAccountsSelected=${!!allAccountsSelected}`;\r\n\r\n if (!isEmpty(fromDueDate)) {\r\n endpoint = `${endpoint}/from/${fromDueDate}`;\r\n if (!isEmpty(toDueDate)) {\r\n endpoint = `${endpoint}/to/${toDueDate}`;\r\n }\r\n }\r\n\r\n let filter;\r\n if (!isEmpty(fromDate) && !isEmpty(toDate) && !isEmpty(fromDueDate) && !isEmpty(toDueDate)) {\r\n filter = `${tableName === \"payments\" ? \"ProcessedDate\" : \"IssueDate\"} >= ${fromDate} and ${\r\n tableName === \"payments\" ? \"ProcessedDate\" : \"IssueDate\"\r\n } <= ${toDate}`;\r\n }\r\n\r\n if (!isEmpty(onIds)) {\r\n if (isEmpty(filter)) {\r\n filter = `Id in ${onIds.map(id => id).join(\",\")}`;\r\n } else {\r\n filter += ` and Id in ${onIds.map(id => id).join(\",\")}`;\r\n }\r\n }\r\n\r\n if (!isEmpty(sortBy) && !isEmpty(sortDirection)) {\r\n endpoint += `&$orderBy=${sortBy}%20${sortDirection}${sortBy === \"Id\" ? \"\" : \",%20Id%20desc\"}`;\r\n }\r\n\r\n return data\r\n .post(endpoint, JSON.stringify(filter), {\r\n responseType: \"arraybuffer\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n }\r\n })\r\n .then(response => {\r\n dispatch({ type: actions.FETCHED_TABLE_EXPORT });\r\n return saveBlobAsDownload(response.data, `Export ${tableName} ${moment().format(\"Y-MM-DD--HH-mm-ss\")}.xlsx`);\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, Resources.ExportTableError, \"payments\");\r\n dispatch({ type: actions.FETCH_TABLE_EXPORT_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nconst fetchCurrencies = (companyId, perspectiveId, withCompanyId) => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.fetchingCurrencies) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_CURRENCIES });\r\n\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/currencies`;\r\n\r\n return data\r\n .get(endpoint)\r\n .then(response => {\r\n dispatch({ type: actions.FETCHED_CURRENCIES, currencies: response.data });\r\n dispatch(fetchCurrencyStats(companyId, perspectiveId, withCompanyId, response.data));\r\n return response.data;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, Resources.GetCurrenciesFailure, \"currencies\");\r\n dispatch({ type: actions.FETCH_CURRENCIES_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nexport const setSelectedCurrency = currency => dispatch => {\r\n return dispatch({ type: actions.SET_SELECTED_CURRENCY, currency });\r\n};\r\n\r\nconst fetchCurrencyStats = (companyId, perspectiveId, withCompanyId, currencies) => (dispatch, getState) => {\r\n const state = getState().statements;\r\n if (state.fetchingCurrencyStats) {\r\n return;\r\n }\r\n dispatch({ type: actions.FETCHING_CURRENCY_STATS });\r\n\r\n let openInvoicesCurrencyStats = Promise.all(\r\n currencies.map(currency => {\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/open?$top=${1}&$filter=CurrencyID%20=%20${currency}&$totalsOnly=true`;\r\n return data.get(endpoint).then(response => response.data);\r\n })\r\n ).then(response => {\r\n let currencyMap = {};\r\n response.forEach((item, i) => (currencyMap[currencies[i]] = item));\r\n return currencyMap;\r\n });\r\n\r\n let closedInvoicesCurrencyStats = Promise.all(\r\n currencies.map(currency => {\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/closed?$top=${1}&$filter=CurrencyID%20=%20${currency}&$totalsOnly=true`;\r\n return data.get(endpoint).then(response => response.data);\r\n })\r\n ).then(response => {\r\n let currencyMap = {};\r\n response.forEach((item, i) => (currencyMap[currencies[i]] = item));\r\n return currencyMap;\r\n });\r\n\r\n let paymentsInvoicesCurrencyStats = Promise.all(\r\n currencies.map(currency => {\r\n let endpoint = `v2/api/statement/${companyId}/${perspectiveId}/with/${withCompanyId}/payments?$top=${1}&$filter=CurrencyID%20=%20${currency}&$totalsOnly=true`;\r\n return data.get(endpoint).then(response => response.data);\r\n })\r\n ).then(response => {\r\n let currencyMap = {};\r\n response.forEach((item, i) => (currencyMap[currencies[i]] = item));\r\n return currencyMap;\r\n });\r\n return Promise.all([openInvoicesCurrencyStats, closedInvoicesCurrencyStats, paymentsInvoicesCurrencyStats])\r\n .then(response => {\r\n dispatch({\r\n type: actions.FETCHED_CURRENCY_STATS,\r\n openInvoicesCurrencyStats: response[0],\r\n closedInvoicesCurrencyStats: response[1],\r\n paymentsCurrencyStats: response[2]\r\n });\r\n return response;\r\n })\r\n .catch(error => {\r\n handlePromiseError(error, Resources.GetCurrenciesFailure, \"currencies\");\r\n dispatch({ type: actions.FETCH_CURRENCY_STATS_FAILED });\r\n throw error;\r\n });\r\n};\r\n\r\nexport const dispatchToProps = dispatch => ({\r\n setWithCompanyId: withCompanyId => {\r\n return dispatch({ type: actions.SET_WITH_COMPANY_ID, withCompanyId });\r\n },\r\n clearStatementsSearchResults: () => {\r\n dispatch({ type: actions.CLEAR_STATEMENTS_SEARCH_RESULTS });\r\n },\r\n fetchStatementSearchResults: request => {\r\n dispatch(fetchStatementSearchResults(request));\r\n },\r\n setOpenInvoicesToSearchResult: invoices => {\r\n dispatch({ type: actions.SET_OPEN_INVOICES_TO_SEARCH_RESULT, openInvoices: invoices });\r\n },\r\n setClosedInvoicesToSearchResult: invoices => {\r\n dispatch({ type: actions.SET_CLOSED_INVOICES_TO_SEARCH_RESULT, closedInvoices: invoices });\r\n },\r\n setPaymentsToSearchResult: invoices => {\r\n dispatch({ type: actions.SET_PAYMENTS_TO_SEARCH_RESULT, payments: invoices });\r\n },\r\n fetchAllInvoices: (companyId, perspectiveId, withCompanyId, options) => {\r\n return dispatch(fetchAllInvoices(companyId, perspectiveId, withCompanyId, options));\r\n },\r\n fetchClosedInvoices: (companyId, perspectiveId, withCompanyId, fromDate, toDate, top, skip, filter, allAccountsSelected) => {\r\n dispatch(fetchClosedInvoices(companyId, perspectiveId, withCompanyId, fromDate, toDate, top, skip, filter, allAccountsSelected));\r\n },\r\n fetchNextClosedInvoices: () => {\r\n dispatch(fetchNextClosedInvoices());\r\n },\r\n fetchClosedInvoicesTemplate: (companyId, perspectiveId, withCompanyId, fromDate, toDate) => {\r\n return dispatch(fetchClosedInvoicesTemplate(companyId, perspectiveId, withCompanyId, fromDate, toDate));\r\n },\r\n updateClosedInvoicesSort: (sortBy, sortDirection) => {\r\n return dispatch({ type: actions.UPDATE_CLOSED_INVOICES_SORT, sortBy, sortDirection });\r\n },\r\n updateClosedInvoicesDate: (fromDate, toDate, dueByFromDate, dueByToDate) => {\r\n return dispatch({ type: actions.UPDATE_CLOSED_INVOICES_DATE, fromDate, toDate, dueByFromDate, dueByToDate });\r\n },\r\n fetchOpenInvoices: (companyId, perspectiveId, withCompanyId, fromDate, toDate, top, skip, selectAll, filter, allAccountsSelected) => {\r\n dispatch(fetchOpenInvoices(companyId, perspectiveId, withCompanyId, fromDate, toDate, top, skip, selectAll, filter, allAccountsSelected));\r\n },\r\n setSelectedKeys: (key, row) => {\r\n dispatch(setSelectedKeys(key, row));\r\n },\r\n refreshOpenInvoices: () => {\r\n dispatch(refreshOpenInvoices());\r\n },\r\n fetchNextOpenInvoices: () => {\r\n dispatch(fetchNextOpenInvoices());\r\n },\r\n fetchOpenInvoicesTemplate: (companyId, perspectiveId, withCompanyId, fromDate, toDate) => {\r\n return dispatch(fetchOpenInvoicesTemplate(companyId, perspectiveId, withCompanyId, fromDate, toDate));\r\n },\r\n updateOpenInvoicesSort: (sortBy, sortDirection) => {\r\n return dispatch({ type: actions.UPDATE_OPEN_INVOICES_SORT, sortBy, sortDirection });\r\n },\r\n updateOpenInvoicesUpperTableSort: (sortBy, sortDirection) => {\r\n return dispatch({ type: actions.UPDATE_OPEN_INVOICES_UPPER_TABLE_SORT, sortBy, sortDirection });\r\n },\r\n\r\n updateOpenInvoicesDate: (fromDate, toDate, dueByFromDate, dueByToDate) => {\r\n return dispatch({ type: actions.UPDATE_OPEN_INVOICES_DATE, fromDate, toDate, dueByFromDate, dueByToDate });\r\n },\r\n\r\n fetchPaymentInfo: (companyId, withCompanyId) => {\r\n return dispatch(fetchPaymentInfo(companyId, withCompanyId));\r\n },\r\n postAutoPayConfig: (companyId, withCompanyId, config) => {\r\n return dispatch(postAutoPayConfig(companyId, withCompanyId, config));\r\n },\r\n\r\n fetchPayments: (companyId, perspectiveId, withCompanyId, fromDate, toDate, top, skip, filter, allAccountsSelected) => {\r\n dispatch(fetchPayments(companyId, perspectiveId, withCompanyId, fromDate, toDate, top, skip, filter, allAccountsSelected));\r\n },\r\n fetchUnappliedOrPendingPayments: (companyId, perspectiveId, withCompanyId, fromDate, toDate, top, skip, allAccountsSelected) => {\r\n dispatch(fetchUnappliedOrPendingPayments(companyId, perspectiveId, withCompanyId, fromDate, toDate, top, skip, allAccountsSelected));\r\n },\r\n fetchNextPayments: () => {\r\n dispatch(fetchNextPayments());\r\n },\r\n fetchPaymentsTemplate: (companyId, perspectiveId, withCompanyId, fromDate, toDate) => {\r\n return dispatch(fetchPaymentsTemplate(companyId, perspectiveId, withCompanyId, fromDate, toDate));\r\n },\r\n updatePaymentsSort: (sortBy, sortDirection) => {\r\n return dispatch({ type: actions.UPDATE_PAYMENTS_SORT, sortBy, sortDirection });\r\n },\r\n updatePaymentsDate: (fromDate, toDate) => {\r\n return dispatch({ type: actions.UPDATE_PAYMENTS_DATE, fromDate, toDate });\r\n },\r\n\r\nupdateUnappliedPaymentsSort: (sortBy, sortDirection) => {\r\n return dispatch({ type: actions.UPDATE_UNAPPLIED_PAYMENTS_SORT, sortBy, sortDirection });\r\n },\r\n makePayment: (companyId, withCompanyId, request) => {\r\n return dispatch(makePayment(companyId, withCompanyId, request));\r\n },\r\n addOrUpdatePaymentMethod: (companyId, withCompanyId, request) => {\r\n return dispatch(addOrUpdatePaymentMethod(companyId, withCompanyId, request));\r\n },\r\n deletePaymentMethod: (companyId, withCompanyId, paymentMethodId) => {\r\n return dispatch(deletePaymentMethod(companyId, withCompanyId, paymentMethodId));\r\n },\r\n fetchTableExport: (companyId, perspectiveId, withCompanyId, tableName, top, skip, onIds, options, allAccountsSelected) => {\r\n return dispatch(fetchTableExport(companyId, perspectiveId, withCompanyId, tableName, top, skip, onIds, options, allAccountsSelected));\r\n },\r\n fetchCurrencies: (companyId, perspectiveId, withCompanyId) => {\r\n return dispatch(fetchCurrencies(companyId, perspectiveId, withCompanyId));\r\n },\r\n setSelectedCurrency: currency => {\r\n return dispatch(setSelectedCurrency(currency));\r\n }\r\n});\r\n","import { actions } from \"./statements-actions\";\r\nimport { includes, updateSelectedRows } from \"../lib/utils\";\r\n\r\nexport const defaultStatementsState = {\r\n fetchingAllInvoices: false,\r\n fetchedAllInvoices: false,\r\n fetchAllInvoicesFailed: false,\r\n\r\n closedInvoices: [],\r\n closedInvoicesCount: null,\r\n closedInvoicesSkip: 0,\r\n closedTotalAmount: null,\r\n closedTotalAmountCurrentYear: null,\r\n closedTotalAmountPastYear: null,\r\n closedFromDate: null,\r\n closedToDate: null,\r\n closedFromDueDate: null,\r\n closedToDueDate: null,\r\n closedInvoicesNextLink: null,\r\n closedInvoicesCurrency: null,\r\n closedInvoicesCurrencyStats: {},\r\n isFetchingClosedInvoices: false,\r\n fetchingClosedInvoicesFailed: null,\r\n closedInvoicesSortBy: \"IssueDate\",\r\n closedInvoicesSortDirection: \"desc\",\r\n\r\n isFetchingClosedInvoicesTemplate: false,\r\n fetchedClosedInvoicesTemplate: false,\r\n fetchingClosedInvoicesTemplateFailed: false,\r\n\r\n openInvoices: [],\r\n openInvoicesCount: null,\r\n openInvoicesSkip: 0,\r\n openTotalAmount: null,\r\n openPastDueCount: null,\r\n openFromDate: null,\r\n openToDate: null,\r\n openFromDueDate: null,\r\n openToDueDate: null,\r\n openInvoicesNextLink: null,\r\n openInvoicesCurrency: null,\r\n openInvoicesCurrencyStats: {},\r\n isFetchingOpenInvoices: false,\r\n fetchingOpenInvoicesFailed: null,\r\n openInvoicesSortBy: \"IssueDate\",\r\n openInvoicesSortDirection: \"asc\",\r\n\r\n isFetchingOpenInvoicesTemplate: false,\r\n fetchedOpenInvoicesTemplate: false,\r\n fetchingOpenInvoicesTemplateFailed: false,\r\n\r\n payments: [],\r\n paymentsCount: null,\r\n paymentsSkip: 0,\r\n paymentTotalAmount: null,\r\n paymentsTotalAmountCurrentYear: null,\r\n paymentsTotalAmountPastYear: null,\r\n paymentsTotalUnapplied: null,\r\n paymentsTotalUnappliedOrPending: null,\r\n paymentFromDate: null,\r\n paymentToDate: null,\r\n paymentsNextLink: null,\r\n paymentsCurrency: null,\r\n paymentsCurrencyStats: {},\r\n isFetchingPayments: false,\r\n fetchingPaymentsFailed: null,\r\n paymentsSortBy: \"ProcessedDate\",\r\n paymentsSortDirection: \"desc\",\r\n\r\n unappliedOrPendingPayments: [],\r\n unappliedOrPendingPaymentsCount: null,\r\n unappliedOrPendingPaymentsSkip: 0,\r\n isFetchingUnappliedOrPendingPayments: false,\r\n fetchingUnappliedOrPendingPaymentsFailed: false,\r\n unappliedPaymentsSortBy: \"processedDate\",\r\n unappliedPaymentsSortDirection: \"desc\",\r\n\r\n searchTerm: \"\",\r\n searchResults: [],\r\n isShowingSearchResult: false,\r\n fetchingStatementsSearchResults: false,\r\n fetchedStatementsSearchResults: false,\r\n failedFetchStatementsSearchResults: false,\r\n\r\n isFetchingPaymentsTemplate: false,\r\n fetchedPaymentsTemplate: false,\r\n fetchingPaymentsTemplateFailed: false,\r\n\r\n isFetchingPaymentInfo: false,\r\n fetchedPaymentInfo: false,\r\n fetchingPaymentInfoFailed: false,\r\n paymentInfo: {},\r\n\r\n postingAutoPayConfig: false,\r\n postedAutoPayConfig: false,\r\n failedPostAutoPayConfig: false,\r\n\r\n isMakingPayment: false,\r\n makingPaymentFailed: false,\r\n\r\n isAddingPaymentMethod: false,\r\n addingPaymentMethodFailed: false,\r\n\r\n fetchingExportTable: false,\r\n fetchedExportTable: false,\r\n failedFetchExportTable: false,\r\n\r\n fetchingCurrencies: false,\r\n fetchedCurrencies: false,\r\n failedFetchCurrencies: false,\r\n selectedCurrency: \"USD\",\r\n currencies: [],\r\n\r\n fetchingCurrencyStats: false,\r\n fetchedCurrencyStats: false,\r\n failedFetchCurrencyStats: false,\r\n\r\n companyId: null,\r\n withCompanyId: null,\r\n allKeys: [],\r\n allRows: [],\r\n selectedKeys: [],\r\n selectedRows: [],\r\n};\r\n\r\nfunction statementsReducer(state = defaultStatementsState, action) {\r\n if (window.logToConsole) console.log(action);\r\n switch (action.type) {\r\n case actions.CLEAR_STATEMENTS_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n searchTerm: \"\",\r\n searchResults: [],\r\n fetchedStatementsSearchResults: false,\r\n fetchingStatementsSearchResults: false,\r\n failedFetchStatementsSearchResults: false\r\n };\r\n case actions.SET_OPEN_INVOICES_TO_SEARCH_RESULT:\r\n return { ...state, openInvoices: action.openInvoices, isShowingSearchResult: true };\r\n case actions.SET_CLOSED_INVOICES_TO_SEARCH_RESULT:\r\n return { ...state, closedInvoices: action.closedInvoices, isShowingSearchResult: true };\r\n case actions.SET_PAYMENTS_TO_SEARCH_RESULT:\r\n return { ...state, payments: action.payments, isShowingSearchResult: true };\r\n case actions.FETCHING_STATEMENTS_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n searchTerm: action.searchTerm,\r\n fetchingStatementsSearchResults: true,\r\n fetchedStatementsSearchResults: false,\r\n failedFetchSearchResults: false\r\n };\r\n case actions.FETCHED_STATEMENTS_SEARCH_RESULTS:\r\n if (state.searchTerm !== action.searchTerm) {\r\n return { ...state };\r\n }\r\n return {\r\n ...state,\r\n searchTerm: action.searchTerm,\r\n searchResults: action.searchResults,\r\n fetchingStatementsSearchResults: false,\r\n fetchedStatementsSearchResults: true,\r\n failedFetchSearchResults: false\r\n };\r\n case actions.FETCH_STATEMENTS_SEARCH_RESULTS_FAILED:\r\n return {\r\n ...state,\r\n fetchingStatementsSearchResults: false,\r\n fetchedStatementsSearchResults: false,\r\n failedFetchSearchResults: true\r\n };\r\n case actions.FETCHING_ALL_INVOICES:\r\n return {\r\n ...state,\r\n fetchingAllInvoices: true,\r\n fetchedAllInvoices: false,\r\n fetchAllInvoicesFailed: false\r\n };\r\n case actions.FETCHED_ALL_INVOICES:\r\n return {\r\n ...state,\r\n fetchingAllInvoices: false,\r\n fetchedAllInvoices: true,\r\n fetchAllInvoicesFailed: false\r\n };\r\n case actions.FETCH_ALL_INVOICES_FAILED:\r\n return {\r\n ...state,\r\n fetchingAllInvoices: false,\r\n fetchedAllInvoices: false,\r\n fetchAllInvoicesFailed: true\r\n };\r\n\r\n case actions.FETCHING_CLOSED_INVOICES:\r\n const nextClosedState = {\r\n ...state,\r\n isFetchingClosedInvoices: true,\r\n withCompanyId: action.withCompanyId,\r\n isShowingSearchResult: false\r\n };\r\n if (action.isNextLink !== true) {\r\n nextClosedState.closedInvoices = [];\r\n }\r\n return nextClosedState;\r\n case actions.FETCHED_CLOSED_INVOICES:\r\n if (action.withCompanyId !== state.withCompanyId) {\r\n return state;\r\n }\r\n\r\n return {\r\n ...state,\r\n closedInvoices: [...state.closedInvoices, ...action.closedInvoices],\r\n closedInvoicesCount: action.count,\r\n closedInvoicesSkip: action.skip,\r\n closedTotalAmount: action.totalAmount,\r\n closedTotalAmountCurrentYear: action.totalAmountCurrentYear,\r\n closedTotalAmountPastYear: action.totalAmountPastYear,\r\n closedInvoicesNextLink: action.nextLink,\r\n closedInvoicesCurrency: action.currency || state.closedInvoicesCurrency,\r\n closedInvoicesCurrencyStats: {\r\n ...state.closedInvoicesCurrencyStats,\r\n [action.currency || state.closedInvoicesCurrency]: action.response\r\n },\r\n isFetchingClosedInvoices: false,\r\n fetchingClosedInvoicesFailed: false\r\n };\r\n case actions.FETCH_CLOSED_INVOICES_FAILED:\r\n return {\r\n ...state,\r\n isFetchingClosedInvoices: false,\r\n fetchingClosedInvoicesFailed: true\r\n };\r\n\r\n case actions.FETCHING_CLOSED_INVOICES_TEMPLATE:\r\n return { ...state, isFetchingClosedInvoicesTemplate: true };\r\n case actions.FETCHED_CLOSED_INVOICES_TEMPLATE:\r\n return {\r\n ...state,\r\n isFetchingClosedInvoicesTemplate: false,\r\n fetchingClosedInvoicesTemplateFailed: false,\r\n fetchedClosedInvoicesTemplate: true\r\n };\r\n case actions.FETCHING_CLOSED_INVOICES_TEMPLATE_FAILED:\r\n return {\r\n ...state,\r\n isFetchingClosedInvoicesTemplate: false,\r\n fetchingClosedInvoicesTemplateFailed: true,\r\n fetchedClosedInvoicesTemplate: false\r\n };\r\n case actions.UPDATE_CLOSED_INVOICES_SORT:\r\n return {\r\n ...state,\r\n closedInvoicesSortBy: action.sortBy,\r\n closedInvoicesSortDirection: action.sortDirection\r\n };\r\n case actions.UPDATE_CLOSED_INVOICES_DATE:\r\n return {\r\n ...state,\r\n closedFromDate: action.fromDate,\r\n closedToDate: action.toDate,\r\n closedFromDueDate: action.dueByFromDate,\r\n closedToDueDate: action.dueByToDate\r\n };\r\n case actions.SET_SELECTED_KEYS:\r\n const modifyKeys = action.keys;\r\n const modifyRows = action.keys === \"all\" ? \"all\" : action.rows;\r\n const newSelectedKeys = updateSelectedRows(modifyKeys, state.selectedKeys);\r\n const newSelectedRows = updateSelectedRows(modifyRows, state.selectedRows);\r\n return {\r\n ...state,\r\n selectedKeys: newSelectedKeys,\r\n selectedRows: newSelectedRows\r\n };\r\n case actions.FETCHING_OPEN_INVOICES:\r\n const nextOpenState = {\r\n ...state,\r\n isShowingSearchResult: false,\r\n isFetchingOpenInvoices: true,\r\n withCompanyId: action.withCompanyId\r\n };\r\n if (action.isNextLink !== true) {\r\n nextOpenState.openInvoices = [];\r\n }\r\n return nextOpenState;\r\n case actions.FETCHED_OPEN_INVOICES:\r\n if (action.withCompanyId !== state.withCompanyId) {\r\n return state;\r\n }\r\n let selectedKeys = state.selectedKeys;\r\n let selectedRows = action.selectAll ? action.response.value : state.selectedRows;\r\n if(action.selectAll){\r\n selectedKeys = [];\r\n for(const item in action.response.value){\r\n selectedKeys.push(action.response.value[item].ledgerHash);\r\n }\r\n }\r\n \r\n return {\r\n ...state,\r\n openInvoices: [...state.openInvoices, ...action.openInvoices],\r\n openInvoicesCount: action.count,\r\n openInvoicesSkip: action.skip,\r\n openTotalAmount: action.totalBalance,\r\n openPastDueCount: action.pastDueCount,\r\n openInvoicesNextLink: action.nextLink,\r\n openInvoicesCurrency: action.currency || state.openInvoicesCurrency,\r\n openInvoicesCurrencyStats: {\r\n ...state.openInvoicesCurrencyStats,\r\n [action.currency]: action.response\r\n },\r\n isFetchingOpenInvoices: false,\r\n fetchingOpenInvoicesFailed: false,\r\n selectedKeys,\r\n selectedRows\r\n };\r\n case actions.FETCH_OPEN_INVOICES_FAILED:\r\n return {\r\n ...state,\r\n isFetchingOpenInvoices: false,\r\n fetchingOpenInvoicesFailed: true\r\n };\r\n\r\n case actions.FETCHING_OPEN_INVOICES_TEMPLATE:\r\n return { ...state, isFetchingOpenInvoicesTemplate: true };\r\n case actions.FETCHED_OPEN_INVOICES_TEMPLATE:\r\n return {\r\n ...state,\r\n isFetchingOpenInvoicesTemplate: false,\r\n fetchingOpenInvoicesTemplateFailed: false,\r\n fetchedOpenInvoicesTemplate: true\r\n };\r\n case actions.FETCHING_OPEN_INVOICES_TEMPLATE_FAILED:\r\n return {\r\n ...state,\r\n isFetchingOpenInvoicesTemplate: false,\r\n fetchingOpenInvoicesTemplateFailed: true,\r\n fetchedOpenInvoicesTemplate: false\r\n };\r\n case actions.UPDATE_OPEN_INVOICES_SORT:\r\n return {\r\n ...state,\r\n openInvoicesSortBy: action.sortBy,\r\n openInvoicesSortDirection: action.sortDirection\r\n };\r\n case actions.UPDATE_OPEN_INVOICES_DATE:\r\n return {\r\n ...state,\r\n openFromDate: action.fromDate,\r\n openToDate: action.toDate,\r\n openFromDueDate: action.dueByFromDate,\r\n openToDueDate: action.dueByToDate\r\n };\r\n\r\n case actions.FETCHING_PAYMENTS: {\r\n const nextPaymentsState = {\r\n ...state,\r\n isFetchingPayments: true,\r\n withCompanyId: action.withCompanyId,\r\n isShowingSearchResult: false\r\n };\r\n if (action.isNextLink !== true) {\r\n nextPaymentsState.payments = [];\r\n }\r\n return nextPaymentsState;\r\n }\r\n case actions.FETCHED_PAYMENTS:\r\n if (action.withCompanyId !== state.withCompanyId) {\r\n return state;\r\n }\r\n return {\r\n ...state,\r\n payments: [...state.payments, ...action.payments],\r\n paymentsCount: action.count,\r\n paymentsSkip: action.skip,\r\n paymentsTotalAmount: action.totalAmount,\r\n paymentsTotalAmountCurrentYear: action.totalAmountCurrentYear,\r\n paymentsTotalAmountPastYear: action.totalAmountPastYear,\r\n paymentsTotalUnapplied: action.totalBalance,\r\n paymentsNextLink: action.nextLink,\r\n paymentsCurrency: action.currency || state.paymentsCurrency,\r\n paymentsCurrencyStats: {\r\n ...state.paymentsCurrencyStats,\r\n [action.currency || state.paymentsCurrency]: action.response\r\n },\r\n isFetchingPayments: false,\r\n fetchingPaymentsFailed: false\r\n };\r\n case actions.FETCH_PAYMENTS_FAILED:\r\n return {\r\n ...state,\r\n isFetchingPayments: false,\r\n fetchingPaymentsFailed: true\r\n };\r\n\r\n case actions.FETCHING_UNAPPLIED_PAYMENTS: {\r\n const nextPaymentsState = {\r\n ...state,\r\n isFetchingUnappliedOrPendingPayments: true,\r\n withCompanyId: action.withCompanyId,\r\n isShowingSearchResult: false\r\n };\r\n\r\n if (action.skip === 0) {\r\n nextPaymentsState.unappliedOrPendingPayments = [];\r\n }\r\n return nextPaymentsState;\r\n }\r\n case actions.FETCHED_UNAPPLIED_PAYMENTS:\r\n if (action.withCompanyId !== state.withCompanyId) {\r\n return state;\r\n }\r\n return {\r\n ...state,\r\n unappliedOrPendingPayments: [...action.unappliedOrPendingPayments],\r\n unappliedOrPendingPaymentsCount: action.count,\r\n unappliedOrPendingPaymentsSkip: action.skip,\r\n paymentsTotalUnapplied: action.totalBalance,\r\n paymentsTotalUnappliedOrPending: action.totalAmount,\r\n isFetchingUnappliedOrPendingPayments: false,\r\n fetchingUnappliedOrPendingPaymentsFailed: false\r\n };\r\n case actions.FETCH_UNAPPLIED_PAYMENTS_FAILED:\r\n return {\r\n ...state,\r\n isFetchingUnappliedOrPendingPayments: false,\r\n fetchingUnappliedOrPendingPaymentsFailed: true\r\n };\r\n\r\n case actions.POSTING_AUTO_PAY_CONFIG:\r\n return {\r\n ...state,\r\n postingAutoPayConfig: true,\r\n postedAutoPayConfig: false,\r\n failedPostAutoPayConfig: false\r\n };\r\n case actions.POSTED_AUTO_PAY_CONFIG:\r\n return {\r\n ...state,\r\n postingAutoPayConfig: false,\r\n postedAutoPayConfig: true,\r\n failedPostAutoPayConfig: false\r\n };\r\n case actions.FAILED_POST_AUTO_PAY_CONFIG:\r\n return {\r\n ...state,\r\n postingAutoPayConfig: false,\r\n postedAutoPayConfig: false,\r\n failedPostAutoPayConfig: true\r\n };\r\n\r\n case actions.MAKING_PAYMENT:\r\n return {\r\n ...state,\r\n isMakingPayment: true\r\n };\r\n case actions.MADE_PAYMENT:\r\n return {\r\n ...state,\r\n isMakingPayment: false,\r\n makingPaymentFailed: false\r\n };\r\n case actions.MAKE_PAYMENT_FAILED:\r\n return {\r\n ...state,\r\n isMakingPayment: false,\r\n makingPaymentFailed: true\r\n };\r\n\r\n case actions.ADDING_PAYMENT_METHOD:\r\n const nextState = {\r\n ...state,\r\n isAddingPaymentMethod: true\r\n };\r\n\r\n if (action.setAsDefault === true) {\r\n const withCompanyPaymentMethods = ((state.paymentInfo[action.withCompanyId] || {}).paymentMethods || []).map(\r\n pMethod => {\r\n if (pMethod.paymentMethodId === action.paymentMethodId) {\r\n return { ...pMethod, isDefault: true };\r\n } else if (pMethod.isDefault === true) {\r\n return { ...pMethod, isDefault: false };\r\n }\r\n return pMethod;\r\n }\r\n );\r\n\r\n nextState.paymentInfo = {\r\n ...state.paymentInfo,\r\n [action.withCompanyId]: {\r\n ...state.paymentInfo[action.withCompanyId],\r\n paymentMethods: withCompanyPaymentMethods\r\n }\r\n };\r\n }\r\n return nextState;\r\n\r\n case actions.ADDED_PAYMENT_METHOD:\r\n return {\r\n ...state,\r\n isAddingPaymentMethod: false,\r\n addingPaymentMethodFailed: false\r\n };\r\n case actions.ADD_PAYMENT_METHOD_FAILED:\r\n return {\r\n ...state,\r\n isAddingPaymentMethod: false,\r\n addingPaymentMethodFailed: true\r\n };\r\n\r\n case actions.DELETING_PAYMENT_METHOD:\r\n return {\r\n ...state,\r\n isDeletingPaymentMethod: true\r\n };\r\n case actions.DELETED_PAYMENT_METHOD:\r\n const withCompanyPaymentMethods = ((state.paymentInfo[action.withCompanyId] || {}).paymentMethods || []).filter(\r\n pMethod => pMethod.paymentMethodId !== action.paymentMethodId\r\n );\r\n return {\r\n ...state,\r\n isDeletingPaymentMethod: false,\r\n deletingPaymentMethodFailed: false,\r\n paymentInfo: {\r\n ...state.paymentInfo,\r\n [action.withCompanyId]: {\r\n ...state.paymentInfo[action.withCompanyId],\r\n paymentMethods: withCompanyPaymentMethods\r\n }\r\n }\r\n };\r\n\r\n case actions.DELETE_PAYMENT_METHOD_FAILED:\r\n return {\r\n ...state,\r\n isDeletingPaymentMethod: false,\r\n deletingPaymentMethodFailed: true\r\n };\r\n\r\n case actions.FETCHING_PAYMENT_INFO:\r\n return { ...state, isFetchingPaymentInfo: true, fetchedPaymentInfo: false };\r\n case actions.FETCHED_PAYMENT_INFO:\r\n return {\r\n ...state,\r\n paymentInfo: { ...state.paymentInfo, [action.withCompanyId]: action.paymentInfo },\r\n isFetchingPaymentInfo: false,\r\n fetchedPaymentInfo: true,\r\n fetchingPaymentInfoFailed: false\r\n };\r\n case actions.FETCH_PAYMENT_INFO_FAILED:\r\n return {\r\n ...state,\r\n isFetchingPaymentInfo: false,\r\n fetchedPaymentInfo: false,\r\n fetchingPaymentInfoFailed: true\r\n };\r\n\r\n case actions.FETCHING_PAYMENTS_TEMPLATE:\r\n return { ...state, isFetchingPaymentsTemplate: true };\r\n case actions.FETCHED_PAYMENTS_TEMPLATE:\r\n return {\r\n ...state,\r\n isFetchingPaymentsTemplate: false,\r\n fetchingPaymentsTemplateFailed: false,\r\n fetchedPaymentsTemplate: true\r\n };\r\n case actions.FETCHING_PAYMENTS_TEMPLATE_FAILED:\r\n return {\r\n ...state,\r\n isFetchingPaymentsTemplate: false,\r\n fetchingPaymentsTemplateFailed: true,\r\n fetchedPaymentsTemplate: false\r\n };\r\n case actions.UPDATE_PAYMENTS_SORT:\r\n return {\r\n ...state,\r\n paymentsSortBy: action.sortBy,\r\n paymentsSortDirection: action.sortDirection\r\n };\r\n case actions.UPDATE_UNAPPLIED_PAYMENTS_SORT:\r\n return {\r\n ...state,\r\n unappliedPaymentsSortBy: action.sortBy,\r\n unappliedPaymentsSortDirection: action.sortDirection\r\n };\r\n \r\n case actions.UPDATE_PAYMENTS_DATE:\r\n return {\r\n ...state,\r\n paymentsFromDate: action.fromDate,\r\n paymentsToDate: action.toDate\r\n };\r\n\r\n case actions.FETCHING_TABLE_EXPORT:\r\n return {\r\n ...state,\r\n fetchingExportTable: true,\r\n fetchedExportTable: false,\r\n failedFetchExportTable: false\r\n };\r\n case actions.FETCHED_TABLE_EXPORT:\r\n return {\r\n ...state,\r\n fetchingExportTable: false,\r\n fetchedExportTable: true,\r\n failedFetchExportTable: false\r\n };\r\n case actions.FETCH_TABLE_EXPORT_FAILED:\r\n return {\r\n ...state,\r\n fetchingExportTable: false,\r\n fetchedExportTable: false,\r\n failedFetchExportTable: true\r\n };\r\n\r\n case actions.FETCHING_CURRENCIES:\r\n return {\r\n ...state,\r\n fetchingCurrencies: true,\r\n fetchedCurrencies: false,\r\n failedFetchCurrencies: false\r\n };\r\n case actions.FETCHED_CURRENCIES:\r\n let selectedCurrencyUpdate = state.selectedCurrency;\r\n if (!includes(action.currencies, state.selectedCurrency) && (action.currencies || []).length > 0) {\r\n selectedCurrencyUpdate = action.currencies[0];\r\n }\r\n return {\r\n ...state,\r\n fetchingCurrencies: false,\r\n fetchedCurrencies: true,\r\n failedFetchCurrencies: false,\r\n selectedCurrency: selectedCurrencyUpdate,\r\n currencies: action.currencies\r\n };\r\n case actions.FETCH_CURRENCIES_FAILED:\r\n return {\r\n ...state,\r\n fetchingCurrencies: false,\r\n fetchedCurrencies: false,\r\n failedFetchCurrencies: true\r\n };\r\n case actions.SET_SELECTED_CURRENCY:\r\n return {\r\n ...state,\r\n selectedCurrency: action.currency\r\n };\r\n case actions.FETCHING_CURRENCY_STATS:\r\n return {\r\n ...state,\r\n fetchingCurrencyStats: true,\r\n fetchedCurrencyStats: false,\r\n failedFetchCurrencyStats: false\r\n };\r\n case actions.FETCHED_CURRENCY_STATS:\r\n return {\r\n ...state,\r\n fetchingCurrencyStats: false,\r\n fetchedCurrencyStats: true,\r\n failedFetchCurrencyStats: false,\r\n openInvoicesCurrencyStats: action.openInvoicesCurrencyStats,\r\n closedInvoicesCurrencyStats: action.closedInvoicesCurrencyStats,\r\n paymentsCurrencyStats: action.paymentsCurrencyStats\r\n };\r\n case actions.FETCH_CURRENCY_STATS_FAILED:\r\n return {\r\n ...state,\r\n fetchingCurrencyStats: false,\r\n fetchedCurrencyStats: false,\r\n failedFetchCurrencyStats: true\r\n };\r\n\r\n case actions.SET_WITH_COMPANY_ID:\r\n return { ...defaultStatementsState, withCompanyId: action.withCompanyId, companyId: state.companyId };\r\n case actions.CLEAR_DATA:\r\n return defaultStatementsState;\r\n\r\n case actions.SELECT_COMPANY:\r\n if (state.companyId === null) {\r\n return {\r\n ...state,\r\n companyId: action.companyId\r\n };\r\n } else if (action.companyId !== state.companyId) {\r\n return {\r\n ...defaultStatementsState,\r\n companyId: action.companyId\r\n };\r\n }\r\n\r\n return state;\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default statementsReducer;\r\n","import data from \"../lib/data\";\nimport { isEmpty } from \"../lib/utils\";\nimport { actions as GeneralActions } from \"./general-actions\";\nimport { handlePromiseError } from \"./error-actions\";\n\nexport const actions = {\n ...GeneralActions,\n\n FETCHING_SEQUENCES: \"FETCHING_SEQUENCES\",\n FETCHED_SEQUENCES: \"FETCHED_SEQUENCES\",\n FETCH_SEQUENCES_FAILED: \"FETCH_SEQUENCES_FAILED\",\n\n FETCHING_SEQUENCE_EVENTS: \"FETCHING_SEQUENCE_EVENTS\",\n FETCHED_SEQUENCE_EVENTS: \"FETCHED_SEQUENCE_EVENTS\",\n FETCH_SEQUENCE_EVENTS_FAILED: \"FETCH_SEQUENCE_EVENTS_FAILED\",\n\n FETCHING_SEQUENCE_SAMPLES: \"FETCHING_SEQUENCE_SAMPLES\",\n FETCHED_SEQUENCE_SAMPLES: \"FETCHED_SEQUENCE_SAMPLES\",\n FETCH_SEQUENCE_SAMPLES_FAILED: \"FETCH_SEQUENCE_SAMPLES_FAILED\",\n\n FETCHING_TRIGGERS: \"FETCHING_TRIGGERS\",\n FETCHED_TRIGGERS: \"FETCHED_TRIGGERS\",\n FETCH_TRIGGERS_FAILED: \"FETCH_TRIGGERS_FAILED\",\n\n FETCHING_SEQUENCE_ACTIONS: \"FETCHING_SEQUENCE_ACTIONS\",\n FETCHED_SEQUENCE_ACTIONS: \"FETCHED_SEQUENCE_ACTIONS\",\n FETCH_SEQUENCE_ACTIONS_FAILED: \"FETCH_SEQUENCE_ACTIONS_FAILED\",\n\n POSTING_SEQUENCE: \"POSTING_SEQUENCE\",\n POSTED_SEQUENCE: \"POSTED_SEQUENCE\",\n POST_SEQUENCE_FAILED: \"POST_SEQUENCE_FAILED\"\n};\n\nconst fetchSequences = companyId => (dispatch, getState) => {\n const state = getState().sequences;\n if (state.isFetchingSequences) {\n return;\n }\n dispatch({ type: actions.FETCHING_SEQUENCES });\n\n data\n .get(`v2/api/sequence/${companyId}`)\n .then(res => {\n dispatch({ type: actions.FETCHED_SEQUENCES, sequences: res.data });\n })\n .catch(err => {\n handlePromiseError(err, \"Fetching sequences summary failed.\", \"sequences\");\n dispatch({ type: actions.FETCH_SEQUENCES_FAILED });\n });\n};\n\nconst postSequence = (companyId, payload) => (dispatch, getState) => {\n dispatch({ type: actions.POSTING_SEQUENCE, sequence: payload });\n\n data\n .post(`v2/api/sequence/${companyId}`, payload)\n .then(res => {\n dispatch({ type: actions.POSTED_SEQUENCE, sequences: res.data });\n })\n .catch(err => {\n handlePromiseError(err, \"Posting sequence failed.\", \"sequence\");\n dispatch({ type: actions.POST_SEQUENCE_FAILED, sequence: payload });\n });\n};\n\nconst fetchSequenceEvents = (companyId, fromDate, toDate = null, top, skip, filter) => (dispatch, getState) => {\n const state = getState().sequences;\n if (state.isFetchingSequenceEvents) {\n return;\n }\n dispatch({ type: actions.FETCHING_SEQUENCE_EVENTS });\n\n let endpoint = `v2/api/sequence/${companyId}/events`;\n\n if (!isEmpty(fromDate)) {\n endpoint = `${endpoint}/from/${fromDate}`;\n if (!isEmpty(toDate)) {\n endpoint = `${endpoint}/to/${toDate}`;\n }\n }\n\n endpoint = `${endpoint}?$orderBy=${state.sequenceEventsSortBy.trim()}%20${\n state.sequenceEventsSortDirection\n },%20Id%20desc`;\n\n if (!isEmpty(top)) {\n endpoint = `${endpoint}&$top=${top}`;\n }\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n\n if (!isEmpty(filter)) {\n endpoint = `${endpoint}&$filter=${filter}`;\n }\n\n data\n .get(endpoint)\n .then(res => {\n dispatch({ type: actions.FETCHED_SEQUENCE_EVENTS, eventData: res.data });\n })\n .catch(err => {\n handlePromiseError(err, \"Fetching sequences history failed.\", \"sequences history\");\n dispatch({ type: actions.FETCH_SEQUENCE_EVENTS_FAILED });\n });\n};\n\nconst fetchSequenceSamples = () => (dispatch, getState) => {\n const state = getState().sequences;\n if (state.isFetchingSequenceSamples) {\n return;\n }\n dispatch({ type: actions.FETCHING_SEQUENCE_SAMPLES });\n\n data\n .get(\"v2/api/sequence/samples\")\n .then(res => {\n dispatch({ type: actions.FETCHED_SEQUENCE_SAMPLES, samples: res.data });\n })\n .catch(err => {\n handlePromiseError(err, \"Fetching sequence templates failed.\", \"sequence templates\");\n dispatch({ type: actions.FETCH_SEQUENCE_SAMPLES_FAILED });\n });\n};\n\nconst fetchTriggers = companyId => (dispatch, getState) => {\n const state = getState().sequences;\n if (state.isFetchingTriggers) {\n return;\n }\n dispatch({ type: actions.FETCHING_TRIGGERS });\n\n data\n .get(`v2/api/sequence/triggers/${companyId}`)\n .then(res => {\n dispatch({ type: actions.FETCHED_TRIGGERS, triggers: res.data });\n })\n .catch(err => {\n handlePromiseError(err, \"Fetching sequence triggers failed.\", \"sequence triggers\");\n dispatch({ type: actions.FETCH_TRIGGERS_FAILED });\n });\n};\n\nconst fetchSequenceActions = companyId => (dispatch, getState) => {\n const state = getState().sequences;\n if (state.isFetchingSequenceActions) {\n return;\n }\n dispatch({ type: actions.FETCHING_SEQUENCE_ACTIONS });\n\n data\n .get(`v2/api/sequence/activities/${companyId}`)\n .then(res => {\n dispatch({ type: actions.FETCHED_SEQUENCE_ACTIONS, sequenceActions: res.data });\n })\n .catch(err => {\n handlePromiseError(err, \"Fetching sequence actions failed.\", \"sequence actions\");\n dispatch({ type: actions.FETCH_SEQUENCE_ACTIONS_FAILED });\n });\n};\n\nconst postSequenceStepDescription = (companyId, reqBody) => (dispatch, getState) => {\n return data\n .post(`v2/api/sequence/${companyId}/description`, reqBody)\n .then(res => res.data)\n .catch(err => {\n handlePromiseError(err, \"Generating the sequence step description failed\", \"sequence step description\");\n throw err;\n });\n};\n\nexport const dispatchToProps = dispatch => ({\n fetchSequences: companyId => {\n dispatch(fetchSequences(companyId));\n },\n postSequence: (companyId, payload) => {\n dispatch(postSequence(companyId, payload));\n },\n fetchSequenceEvents: (companyId, fromDate, toDate = null, top, skip, filter) => {\n dispatch(fetchSequenceEvents(companyId, fromDate, (toDate = null), top, skip, filter));\n },\n fetchSequenceSamples: () => {\n dispatch(fetchSequenceSamples());\n },\n fetchTriggers: companyId => {\n dispatch(fetchTriggers(companyId));\n },\n fetchSequenceActions: companyId => {\n dispatch(fetchSequenceActions(companyId));\n },\n postSequenceStepDescription: (companyId, reqBody) => {\n return dispatch(postSequenceStepDescription(companyId, reqBody));\n }\n});\n","import { actions } from \"./sequences-actions\";\nimport { isEmpty } from \"../lib/utils\";\n\nexport const defaultSequencesState = {\n isFetchingSequences: false,\n fetchingSequencesFailed: false,\n fetchedSequences: false,\n sequences: [],\n sequenceMaps: {},\n sequencesSortBy: \"modifiedDate\",\n sequencesSortDirection: \"desc\",\n companyId: null,\n\n isFetchingSequenceEvents: false,\n fetchingSequenceEventsFailed: false,\n fetchedSequenceEvents: false,\n sequenceEvents: [],\n activeSequenceCount: null,\n automatedTasksTodayCount: null,\n automatedTasksMonthCount: null,\n manualTasksTodayCount: null,\n manualTasksMonthCount: null,\n sequenceEventsNextLink: null,\n sequenceEventsCount: null,\n sequenceEventsSortBy: \"Date\",\n sequenceEventsSortDirection: \"desc\",\n\n isFetchingSequenceSamples: false,\n fetchingSequenceSamplesFailed: false,\n fetchedSequenceSamples: false,\n sequenceSamples: [],\n sequenceSampleMaps: {},\n\n isFetchingTriggers: false,\n fetchingTriggersFailed: false,\n fetchedTriggers: false,\n triggers: [],\n triggerMaps: {},\n\n isFetchingSequenceActions: false,\n fetchingSequenceActionsFailed: false,\n fetchedSequenceActions: false,\n sequenceActions: [],\n sequenceActionMaps: {}\n};\n\nfunction sequencesReducer(state = defaultSequencesState, action) {\n if (window.logToConsole) console.log(action);\n switch (action.type) {\n case actions.FETCHING_SEQUENCES:\n return {\n ...state,\n isFetchingSequences: true,\n sequences: []\n };\n case actions.FETCHED_SEQUENCES:\n const sequenceMaps = {};\n (action.sequences || []).forEach(sequence => (sequenceMaps[sequence.customerSequenceId] = sequence));\n return {\n ...state,\n isFetchingSequences: false,\n fetchingSequencesFailed: false,\n fetchedSequences: true,\n sequences: action.sequences,\n sequenceMaps\n };\n case actions.FETCH_SEQUENCES_FAILED:\n return { ...state, isFetchingSequences: false, fetchingSequencesFailed: true, fetchedSequences: false };\n\n case actions.POSTING_SEQUENCE: {\n const nextState = { ...state, isPostingSequence: true };\n if (!isEmpty(action.sequence.customerSequenceId) && !isEmpty(action.sequence.isActive)) {\n const nextSequences = state.sequences.map(sequence => {\n if (sequence.customerSequenceId === action.sequence.customerSequenceId) {\n nextState.sequenceMaps[sequence.customerSequenceId] = { ...sequence, isActive: action.sequence.isActive };\n return { ...sequence, isActive: action.sequence.isActive };\n }\n return sequence;\n });\n nextState.sequences = nextSequences;\n }\n return nextState;\n }\n case actions.POSTED_SEQUENCE:\n return { ...state, isPostingSequence: false };\n case actions.POST_SEQUENCE_FAILED: {\n const nextState = { ...state, isPostingSequence: false };\n if (!isEmpty(action.sequence.customerSequenceId) && !isEmpty(action.sequence.isActive)) {\n const nextSequences = state.sequences.map(sequence => {\n if (sequence.customerSequenceId === action.sequence.customerSequenceId) {\n nextState.sequenceMaps[sequence.customerSequenceId] = { ...sequence, isActive: !action.sequence.isActive };\n return { ...sequence, isActive: !action.sequence.isActive };\n }\n return sequence;\n });\n nextState.sequences = nextSequences;\n }\n return nextState;\n }\n\n case actions.FETCHING_SEQUENCE_EVENTS: {\n const nextState = {\n ...state,\n isFetchingSequenceEvents: true\n };\n\n if (action.isNextLink !== true) {\n nextState.sequenceEvents = [];\n }\n\n return nextState;\n }\n case actions.FETCHED_SEQUENCE_EVENTS: {\n const { history, ...rest } = action.eventData;\n return {\n ...state,\n isFetchingSequenceEvents: false,\n fetchingSequenceEventsFailed: false,\n fetchedSequenceEvents: true,\n sequenceEventsNextLink: history.nextLink,\n sequenceEvents: history.value,\n sequenceEventsCount: history.count,\n ...rest\n };\n }\n case actions.FETCH_SEQUENCE_EVENTS_FAILED:\n return {\n ...state,\n isFetchingSequenceEvents: false,\n fetchingSequenceEventsFailed: true,\n fetchedSequenceEvents: false\n };\n\n case actions.FETCHING_SEQUENCE_SAMPLES:\n return {\n ...state,\n isFetchingSequenceSamples: true\n };\n case actions.FETCHED_SEQUENCE_SAMPLES:\n const sequenceSampleMaps = {};\n (action.samples || []).forEach(sample => (sequenceSampleMaps[sample.customerSequenceId] = sample));\n return {\n ...state,\n isFetchingSequenceSamples: false,\n fetchingSequenceSamplesFailed: false,\n fetchedSequenceSamples: true,\n sequenceSamples: action.samples,\n sequenceSampleMaps\n };\n case actions.FETCH_SEQUENCE_SAMPLES_FAILED:\n return {\n ...state,\n isFetchingSequenceSamples: false,\n fetchingSequenceSamplesFailed: true,\n fetchedSequenceSamples: false\n };\n\n case actions.FETCHING_TRIGGERS:\n return {\n ...state,\n isFetchingTriggers: true\n };\n case actions.FETCHED_TRIGGERS:\n const triggerMaps = {};\n action.triggers.forEach(trigger => (triggerMaps[trigger.triggerID] = trigger));\n\n return {\n ...state,\n isFetchingTriggers: false,\n fetchingTriggersFailed: false,\n fetchedTriggers: true,\n triggers: action.triggers,\n triggerMaps\n };\n case actions.FETCH_TRIGGERS_FAILED:\n return {\n ...state,\n isFetchingTriggers: false,\n fetchingTriggersFailed: true,\n fetchedTriggers: false\n };\n\n case actions.FETCHING_SEQUENCE_ACTIONS:\n return {\n ...state,\n isFetchingSequenceActions: true\n };\n case actions.FETCHED_SEQUENCE_ACTIONS:\n const sequenceActionMaps = {};\n action.sequenceActions.forEach(\n sequenceAction => (sequenceActionMaps[sequenceAction.activityID] = sequenceAction)\n );\n\n return {\n ...state,\n isFetchingSequenceActions: false,\n fetchingSequenceActionsFailed: false,\n fetchedSequenceActions: true,\n sequenceActions: action.sequenceActions,\n sequenceActionMaps\n };\n case actions.FETCH_SEQUENCE_ACTIONS_FAILED:\n return {\n ...state,\n isFetchingSequenceActions: false,\n fetchingSequenceActionsFailed: true,\n fetchedSequenceActions: false\n };\n\n case actions.SELECT_COMPANY:\n if (state.companyId === null) {\n return {\n ...state,\n companyId: action.companyId\n };\n } else if (action.companyId !== state.companyId) {\n return {\n ...defaultSequencesState,\n companyId: action.companyId\n };\n }\n\n return state;\n\n default:\n return state;\n }\n}\n\nexport default sequencesReducer;\n","import data from \"../lib/data\";\nimport { actions as GeneralActions } from \"./general-actions\";\nimport { handlePromiseError, raiseValidationError } from \"./error-actions\";\nimport Resources from \"../lib/resources\";\nimport { isEmpty, find, debounce, getConfig, openUrlForDownload } from \"../lib/utils\";\nimport _ from \"lodash\";\n\nexport const actions = {\n ...GeneralActions,\n ...{\n GETTING_NETWORK_ACCOUNT_LIST: \"GETTING_NETWORK_ACCOUNT_LIST\",\n GOT_NETWORK_ACCOUNT_LIST: \"GOT_NETWORK_ACCOUNT_LIST\",\n FAILED_GET_NETWORK_ACCOUNT_LIST: \"FAILED_GET_NETWORK_ACCOUNT_LIST\",\n\n GETTING_NETWORK_ACCOUNT_SEARCH_RESULTS: \"GETTING_NETWORK_ACCOUNT_SEARCH_RESULTS\",\n GOT_NETWORK_ACCOUNT_SEARCH_RESULTS: \"GOT_NETWORK_ACCOUNT_SEARCH_RESULTS\",\n FAILED_GET_NETWORK_ACCOUNT_SEARCH_RESULTS: \"FAILED_GET_NETWORK_ACCOUNT_SEARCH_RESULTS\",\n\n SET_NETWORK_ACCOUNT_LIST_LOADED_PAGE: \"SET_NETWORK_ACCOUNT_LIST_LOADED_PAGE\",\n\n GETTING_NETWORK_CONTACT_LIST: \"GETTING_NETWORK_CONTACT_LIST\",\n GOT_NETWORK_CONTACT_LIST: \"GOT_NETWORK_CONTACT_LIST\",\n FAILED_GET_NETWORK_CONTACT_LIST: \"FAILED_GET_NETWORK_CONTACT_LIST\",\n\n GETTING_NETWORK_CONTACT_SEARCH_RESULTS: \"GETTING_NETWORK_CONTACT_SEARCH_RESULTS\",\n GOT_NETWORK_CONTACT_SEARCH_RESULTS: \"GOT_NETWORK_CONTACT_SEARCH_RESULTS\",\n FAILED_GET_NETWORK_CONTACT_SEARCH_RESULTS: \"FAILED_GET_NETWORK_CONTACT_SEARCH_RESULTS\",\n\n SET_NETWORK_CONTACT_LIST_LOADED_PAGE: \"SET_NETWORK_CONTACT_LIST_LOADED_PAGE\",\n\n GETTING_CUST_CONTACT: \"GETTING_CUST_CONTACT\",\n GOT_CUST_CONTACT: \"GOT_CUST_CONTACT\",\n FAILED_GET_CUST_CONTACT: \"FAILED_GET_CUST_CONTACT\",\n\n POSTING_CUST_CONTACT: \"POSTING_CUST_CONTACT\",\n POSTED_CUST_CONTACT: \"POSTED_CUST_CONTACT\",\n FAILED_POST_CUST_CONTACT: \"FAILED_POST_CUST_CONTACT\",\n\n POSTING_CUST_CONTACT_PICTURE: \"POSTING_CUST_CONTACT_PICTURE\",\n POSTED_CUST_CONTACT_PICTURE: \"POSTED_CUST_CONTACT_PICTURE\",\n FAILED_POST_CUST_CONTACT_PICTURE: \"FAILED_POST_CUST_CONTACT_PICTURE\",\n\n GETTING_CUST_ACCOUNT: \"GETTING_CUST_ACCOUNT\",\n GOT_CUST_ACCOUNT: \"GOT_CUST_ACCOUNT\",\n FAILED_GET_CUST_ACCOUNT: \"FAILED_GET_CUST_ACCOUNT\",\n\n GETTING_CUST_ACCOUNT_DOCUMENTS: \"GETTING_CUST_ACCOUNT_DOCUMENTS\",\n GOT_CUST_ACCOUNT_DOCUMENTS: \"GOT_CUST_ACCOUNT_DOCUMENTS\",\n FAILED_GET_CUST_ACCOUNT_DOCUMENTS: \"FAILED_GET_CUST_ACCOUNT_DOCUMENTS\",\n\n GETTING_CUST_ACCOUNT_CONTACTS: \"GETTING_CUST_ACCOUNT_CONTACTS)\",\n GOT_CUST_ACCOUNT_CONTACTS: \"GOT_CUST_ACCOUNT_CONTACTS\",\n FAILED_GET_CUST_ACCOUNT_CONTACTS: \"FAILED_GET_CUST_ACCOUNT_CONTACTS\",\n\n POSTING_CUST_ACCOUNT: \"POSTING_CUST_ACCOUNT\",\n POSTED_CUST_ACCOUNT: \"POSTED_CUST_ACCOUNT\",\n FAILED_POST_CUST_ACCOUNT: \"FAILED_POST_CUST_ACCOUNT\",\n\n POSTING_CUST_ACCOUNT_PICTURE: \"POSTING_CUST_ACCOUNT_PICTURE\",\n POSTED_CUST_ACCOUNT_PICTURE: \"POSTED_CUST_ACCOUNT_PICTURE\",\n FAILED_POST_CUST_ACCOUNT_PICTURE: \"FAILED_POST_CUST_ACCOUNT_PICTURE\",\n\n GETTING_OPEN_ONBOARDING_REQUESTS: \"GETTING_OPEN_ONBOARDING_REQUESTS\",\n GOT_OPEN_ONBOARDING_REQUESTS: \"GOT_OPEN_ONBOARDING_REQUESTS\",\n FAILED_GET_OPEN_ONBOARDING_REQUESTS: \"FAILED_GET_OPEN_ONBOARDING_REQUESTS\",\n\n GETTING_OPEN_PROFILE_UPDATE_REQUESTS: \"GETTING_OPEN_PROFILE_UPDATE_REQUESTS\",\n GOT_OPEN_PROFILE_UPDATE_REQUESTS: \"GOT_OPEN_PROFILE_UPDATE_REQUESTS\",\n FAILED_GET_OPEN_PROFILE_UPDATE_REQUESTS: \"FAILED_GET_OPEN_PROFILE_UPDATE_REQUESTS\",\n\n GETTING_ACCOUNT_PROFILE: \"GETTING_ACCOUNT_PROFILE\",\n GOT_ACCOUNT_PROFILE: \"GOT_ACCOUNT_PROFILE\",\n GET_ACCOUNT_PROFILE_FAILED: \"GET_ACCOUNT_PROFILE_FAILED\",\n\n GETTING_ACCOUNT_DOCUMENTS: \"GETTING_ACCOUNT_DOCUMENTS\",\n GOT_ACCOUNT_DOCUMENTS: \"GOT_ACCOUNT_DOCUMENTS\",\n GET_ACCOUNT_DOCUMENTS_FAILED: \"GET_ACCOUNT_DOCUMENTS_FAILED\",\n\n GETTING_ACCOUNT_CONTACTS: \"GETTING_ACCOUNT_CONTACTS\",\n GOT_ACCOUNT_CONTACTS: \"GOT_ACCOUNT_CONTACTS\",\n GET_ACCOUNT_CONTACTS_FAILED: \"GET_ACCOUNT_CONTACTS_FAILED\",\n\n GETTING_CONTACT_PROFILE: \"GETTING_CONTACT_PROFILE\",\n GOT_CONTACT_PROFILE: \"GOT_CONTACT_PROFILE\",\n GOT_CONTACT_PROFILE_FAILED: \"GOT_CONTACT_PROFILE_FAILED\",\n\n POSTING_ACCOUNT_PROFILE_UPDATE_REQUEST: \"POSTING_ACCOUNT_PROFILE_UPDATE_REQUEST\",\n POSTED_ACCOUNT_PROFILE_UPDATE_REQUEST: \"POSTED_ACCOUNT_PROFILE_UPDATE_REQUEST\",\n FAILED_POST_ACCOUNT_PROFILE_UPDATE_REQUEST: \"FAILED_POST_ACCOUNT_PROFILE_UPDATE_REQUEST\",\n\n POSTING_CONTACT_PROFILE_UPDATE_REQUEST: \"POSTING_CONTACT_PROFILE_UPDATE_REQUEST\",\n POSTED_CONTACT_PROFILE_UPDATE_REQUEST: \"POSTED_CONTACT_PROFILE_UPDATE_REQUEST\",\n FAILED_POST_CONTACT_PROFILE_UPDATE_REQUEST: \"FAILED_POST_CONTACT_PROFILE_UPDATE_REQUEST\",\n\n GETTING_HEADER_INFO: \"GETTING_HEADER_INFO\",\n GOT_HEADER_INFO: \"GOT_HEADER_INFO\",\n FAILED_GET_HEADER_INFO: \"FAILED_GET_HEADER_INFO\",\n\n GETTING_CUST_ACCOUNT_SETTINGS: \"GETTING_CUST_ACCOUNT_SETTINGS\",\n GOT_CUST_ACCOUNT_SETTINGS: \"GOT_CUST_ACCOUNT_SETTINGS\",\n FAILED_GET_CUST_ACCOUNT_SETTINGS: \"FAILED_GET_CUST_ACCOUNT_SETTINGS\",\n\n POSTING_CUST_ACCOUNT_SETTINGS: \"POSTING_CUST_ACCOUNT_SETTINGS\",\n POSTED_CUST_ACCOUNT_SETTINGS: \"POSTED_CUST_ACCOUNT_SETTINGS\",\n FAILED_POST_CUST_ACCOUNT_SETTINGS: \"FAILED_POST_CUST_ACCOUNT_SETTINGS\",\n\n GETTING_NETWORK_ACTIVITIES: \"GETTING_NETWORK_ACTIVITIES\",\n GOT_NETWORK_ACTIVITIES: \"GOT_NETWORK_ACTIVITIES\",\n FAILED_GET_NETWORK_ACTIVITIES: \"FAILED_GET_NETWORK_ACTIVITIES\",\n\n GETTING_NOTES: \"GETTING_NOTES\",\n GOT_NOTES: \"GOT_NOTES\",\n FAILED_GET_NOTES: \"FAILED_GET_NOTES\",\n\n POSTING_NOTES: \"POSTING_NOTES\",\n POSTED_NOTES: \"POSTED_NOTES\",\n FAILED_POST_NOTES: \"FAILED_POST_NOTES\",\n\n DELETING_NOTE: \"DELETING_NOTE\",\n DELETED_NOTE: \"DELETED_NOTE\",\n FAILED_DELETE_NOTE: \"FAILED_DELETE_NOTE\",\n\n GETTING_SHARE_FLYOUT_MESSAGE: \"GETTING_SHARE_FLYOUT_MESSAGE\",\n GOT_SHARE_FLYOUT_MESSAGE: \"GOT_SHARE_FLYOUT_MESSAGE\",\n FAILED_GET_SHARE_FLYOUT_MESSAGE: \"FAILED_SHARE_FLYOUT_MESSAGE\",\n\n GETTING_SHARE_LINK: \"GETTING_SHARE_LINK\",\n GOT_SHARE_LINK: \"GOT_SHARE_LINK\",\n FAILED_GET_SHARE_LINK: \"FAILED_GET_SHARE_LINK\",\n\n POSTING_SHARE_FLYOUT: \"POSTING_SHARE_FLYOUT\",\n POSTED_SHARE_FLYOUT: \"POSTED_SHARE_FLYOUT\",\n FAILED_POST_SHARE_FLYOUT: \"FAILED_POST_SHARE_FLYOUT\",\n\n UPLOADING_ACCOUNT_DOCUMENT: \"UPLOADING_ACCOUNT_DOCUMENT\",\n UPLOADED_ACCOUNT_DOCUMENT: \"UPLOADED_ACCOUNT_DOCUMENT\",\n FAILED_UPLOAD_ACCOUNT_DOCUMENT: \"FAILED_UPLOAD_ACCOUNT_DOCUMENT\",\n\n POSTING_MY_PROFILE_PICTURE: \"POSTING_MY_PROFILE_PICTURE\",\n POSTED_MY_PROFILE_PICTURE: \"POSTED_MY_PROFILE_PICTURE\",\n FAILED_POST_MY_PROFILE_PICTURE: \"FAILED_POST_MY_PROFILE_PICTURE\",\n\n GETTING_SUBSIDIARY_LIST: \"GETTING_SUBSIDIARY_LIST\",\n GOT_SUBSIDIARY_LIST: \"GOT_SUBSIDIARY_LIST\",\n FAILED_GET_SUBSIDIARY_LIST: \"FAILED_GET_SUBSIDIARY_LIST\",\n\n UPDATING_CONTACT_PRIVACY: \"UPDATING_CONTACT_PRIVACY\",\n UPDATED_CONTACT_PRIVACY: \"UPDATED_CONTACT_PRIVACY\",\n FAILED_UPDATE_CONTACT_PRIVACY: \"FAILED_UPDATE_CONTACT_PRIVACY\",\n\n ADDING_CONTACT: \"ADDING_CONTACT\",\n ADDED_CONTACT: \"ADDED_CONTACT\",\n FAILED_ADD_CONTACT: \"FAILED_ADD_CONTACT\",\n\n MARKING_CONTACT_AS_PRIMARY: \"MARKING_CONTACT_AS_PRIMARY\",\n MARKED_CONTACT_AS_PRIMARY: \"MARKED_CONTACT_AS_PRIMARY\",\n FAILED_MARK_CONTACT_AS_PRIMARY: \"FAILED_MARK_CONTACT_AS_PRIMARY\",\n\n ARCHIVING_ACCOUNT: \"ARCHIVING_ACCOUNT\",\n ARCHIVED_ACCOUNT: \"ARCHIVED_ACCOUNT\",\n FAILED_ARCHIVE_ACCOUNT: \"FAILED_ARCHIVE_ACCOUNT\",\n\n GETTING_ARCHIVED_LIST: \"GETTING_ARCHIVED_LIST\",\n GOT_ARCHIVED_LIST: \"GOT_ARCHIVED_LIST\",\n FAILED_GET_ARCHIVED_LIST: \"FAILED_GET_ARCHIVED_LIST\",\n\n GETTING_ARCHIVED_CONTACT_LIST: \"GETTING_ARCHIVED_CONTACT_LIST\",\n GOT_ARCHIVED_CONTACT_LIST: \"GOT_ARCHIVED_CONTACT_LIST\",\n FAILED_GET_ARCHIVED_CONTACT_LIST: \"FAILED_GET_ARCHIVED_CONTACT_LIST\",\n\n ARCHIVING_CONTACT: \"ARCHIVING_CONTACT\",\n ARCHIVED_CONTACT: \"ARCHIVED_CONTACT\",\n FAILED_ARCHIVE_CONTACT: \"FAILED_ARCHIVE_CONTACT\",\n\n GETTING_ACCOUNT_ARCHIVED_CONTACTS: \"GETTING_ACCOUNT_ARCHIVED_CONTACTS\",\n GOT_ACCOUNT_ARCHIVED_CONTACTS: \"GOT_ACCOUNT_ARCHIVED_CONTACTS\",\n GET_ACCOUNT_ARCHIVED_CONTACTS_FAILED: \"GET_ACCOUNT_ARCHIVED_CONTACTS_FAILED\",\n\n CLAIMING_PROFILE: \"CLAIMING_PROFILE\",\n CLAIMED_PROFILE: \"CLAIMED_PROFILE\",\n FAILED_CLAIM_PROFILE: \"FAILED_CLAIM_PROFILE\",\n\n GETTING_SELF_SERVICE_STATUS: \"GETTING_SELF_SERVICE_STATUS\",\n GOT_SELF_SERVICE_STATUS: \"GOT_SELF_SERVICE_STATUS\",\n FAILED_GET_SELF_SERVICE_STATUS: \"FAILED_GET_SELF_SERVICE_STATUS\",\n\n GETTING_EMAIL_ATACHMENTS: \"GETTING_EMAIL_ATACHMENTS\",\n GOT_EMAIL_ATACHMENTS: \"GOT_EMAIL_ATACHMENTS\",\n FAILED_GET_EMAIL_ATACHMENTS: \"FAILED_GET_EMAIL_ATACHMENTS\",\n\n UPDATING_DOCUMENT_TYPE: \"UPDATING_DOCUMENT_TYPE\",\n UPDATED_DOCUMENT_TYPE: \"UPDATED_DOCUMENT_TYPE\",\n FAILED_UPDATE_DOCUMENT_TYPE: \"FAILED_UPDATE_DOCUMENT_TYPE\",\n\n DELETING_DOCUMENT: \"DELETING_DOCUMENT\",\n DELETED_DOCUMENT: \"DELETED_DOCUMENT\",\n FAILED_DELETE_DOCUMENT: \"FAILED_DELETE_DOCUMENT\",\n\n DOWNLOADING_ATTACHMENT: \"DOWNLOADING_ATTATCHMENT\",\n DOWNLOADED_ATTACHMENT: \"DOWNLOADED_ATTACHMENT\",\n FAILED_DOWNLOAD_ATTACHMENT: \"FAILED_DOWNLOAD_ATTACHMENT\",\n\n SUBMITING_CONVERSION_INFO: \"SUBMITTING_CONVERSION_INFO\",\n SUBMITTED_CONVERSION_INFO: \"SUBMITTED_CONVERSION_INFO\",\n FAILED_SUBMIT_CONVERSION_INFO: \"FAILED_SUBMIT_CONVERSION_INFO\"\n }\n};\n\nconst submitConversionInfo = request => dispatch => {\n dispatch({ type: actions.SUBMITING_CONVERSION_INFO });\n let endpoint = `v3/api/conversion/submit`;\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.SUBMITTED_CONVERSION_INFO, conversionInfo: response.data });\n })\n .catch(error => {\n handlePromiseError(error, \"Failed to submit your information\", \"customer contact data\");\n dispatch({ type: actions.FAILED_SUBMIT_CONVERSION_INFO });\n throw error;\n });\n};\n\nconst markContactPrimary = (accountingGroupId, contactKey, mode) => dispatch => {\n let endpoint = \"\";\n if (mode === \"ap\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendorcontact/${contactKey}/update/setasprimarycontact`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customercontact/${contactKey}/update/setasprimarycontact`;\n }\n dispatch({ type: actions.MARKING_CONTACT_AS_PRIMARY });\n return data\n .put(endpoint)\n .then(response => {\n dispatch({ type: actions.MARKED_CONTACT_AS_PRIMARY, setAsPrimary: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, \"failed to mark contact primary\", \"mark contact primary\");\n dispatch({ type: actions.FAILED_MARK_CONTACT_AS_PRIMARY });\n throw error;\n });\n};\n\nconst addContact = (accountingGroupId, companyKey, mode, request) => dispatch => {\n let endpoint = \"\";\n if (mode === \"ap\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendor/${companyKey}/vendorcontact/add`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customer/${companyKey}/customercontact/add`;\n }\n dispatch({ type: actions.ADDING_CONTACT });\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.ADDED_CONTACT, addedContact: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, \"failed to add contact\", \"add contact\");\n dispatch({ type: actions.FAILED_ADD_CONTACT });\n throw error;\n });\n};\n\nconst fetchAccountList = (accountingGroupId, params = {}) => (dispatch, getState) => {\n // 1 = vendors, 2 = customers\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendor/list`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customer/list`;\n }\n\n const { top, skip, filter } = params;\n\n endpoint = `${endpoint}?$top=${top || getState().general.pageRowCount}`;\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n if (!isEmpty(filter)) {\n endpoint = `${endpoint}&$filter=${filter}`;\n }\n\n dispatch({ type: actions.GETTING_NETWORK_ACCOUNT_LIST });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_NETWORK_ACCOUNT_LIST, accountList: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetAccountListFailure, \"account list\");\n dispatch({ type: actions.FAILED_GET_NETWORK_ACCOUNT_LIST });\n throw error;\n });\n};\n\nconst getAccountList = accountingGroupId => (dispatch, getState) => {\n let state = getState().network;\n let fetchedAccountList =\n state.gettingNetworkAccountList || state.gotNetworkAccountList || state.failedGetNetworkAccountList;\n\n if (!fetchedAccountList) {\n return dispatch(fetchAccountList(accountingGroupId));\n }\n\n return state.accountList;\n};\n\nconst selectAccountListPage = (accountingGroupId, selectedPage) => (dispatch, getState) => {\n dispatch(\n fetchAccountList(accountingGroupId, {\n top: getState().general.pageRowCount,\n skip: (selectedPage - 1) * getState().general.pageRowCount\n })\n );\n dispatch({ type: actions.SET_NETWORK_ACCOUNT_LIST_LOADED_PAGE, selectedPage });\n};\n\nconst setAccountListFilter = (accountingGroupId, filter) => (dispatch, getState) => {\n dispatch(\n fetchAccountList(accountingGroupId, {\n top: getState().general.pageRowCount,\n skip: 0,\n filter\n })\n );\n dispatch({ type: actions.SET_NETWORK_ACCOUNT_LIST_LOADED_PAGE, selectedPage: 1 });\n};\n\nconst fetchContactList = (accountingGroupId, params = {}) => (dispatch, getState) => {\n // 1 = vendors, 2 = customers\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendorcontact/list`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customercontact/list`;\n }\n\n const { top, skip, filter } = params;\n\n endpoint = `${endpoint}?$top=${top || getState().general.pageRowCount}`;\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n if (!isEmpty(filter)) {\n endpoint = `${endpoint}&$filter=${filter}`;\n }\n\n dispatch({ type: actions.GETTING_NETWORK_CONTACT_LIST });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_NETWORK_CONTACT_LIST, contactList: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetContactListFailure, \"contact list\");\n dispatch({ type: actions.FAILED_GET_NETWORK_CONTACT_LIST });\n throw error;\n });\n};\n\nconst getContactList = accountingGroupId => (dispatch, getState) => {\n let state = getState().network;\n let fetchedContactList =\n state.gettingNetworkContactList || state.gotNetworkContactList || state.failedGetNetworkContactList;\n\n if (!fetchedContactList) {\n return dispatch(fetchContactList(accountingGroupId));\n }\n\n return state.contactList;\n};\n\nconst setContactListFilter = (accountingGroupId, filter) => (dispatch, getState) => {\n dispatch(\n fetchContactList(accountingGroupId, {\n top: getState().general.pageRowCount,\n skip: 0,\n filter\n })\n );\n dispatch({ type: actions.SET_NETWORK_CONTACT_LIST_LOADED_PAGE, selectedPage: 1 });\n};\n\nconst fetchActivityList = (accountingGroupId, params = {}) => (dispatch, getState) => {\n let endpoint = `v3/api/${accountingGroupId}/networkactivity/list`;\n\n const { top, skip } = params;\n\n endpoint = `${endpoint}?$top=${top || getState().general.pageRowCount}`;\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n dispatch({ type: actions.GETTING_NETWORK_ACTIVITIES, skip });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_NETWORK_ACTIVITIES, activityList: response.data });\n })\n .catch(error => {\n handlePromiseError(error, \"activity list failed\", \"activities list\");\n dispatch({ type: actions.FAILED_GET_NETWORK_ACTIVITIES });\n throw error;\n });\n};\n\nconst getActivityList = (accountingGroupId, params) => (dispatch, getState) => {\n let state = getState().network;\n let fetchedActivityList =\n state.gettingNetworkActivityList || state.gotNetworkActivityList || state.failedGetNetworkActivityList;\n\n if (!fetchedActivityList) {\n return dispatch(fetchActivityList(accountingGroupId, params));\n }\n\n return state.activityList;\n};\n\nconst selectContactListPage = (accountingGroupId, selectedPage) => (dispatch, getState) => {\n dispatch(\n fetchContactList(accountingGroupId, {\n top: getState().general.pageRowCount,\n skip: (selectedPage - 1) * getState().general.pageRowCount\n })\n );\n dispatch({ type: actions.SET_NETWORK_CONTACT_LIST_LOADED_PAGE, selectedPage });\n};\n\nconst fetchCustContact = accessId => dispatch => {\n dispatch({ type: actions.GETTING_CUST_CONTACT });\n let endpoint = `v3/api/global/contact/guest/${encodeURIComponent(accessId)}`;\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_CUST_CONTACT, custContact: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetCustContact, \"customer contact data\");\n dispatch({ type: actions.FAILED_GET_CUST_CONTACT });\n throw error;\n });\n};\n\nconst fetchMyProfile = () => dispatch => {\n dispatch({ type: actions.GETTING_CUST_CONTACT });\n let endpoint = `v3/api/global/user/contact`;\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_CUST_CONTACT, custContact: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetCustContact, \"customer contact data\");\n dispatch({ type: actions.FAILED_GET_CUST_CONTACT });\n throw error;\n });\n};\n\nconst postMyProfile = request => dispatch => {\n dispatch({ type: actions.POSTING_CUST_CONTACT });\n let endpoint = `v3/api/global/user/contact/update`;\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_CONTACT, custContact: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustContact, \"customer contact data\");\n dispatch({ type: actions.FAILED_POST_CUST_CONTACT });\n throw error;\n });\n};\n\nconst postMyProfilePicture = file => dispatch => {\n let body = new FormData();\n body.append(\"file\", file);\n dispatch({ type: actions.POSTING_MY_PROFILE_PICTURE });\n let endpoint = `v3/api/global/user/contact/uploaddocument`;\n return data\n .post(endpoint, body, {\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n })\n .then(response => {\n dispatch({ type: actions.POSTED_MY_PROFILE_PICTURE, myProfilePicture: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.UploadingImageFailed, \"customer profile picture\");\n dispatch({ type: actions.FAILED_POST_MY_PROFILE_PICTURE });\n throw error;\n });\n};\n\nconst postCustContact = (accessId, request) => dispatch => {\n dispatch({ type: actions.POSTING_CUST_CONTACT });\n let endpoint = `v3/api/global/contact/update/guest/${encodeURIComponent(accessId)}`;\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_CONTACT, custContact: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustContact, \"customer contact data\");\n dispatch({ type: actions.FAILED_POST_CUST_CONTACT });\n throw error;\n });\n};\n\nconst postCustContactPicture = (accessId, mode, file) => dispatch => {\n let body = new FormData();\n body.append(\"file\", file);\n dispatch({ type: actions.POSTING_CUST_CONTACT_PICTURE });\n let endpoint = `v3/api/global/contact/uploaddocument/${encodeURIComponent(accessId)}`;\n return data\n .post(endpoint, body, {\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n })\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_CONTACT_PICTURE, custContactPicture: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.UploadingImageFailed, \"customer profile picture\");\n dispatch({ type: actions.FAILED_POST_CUST_CONTACT_PICTURE });\n throw error;\n });\n};\n\nconst fetchCustAccount = (accessId, mode) => dispatch => {\n dispatch({ type: actions.GETTING_CUST_ACCOUNT });\n let endpoint = \"\";\n if (mode === \"ap\") {\n endpoint = `v3/api/global/company/approfile/guest/${encodeURIComponent(accessId)}`;\n } else {\n endpoint = `v3/api/global/company/arprofile/guest/${encodeURIComponent(accessId)}`;\n }\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_CUST_ACCOUNT, custAccount: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetCustAccount, \"account\");\n dispatch({ type: actions.FAILED_GET_CUST_ACCOUNT });\n throw error;\n });\n};\n\nconst fetchCustAccountContacts = (accessId, mode) => dispatch => {\n dispatch({ type: actions.GETTING_CUST_ACCOUNT_CONTACTS });\n let endpoint = \"\";\n if (mode === \"ap\") {\n endpoint = `v3/api/global/company/approfile/contacts/guest/${encodeURIComponent(accessId)}`;\n } else {\n endpoint = `v3/api/global/company/arprofile/contacts/guest/${encodeURIComponent(accessId)}`;\n }\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_CUST_ACCOUNT_CONTACTS, custAccountContacts: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetCustAccount, \"account\");\n dispatch({ type: actions.FAILED_GET_CUST_ACCOUNT_CONTACTS });\n throw error;\n });\n};\n\nconst fetchCustAccountDocuments = (accessId, mode) => dispatch => {\n dispatch({ type: actions.GETTING_CUST_ACCOUNT_DOCUMENTS });\n let endpoint = \"\";\n if (mode === \"ap\") {\n endpoint = `v3/api/global/company/approfile/documents/guest/${encodeURIComponent(accessId)}`;\n } else {\n endpoint = `v3/api/global/company/arprofile/documents/guest/${encodeURIComponent(accessId)}`;\n }\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_CUST_ACCOUNT_DOCUMENTS, custAccountDocuments: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetCustAccount, \"account\");\n dispatch({ type: actions.FAILED_GET_CUST_ACCOUNT_DOCUMENTS });\n throw error;\n });\n};\n\nconst fetchOpenOnboardingRequests = (accountingGroupId, params = {}) => (dispatch, getState) => {\n if (getState().network.gettingOpenOnboardingRequests) {\n return false;\n }\n\n let endpoint = `v3/api/activity/${accountingGroupId}/OnboardingRequest/open`;\n\n const { top, skip } = params;\n\n endpoint = `${endpoint}?$top=${top || getState().general.pageRowCount}`;\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n\n dispatch({ type: actions.GETTING_OPEN_ONBOARDING_REQUESTS });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_OPEN_ONBOARDING_REQUESTS, data: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetContactListFailure, \"onboarding requests\");\n dispatch({ type: actions.FAILED_GET_OPEN_ONBOARDING_REQUESTS });\n throw error;\n });\n};\n\nconst getOpenOnboardingRequests = accountingGroupId => (dispatch, getState) => {\n const state = getState().network;\n let fetchedOpenOnboardingRequests =\n state.gettingOpenOnboardingRequests || state.gotOpenOnboardingRequests || state.failedGetOpenOnboardingRequests;\n if (!fetchedOpenOnboardingRequests) {\n return dispatch(fetchOpenOnboardingRequests(accountingGroupId));\n }\n return state.openOnboardingRequests;\n};\n\nconst selectOpenOnboardingRequestsPage = (accountingGroupId, selectedPage) => (dispatch, getState) => {\n return dispatch(\n fetchOpenOnboardingRequests(accountingGroupId, {\n top: getState().general.pageRowCount,\n skip: (selectedPage - 1) * getState().general.pageRowCount\n })\n );\n};\n\nconst fetchOpenProfileUpdateRequests = (accountingGroupId, params = {}) => (dispatch, getState) => {\n if (getState().network.gettingOpenProfileUpdateRequests) {\n return false;\n }\n\n let endpoint = `v3/api/activity/${accountingGroupId}/ProfileUpdateRequest/open`;\n\n const { top, skip } = params;\n\n endpoint = `${endpoint}?$top=${top || getState().general.pageRowCount}`;\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n\n dispatch({ type: actions.GETTING_OPEN_PROFILE_UPDATE_REQUESTS });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_OPEN_PROFILE_UPDATE_REQUESTS, data: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetContactListFailure, \"profile update requests\");\n dispatch({ type: actions.FAILED_GET_OPEN_PROFILE_UPDATE_REQUESTS });\n throw error;\n });\n};\nconst getOpenProfileUpdateRequests = accountingGroupId => (dispatch, getState) => {\n const state = getState().network;\n let fetchedOpenProfileUpdateRequests =\n state.gettingOpenProfileUpdateRequests ||\n state.gotOpenProfileUpdateRequests ||\n state.failedGetOpenProfileUpdateRequests;\n\n if (!fetchedOpenProfileUpdateRequests) {\n return dispatch(fetchOpenProfileUpdateRequests(accountingGroupId));\n }\n return state.openProfileUpdateRequests;\n};\n\nconst selectOpenProfileUpdateRequestsPage = (accountingGroupId, selectedPage) => (dispatch, getState) => {\n return dispatch(\n fetchOpenProfileUpdateRequests(accountingGroupId, {\n top: getState().general.pageRowCount,\n skip: (selectedPage - 1) * getState().general.pageRowCount\n })\n );\n};\nconst postCustAccount = (accessId, mode, request) => dispatch => {\n dispatch({ type: actions.POSTING_CUST_ACCOUNT });\n let endpoint = \"\";\n if (mode === \"ar\") {\n endpoint = `v3/api/global/company/arprofile/update/guest/${encodeURIComponent(accessId)}`;\n } else {\n endpoint = `v3/api/global/company/approfile/update/guest/${encodeURIComponent(accessId)}`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT, custAccount: request });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustAccount, \"post cust account\");\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT });\n throw error;\n });\n};\n\nconst updateCustContact = (accountingGroupKey, lockstepContactKey, mode, request) => dispatch => {\n dispatch({ type: actions.POSTING_CUST_CONTACT });\n let endpoint = \"\";\n if (mode === \"ap\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/vendorcontact/${lockstepContactKey}/update`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/customercontact/${lockstepContactKey}/update`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_CONTACT, custContact: request });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustAccount, \"post cust contact\", () =>\n raiseValidationError(error, Resources.FailedPostCustAccount)\n );\n dispatch({ type: actions.FAILED_POST_CUST_CONTACT });\n throw error;\n });\n};\n\nconst postCustAccountKeyContact = (accessId, request, mode) => dispatch => {\n dispatch({ type: actions.POSTING_CUST_ACCOUNT });\n let endpoint = \"\";\n if (mode === \"ar\") {\n endpoint = `v3/api/global/company/arprofile/contacts/update/guest/${encodeURIComponent(accessId)}`;\n } else {\n endpoint = `v3/api/global/company/approfile/contacts/update/guest/${encodeURIComponent(accessId)}`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT, custAccount: request });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustAccount, \"post cust account\");\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT });\n throw error;\n });\n};\n\nconst postCustAccountKeyDocuments = (accessId, mode, request) => dispatch => {\n dispatch({ type: actions.POSTING_CUST_ACCOUNT });\n let endpoint = ``;\n if (mode === \"ar\") {\n endpoint = `v3/api/global/company/arprofile/documents/update/guest/${encodeURIComponent(accessId)}`;\n } else {\n endpoint = `v3/api/global/company/approfile/documents/update/guest/${encodeURIComponent(accessId)}`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT, custAccount: request });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustAccount, \"post cust account\");\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT });\n throw error;\n });\n};\n\nconst postCustAccountPicture = (accessId, mode, file) => dispatch => {\n let body = new FormData();\n body.append(\"file\", file);\n dispatch({ type: actions.POSTING_CUST_ACCOUNT_PICTURE });\n let endpoint = `v3/api/global/company/uploaddocument/${encodeURIComponent(accessId)}`;\n return data\n .post(endpoint, body, {\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n })\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT_PICTURE, custAccountPicture: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.UploadingImageFailed, \"account profile picture\");\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT_PICTURE });\n throw error;\n });\n};\n\nconst fetchAccountProfile = (accountingGroupId, accountKey) => (dispatch, getState) => {\n if (getState().network.gettingAccountProfiles[accountKey] || isEmpty(accountingGroupId) || isEmpty(accountKey)) {\n return false;\n }\n\n // 1 = vendors, 2 = customers\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendor/${accountKey}/arprofile`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customer/${accountKey}/arprofile`;\n }\n\n dispatch({ type: actions.GETTING_ACCOUNT_PROFILE, accountKey });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_ACCOUNT_PROFILE, accountProfile: response.data, accountKey });\n return response;\n })\n .catch(rejection => {\n handlePromiseError(rejection, Resources.FailedGetCustAccount, \"customer account\");\n dispatch({ type: actions.GET_ACCOUNT_PROFILE_FAILED, accountKey });\n throw rejection;\n });\n};\n\nconst getAccountProfile = (accountingGroupId, custKey) => (dispatch, getState) => {\n if (isEmpty(custKey)) {\n return false;\n }\n let state = getState();\n\n if (!isEmpty(state.network.accountsMap[custKey])) {\n if (!state.network.gotCustomerAccounts[custKey] && !state.network.failedGetCustomerAccounts[custKey]) {\n dispatch(fetchAccountProfile(accountingGroupId, custKey));\n }\n return state.network.accountsMap[custKey];\n }\n\n // Look through search results to see if the account is there\n let searchAccount = find(state.search.values.customers, customer => custKey === customer.entityGlobalKey.toString());\n if (!isEmpty(searchAccount)) {\n dispatch(fetchAccountProfile(accountingGroupId, custKey));\n return searchAccount;\n }\n\n if (!state.network.gotCustomerAccounts[custKey] && !state.network.failedGetCustomerAccounts[custKey]) {\n return dispatch(fetchAccountProfile(accountingGroupId, custKey));\n } else {\n return null;\n }\n};\n\nconst fetchAccountDocuments = (accountingGroupId, accountKey) => (dispatch, getState) => {\n if (getState().network.gettingAccountDocuments[accountKey] || isEmpty(accountingGroupId) || isEmpty(accountKey)) {\n return false;\n }\n\n // 1 = vendors, 2 = customers\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendor/${accountKey}/documents`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customer/${accountKey}/documents`;\n }\n\n dispatch({ type: actions.GETTING_ACCOUNT_DOCUMENTS, accountKey });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_ACCOUNT_DOCUMENTS, accountDocuments: response.data.documents, accountKey });\n return response;\n })\n .catch(rejection => {\n handlePromiseError(rejection, Resources.FailedGetCustAccountDocuments, \"account documents\");\n dispatch({ type: actions.GET_ACCOUNT_DOCUMENTS_FAILED, accountKey });\n throw rejection;\n });\n};\n\nconst getAccountDocuments = (accountingGroupId, accountKey) => (dispatch, getState) => {\n if (isEmpty(accountKey)) {\n return false;\n }\n let state = getState();\n\n if (state.network.accountDocumentsMap[accountKey] !== undefined) {\n return state.network.accountDocumentsMap[accountKey];\n }\n\n if (\n state.network.gettingAccountDocuments[accountKey] ||\n state.network.gotAccountDocuments[accountKey] ||\n state.network.failedGetAccountDocuments[accountKey]\n ) {\n return null;\n }\n\n dispatch(fetchAccountDocuments(accountingGroupId, accountKey));\n return null;\n};\n\nconst fetchAccountContacts = (accountingGroupId, accountKey) => (dispatch, getState) => {\n if (getState().network.gettingAccountContacts[accountKey] || isEmpty(accountingGroupId) || isEmpty(accountKey)) {\n return false;\n }\n\n // 1 = vendors, 2 = customers\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendor/${accountKey}/vendorcontacts`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customer/${accountKey}/customercontacts`;\n }\n\n dispatch({ type: actions.GETTING_ACCOUNT_CONTACTS, accountKey });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_ACCOUNT_CONTACTS, accountContacts: response.data, accountKey });\n return response;\n })\n .catch(rejection => {\n handlePromiseError(rejection, Resources.FailedGetCustAccountContacts, \"account contacts\");\n dispatch({ type: actions.GET_ACCOUNT_CONTACTS_FAILED, accountKey });\n throw rejection;\n });\n};\n\nconst fetchAccountArchivedContacts = (accountingGroupId, accountKey) => (dispatch, getState) => {\n if (getState().network.gettingAccountContacts[accountKey] || isEmpty(accountingGroupId) || isEmpty(accountKey)) {\n return false;\n }\n\n // 1 = vendors, 2 = customers\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendor/${accountKey}/archivedvendorcontacts`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customer/${accountKey}/archivedcustomercontacts`;\n }\n\n dispatch({ type: actions.GETTING_ACCOUNT_ARCHIVED_CONTACTS, accountKey });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_ACCOUNT_ARCHIVED_CONTACTS, accountArchivedContacts: response.data, accountKey });\n return response;\n })\n .catch(rejection => {\n handlePromiseError(rejection, Resources.FailedGetCustAccountContacts, \"account archived contacts\");\n dispatch({ type: actions.GET_ACCOUNT_ARCHIVED_CONTACTS_FAILED, accountKey });\n throw rejection;\n });\n};\n\nconst getAccountContacts = (accountingGroupId, accountKey) => (dispatch, getState) => {\n if (isEmpty(accountKey)) {\n return false;\n }\n let state = getState();\n\n if (state.network.accountContactsMap[accountKey] !== undefined) {\n return state.network.accountContactsMap[accountKey];\n }\n\n if (\n state.network.gettingAccountContacts[accountKey] ||\n state.network.gotAccountContacts[accountKey] ||\n state.network.failedGetAccountContacts[accountKey]\n ) {\n return null;\n }\n\n dispatch(fetchAccountContacts(accountingGroupId, accountKey));\n return null;\n};\n\nconst getAccountArchivedContacts = (accountingGroupId, accountKey) => (dispatch, getState) => {\n if (isEmpty(accountKey)) {\n return false;\n }\n let state = getState();\n\n if (state.network.accountArchivedContactsMap[accountKey] !== undefined) {\n return state.network.accountArchivedContactsMap[accountKey];\n }\n\n if (\n state.network.gettingAccountArchivedContacts[accountKey] ||\n state.network.gotAccountArchivedContacts[accountKey] ||\n state.network.failedGetAccountArchivedContacts[accountKey]\n ) {\n return null;\n }\n\n dispatch(fetchAccountArchivedContacts(accountingGroupId, accountKey));\n return null;\n};\n\nconst fetchContactProfile = (accountingGroupId, contactKey) => (dispatch, getState) => {\n if (getState().network.gettingContactProfiles[contactKey] || isEmpty(accountingGroupId) || isEmpty(contactKey)) {\n return false;\n }\n\n // 1 = vendors, 2 = customers\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendorcontact/${contactKey}`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customercontact/${contactKey}`;\n }\n\n dispatch({ type: actions.GETTING_CONTACT_PROFILE, contactKey });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_CONTACT_PROFILE, customerContact: response.data, contactKey });\n return response;\n })\n .catch(rejection => {\n handlePromiseError(rejection, Resources.FailedGetCustContact, \"customer contact\");\n dispatch({ type: actions.GOT_CONTACT_PROFILE_FAILED, contactKey });\n throw rejection;\n });\n};\n\nconst getContactProfile = (accountingGroupId, contactKey) => (dispatch, getState) => {\n if (isEmpty(contactKey)) {\n return false;\n }\n let state = getState();\n\n if (state.network.contactsMap[contactKey] !== undefined) {\n if (!state.network.gotCustomerContacts[contactKey] && !state.network.failedGetCustomerContacts[contactKey]) {\n dispatch(fetchContactProfile(accountingGroupId, contactKey));\n }\n return state.network.contactsMap[contactKey];\n }\n\n // Look through search results to check if the contact is there\n let searchContact = find(\n state.search.values.customerContacts,\n contact => contactKey === contact.entityGlobalKey.toString()\n );\n if (!isEmpty(searchContact)) {\n dispatch(fetchContactProfile(accountingGroupId, contactKey));\n return searchContact;\n }\n\n return dispatch(fetchContactProfile(accountingGroupId, contactKey));\n};\n\nconst sendAccountProfileUpdateRequest = accountKeys => (dispatch, getState) => {\n if (isEmpty(accountKeys) || getState().network.postingAccountProfileUpdateRequest) {\n return false;\n }\n let body = accountKeys;\n dispatch({ type: actions.POSTING_ACCOUNT_PROFILE_UPDATE_REQUEST, accountKeys });\n return data\n .post(`v3/api/updaterequest/profile`, body)\n .then(response => {\n dispatch({ type: actions.POSTED_ACCOUNT_PROFILE_UPDATE_REQUEST, accountKeys });\n return response;\n })\n .catch(rejection => {\n handlePromiseError(rejection, \"TODO: Sending account profile update request failed.\", \"account profile request\");\n dispatch({ type: actions.FAILED_POST_ACCOUNT_PROFILE_UPDATE_REQUEST, accountKeys });\n throw rejection;\n });\n};\n\nconst sendContactProfileUpdateRequest = contactKeys => (dispatch, getState) => {\n if (isEmpty(contactKeys) || getState().network.postingContactProfileUpdateRequest) {\n return false;\n }\n let endpoint = `v3/api/updaterequest/contact`;\n let body = contactKeys;\n dispatch({ type: actions.POSTING_CONTACT_PROFILE_UPDATE_REQUEST, contactKeys });\n return data\n .post(endpoint, body)\n .then(response => {\n dispatch({ type: actions.POSTED_CONTACT_PROFILE_UPDATE_REQUEST, contactKeys });\n return response;\n })\n .catch(rejection => {\n handlePromiseError(rejection, \"TODO: Sending contact profile update request failed.\", \"contact profile request\");\n dispatch({ type: actions.FAILED_POST_CONTACT_PROFILE_UPDATE_REQUEST, contactKeys });\n throw rejection;\n });\n};\n\nconst fetchHeaderInfo = accessId => dispatch => {\n dispatch({ type: actions.GETTING_HEADER_INFO, accessId });\n return data\n .get(`v3/api/global/account/headerinfo/guest/${encodeURIComponent(accessId)}`)\n .then(response => {\n dispatch({ type: actions.GOT_HEADER_INFO, headerInfo: response.data });\n return response;\n })\n .catch(rejection => {\n handlePromiseError(rejection, \"TODO: Geting header info failed\", \"header info\");\n dispatch({ type: actions.FAILED_GET_HEADER_INFO });\n throw rejection;\n });\n};\n\nconst fetchAccountSearchResults = (accountingGroupId, params = {}) => (dispatch, getState) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n let searchAttribute;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendor/list`;\n searchAttribute = \"VendorName\";\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customer/list`;\n searchAttribute = \"CustName\";\n }\n\n const { top = getState().general.pageRowCount, skip = 0, searchTerm } = params;\n\n if (!isEmpty(top)) {\n endpoint = `${endpoint}?$top=${top}`;\n }\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n if (!isEmpty(searchTerm)) {\n endpoint = `${endpoint}&$filter=${searchAttribute}%20LIKE%20\"${searchTerm}\"`;\n }\n\n dispatch({ type: actions.GETTING_NETWORK_ACCOUNT_SEARCH_RESULTS, searchTerm });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_NETWORK_ACCOUNT_SEARCH_RESULTS, searchResults: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetAccountListFailure, \"account list\");\n dispatch({ type: actions.FAILED_GET_NETWORK_ACCOUNT_SEARCH_RESULTS });\n throw error;\n });\n};\n\nconst debouncedFetchAccountSearchResultsGet = debounce((accountingGroupId, params = {}, dispatch, getState) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n let searchAttribute;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendor/list`;\n searchAttribute = \"VendorName\";\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customer/list`;\n searchAttribute = \"CustName\";\n }\n\n const { top = getState().general.pageRowCount, skip = 0, searchTerm } = params;\n\n if (!isEmpty(top)) {\n endpoint = `${endpoint}?$top=${top}`;\n }\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n if (!isEmpty(searchTerm)) {\n endpoint = `${endpoint}&$filter=${searchAttribute}%20LIKE%20\"${searchTerm}\"`;\n }\n\n dispatch({ type: actions.GETTING_NETWORK_ACCOUNT_SEARCH_RESULTS, searchTerm: searchTerm });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_NETWORK_ACCOUNT_SEARCH_RESULTS, searchResults: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetAccountListFailure, \"account list\");\n dispatch({ type: actions.FAILED_GET_NETWORK_ACCOUNT_SEARCH_RESULTS });\n throw error;\n });\n}, 400);\n\nconst debouncedFetchAccountSearchResults = (accountingGroupId, params) => (dispatch, getState) => {\n const store = getState().network;\n if (store.gettingNetworkAccountSearchResults && _.isEqual(params.searchTerm, store.accountSearchTerm)) {\n return;\n }\n debouncedFetchAccountSearchResultsGet(accountingGroupId, params, dispatch, getState);\n};\n\nconst fetchContactSearchResults = (accountingGroupId, params = {}) => (dispatch, getState) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n let searchAttribute;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendorcontact/list`;\n searchAttribute = \"ContactName\";\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customercontact/list`;\n searchAttribute = \"ContactName\";\n }\n\n const { top = getState().general.pageRowCount, skip = 0, searchTerm } = params;\n\n if (!isEmpty(top)) {\n endpoint = `${endpoint}?$top=${top}`;\n }\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n if (!isEmpty(searchTerm)) {\n endpoint = `${endpoint}&$filter=${searchAttribute}%20LIKE%20\"${searchTerm}\"`;\n }\n\n dispatch({ type: actions.GETTING_NETWORK_CONTACT_SEARCH_RESULTS, searchTerm });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_NETWORK_CONTACT_SEARCH_RESULTS, searchResults: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetAccountListFailure, \"account list\");\n dispatch({ type: actions.FAILED_GET_NETWORK_CONTACT_SEARCH_RESULTS });\n throw error;\n });\n};\n\nconst debouncedFetchContactSearchResultsGet = debounce((accountingGroupId, params = {}, dispatch, getState) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n let searchAttribute;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendorcontact/list`;\n searchAttribute = \"ContactName\";\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customercontact/list`;\n searchAttribute = \"ContactName\";\n }\n\n const { top = getState().general.pageRowCount, skip = 0, searchTerm } = params;\n\n if (!isEmpty(top)) {\n endpoint = `${endpoint}?$top=${top}`;\n }\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n if (!isEmpty(searchTerm)) {\n endpoint = `${endpoint}&$filter=${searchAttribute}%20LIKE%20\"${searchTerm}\"`;\n }\n\n dispatch({ type: actions.GETTING_NETWORK_CONTACT_SEARCH_RESULTS, searchTerm: searchTerm });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_NETWORK_CONTACT_SEARCH_RESULTS, searchResults: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetAccountListFailure, \"account list\");\n dispatch({ type: actions.FAILED_GET_NETWORK_CONTACT_SEARCH_RESULTS });\n throw error;\n });\n}, 400);\n\nconst debouncedFetchContactSearchResults = (accountingGroupId, params) => (dispatch, getState) => {\n const store = getState().network;\n if (store.gettingNetworkContactSearchResults && _.isEqual(params.searchTerm, store.contactSearchTerm)) {\n return;\n }\n debouncedFetchContactSearchResultsGet(accountingGroupId, params, dispatch, getState);\n};\n\nconst fetchAccountingGroupProfile = (accountingGroupKey, companyGlobalKey, mode) => dispatch => {\n dispatch({ type: actions.GETTING_CUST_ACCOUNT });\n let endpoint = \"\";\n if (mode === \"ap\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/company/${companyGlobalKey}/approfile`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/company/${companyGlobalKey}/arprofile`;\n }\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_CUST_ACCOUNT, custAccount: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetCustAccount, \"account\");\n dispatch({ type: actions.FAILED_GET_CUST_ACCOUNT });\n throw error;\n });\n};\n\nconst fetchAccountingGroupProfileContacts = (accountingGroupKey, companyGlobalKey, mode) => dispatch => {\n dispatch({ type: actions.GETTING_CUST_ACCOUNT_CONTACTS });\n let endpoint = \"\";\n if (mode === \"ap\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/company/${companyGlobalKey}/approfile/contacts`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/company/${companyGlobalKey}/arprofile/contacts`;\n }\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_CUST_ACCOUNT_CONTACTS, custAccountContacts: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetCustAccountContacts, \"account\");\n dispatch({ type: actions.FAILED_GET_CUST_ACCOUNT_CONTACTS });\n throw error;\n });\n};\n\nconst fetchAccountingGroupProfileDocuments = (accountingGroupKey, companyGlobalKey, mode) => dispatch => {\n dispatch({ type: actions.GETTING_CUST_ACCOUNT_DOCUMENTS });\n let endpoint = \"\";\n if (mode === \"ap\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/company/${companyGlobalKey}/approfile/documents`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/company/${companyGlobalKey}/arprofile/documents`;\n }\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_CUST_ACCOUNT_DOCUMENTS, custAccountDocuments: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetCustAccountDocuments, \"account\");\n dispatch({ type: actions.FAILED_GET_CUST_ACCOUNT_DOCUMENTS });\n throw error;\n });\n};\n\nconst postAccountingGroupProfile = (accountingGroupKey, companyGlobalKey, mode, request) => dispatch => {\n dispatch({ type: actions.POSTING_CUST_ACCOUNT });\n let endpoint = \"\";\n if (mode === \"ar\") {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/company/${companyGlobalKey}/arprofile/update`;\n } else {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/company/${companyGlobalKey}/approfile/update`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT, custAccount: request });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustAccount, \"post cust account\");\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT });\n throw error;\n });\n};\n\nconst updateAccountingGroupProfile = (accountingGroupKey, accountId, mode, request) => dispatch => {\n dispatch({ type: actions.POSTING_CUST_ACCOUNT });\n let endpoint = \"\";\n if (mode === \"ar\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/vendor/${accountId}/arprofile/update`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/customer/${accountId}/arprofile/update`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT, custAccount: request });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustAccount, \"post cust account\", () =>\n raiseValidationError(error, Resources.FailedPostCustAccount)\n );\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT });\n throw error;\n });\n};\n\nconst postAccountingGroupProfileContacts = (accountingGroupKey, companyGlobalKey, mode, request) => dispatch => {\n dispatch({ type: actions.POSTING_CUST_ACCOUNT });\n let endpoint = \"\";\n if (mode === \"ar\") {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/company/${companyGlobalKey}/arprofile/contact/update`;\n } else {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/company/${companyGlobalKey}/approfile/contact/update`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT, custAccountContacts: request });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustAccount, \"post cust account\");\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT });\n throw error;\n });\n};\n\nconst postAccountingGroupProfileDocuments = (accountingGroupKey, companyGlobalKey, mode, request) => dispatch => {\n dispatch({ type: actions.POSTING_CUST_ACCOUNT });\n let endpoint = \"\";\n if (mode === \"ar\") {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/company/${companyGlobalKey}/arprofile/documents/update`;\n } else {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/company/${companyGlobalKey}/approfile/documents/update`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT, custAccountDocuments: request });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustAccount, \"post cust account\");\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT });\n throw error;\n });\n};\n\nconst fetchAccountSettings = accountingGroupKey => dispatch => {\n dispatch({ type: actions.GETTING_CUST_ACCOUNT_SETTINGS });\n let endpoint = `v3/api/${accountingGroupKey}/settings`;\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_CUST_ACCOUNT_SETTINGS, custAccountSettings: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetCustAccount, \"account\");\n dispatch({ type: actions.FAILED_GET_CUST_ACCOUNT_SETTINGS });\n throw error;\n });\n};\n\nconst postAccountSettings = (accountingGroupKey, request) => dispatch => {\n dispatch({ type: actions.POSTING_CUST_ACCOUNT_SETTINGS });\n let endpoint = `v3/api/${accountingGroupKey}/settings`;\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT_SETTINGS, custAccountSettings: request });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostCustAccount, \"post cust account\");\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT_SETTINGS });\n throw error;\n });\n};\n\nconst uploadAccountingGroupDocument = (accountingGroupKey, companyGlobalKey, mode, file) => dispatch => {\n let body = new FormData();\n body.append(\"file\", file);\n dispatch({ type: actions.POSTING_CUST_ACCOUNT_PICTURE });\n let endpoint = ``;\n if (mode === \"ar\") {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/company/${companyGlobalKey}/arprofile/uploaddocument`;\n } else {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/company/${companyGlobalKey}/approfile/uploaddocument`;\n }\n return data\n .post(endpoint, body, {\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n })\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT_PICTURE, custAccountPicture: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.UploadingImageFailed, \"account profile picture\");\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT_PICTURE });\n throw error;\n });\n};\n\nconst addAccountingGroupDocument = (accountingGroupKey, vendorGlobalKey, mode, file) => dispatch => {\n let body = new FormData();\n body.append(\"file\", file);\n dispatch({ type: actions.UPLOADING_ACCOUNT_DOCUMENT });\n let endpoint = ``;\n if (mode === \"ar\") {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/customer/${vendorGlobalKey}/arprofile/uploaddocument`;\n } else {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/vendor/${vendorGlobalKey}/approfile/uploaddocument`;\n }\n return data\n .post(endpoint, body, {\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n })\n .then(response => {\n dispatch({ type: actions.UPLOADED_ACCOUNT_DOCUMENT, uploadedAccountDocument: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.UploadingDocument, \"account document\");\n dispatch({ type: actions.FAILED_UPLOAD_ACCOUNT_DOCUMENT });\n throw error;\n });\n};\n\nconst fetchEmailAttachments = (accountingGroupKey, companyGlobalKey, entityKey) => (dispatch, getState) => {\n // 1 = vendors, 2 = customers\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n\n let endpoint;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyGlobalKey}/vendor/${entityKey}`;\n } else {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyGlobalKey}/customer/${entityKey}`;\n }\n\n dispatch({ type: actions.GETTING_EMAIL_ATACHMENTS, entityKey });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_EMAIL_ATACHMENTS, emailAtachments: response.data, entityKey });\n return response;\n })\n .catch(rejection => {\n handlePromiseError(rejection, Resources.FailedGetCustAccountDocuments, \"account documents\");\n dispatch({ type: actions.FAILED_GET_EMAIL_ATACHMENTS, entityKey });\n throw rejection;\n });\n};\n\nconst getEmailAttachments = (accountingGroupKey, companyGlobalKey, entityKey) => (dispatch, getState) => {\n if (isEmpty(entityKey)) {\n return false;\n }\n let state = getState();\n\n if (state.network.emailAttachments !== undefined) {\n return state.network.emailAttachments.value;\n }\n\n if (\n state.network.gettingEmailAttachments ||\n state.network.gotEmailAttachments ||\n state.network.failedGetEmailAttachments\n ) {\n return null;\n }\n\n dispatch(fetchEmailAttachments(accountingGroupKey, companyGlobalKey, entityKey));\n return null;\n};\n\nconst updateDocumentType = (accountingGroupKey, entityKey, request) => (dispatch, getState) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n\n dispatch({ type: actions.UPDATING_DOCUMENT_TYPE });\n let endpoint = \"\";\n if (accountingGroupType === \"customers\") {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/customer/${entityKey}/arprofile/documenttype`;\n } else {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/vendor/${entityKey}/approfile/documenttype`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.UPDATED_DOCUMENT_TYPE, updatedDocumentType: request });\n return response;\n })\n .catch(error => {\n handlePromiseError(error, \"Failed to update document type\", \"document type\");\n dispatch({ type: actions.FAILED_UPDATE_DOCUMENT_TYPE });\n throw error;\n });\n};\n\nconst deleteDocuments = (accountingGroupKey, entityKey, request) => (dispatch, getState) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n\n dispatch({ type: actions.DELETING_DOCUMENT });\n let endpoint = \"\";\n if (accountingGroupType === \"customers\") {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/customer/${entityKey}/arprofile/deletedocuments`;\n } else {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/vendor/${entityKey}/approfile/deletedocuments`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.DELETED_DOCUMENT, deletedDocuments: request });\n return response;\n })\n .catch(error => {\n handlePromiseError(error, \"Failed to update document type\", \"document type\");\n dispatch({ type: actions.FAILED_DELETE_DOCUMENT });\n throw error;\n });\n};\n\nconst updateEmailAttachmentType = (accountingGroupKey, companyKey, request) => (dispatch, getState) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n\n dispatch({ type: actions.UPDATING_DOCUMENT_TYPE });\n let endpoint = \"\";\n if (accountingGroupType === \"customers\") {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyKey}/customer/attachmenttype`;\n } else {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyKey}/vendor/attachmenttype`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.UPDATED_DOCUMENT_TYPE, updatedDocumentType: request });\n return response;\n })\n .catch(error => {\n handlePromiseError(error, \"Failed to update document type\", \"document type\");\n dispatch({ type: actions.FAILED_UPDATE_DOCUMENT_TYPE });\n throw error;\n });\n};\n\nconst deleteAttachments = (accountingGroupKey, companyKey, request) => (dispatch, getState) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n\n dispatch({ type: actions.DELETING_DOCUMENT });\n let endpoint = \"\";\n if (accountingGroupType === \"customers\") {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyKey}/customer/deleteattachments`;\n } else {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyKey}/vendor/deleteattachments`;\n }\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.DELETED_DOCUMENT, updatedDocumentType: request });\n return response;\n })\n .catch(error => {\n handlePromiseError(error, \"Failed to delete documents\", \"document type\");\n dispatch({ type: actions.FAILED_DELETE_DOCUMENT });\n throw error;\n });\n};\n\nconst downloadAttachment = (accountingGroupKey, companyKey, entityKey, attachmentKey, signature) => (\n dispatch,\n getState\n) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n\n dispatch({ type: actions.DOWNLOADING_ATTACHMENT });\n let endpoint = \"\";\n if (accountingGroupType === \"customers\") {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyKey}/customer/${entityKey}/${attachmentKey}/${signature}`;\n } else {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyKey}/vendor/${entityKey}/${attachmentKey}/${signature}`;\n }\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.DOWNLOADED_ATTACHMENT, attachmentDownload: response.data });\n let config = getConfig();\n let downloadURL = config.apiEndpoint.concat(\"/\").concat(endpoint);\n openUrlForDownload(downloadURL);\n return response;\n })\n .catch(error => {\n handlePromiseError(error, \"Failed to download document\", \"document type\");\n dispatch({ type: actions.FAILED_DOWNLOAD_ATTACHMENT });\n throw error;\n });\n};\n\nconst fetchAttachmentSearchResults = (accountingGroupKey, companyGlobalKey, entityKey, params = {}) => (\n dispatch,\n getState\n) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n let searchAttribute = \"FileName\";\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyGlobalKey}/vendor/${entityKey}`;\n } else {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyGlobalKey}/customer/${entityKey}`;\n }\n\n const { top = getState().general.pageRowCount, skip = 0, searchTerm } = params;\n\n if (!isEmpty(top)) {\n endpoint = `${endpoint}?$top=${top}`;\n }\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n if (!isEmpty(searchTerm)) {\n endpoint = `${endpoint}&$filter=${searchAttribute}%20LIKE%20\"${searchTerm}\"`;\n }\n\n dispatch({ type: actions.GETTING_NETWORK_ACCOUNT_SEARCH_RESULTS, searchTerm });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_NETWORK_ACCOUNT_SEARCH_RESULTS, searchResults: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetAccountListFailure, \"account list\");\n dispatch({ type: actions.FAILED_GET_NETWORK_ACCOUNT_SEARCH_RESULTS });\n throw error;\n });\n};\n\nconst debouncedFetchAttachmentSearchResultsGet = debounce(\n (accountingGroupKey, companyGlobalKey, entityKey, params = {}, dispatch, getState) => {\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n let searchAttribute = \"FileName\";\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyGlobalKey}/vendor/${entityKey}`;\n } else {\n endpoint = `v3/api/activity/${accountingGroupKey}/company/${companyGlobalKey}/customer/${entityKey}`;\n }\n\n const { top = getState().general.pageRowCount, skip = 0, searchTerm } = params;\n\n if (!isEmpty(top)) {\n endpoint = `${endpoint}?$top=${top}`;\n }\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n if (!isEmpty(searchTerm)) {\n endpoint = `${endpoint}&$filter=${searchAttribute}%20LIKE%20\"${searchTerm}\"`;\n }\n\n dispatch({ type: actions.GETTING_NETWORK_ACCOUNT_SEARCH_RESULTS, searchTerm: searchTerm });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_NETWORK_ACCOUNT_SEARCH_RESULTS, searchResults: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetAccountListFailure, \"account list\");\n dispatch({ type: actions.FAILED_GET_NETWORK_ACCOUNT_SEARCH_RESULTS });\n throw error;\n });\n },\n 400\n);\n\nconst debouncedFetchAttachmentSearchResults = (accountingGroupKey, companyGlobalKey, entityKey, params) => (\n dispatch,\n getState\n) => {\n const store = getState().network;\n if (store.gettingNetworkAccountSearchResults && _.isEqual(params.searchTerm, store.accountSearchTerm)) {\n return;\n }\n debouncedFetchAttachmentSearchResultsGet(accountingGroupKey, companyGlobalKey, entityKey, params, dispatch, getState);\n};\n\nconst uploadAccountingGroupDocuments = (accountingGroupKey, companyGlobalKey, mode, file) => dispatch => {\n let body = new FormData();\n body.append(\"file\", file);\n dispatch({ type: actions.UPLOADING_ACCOUNT_DOCUMENT });\n let endpoint = ``;\n if (mode === \"ar\") {\n endpoint = `v3/api/wrkspcar/${accountingGroupKey}/company/${companyGlobalKey}/arprofile/uploaddocument`;\n } else {\n endpoint = `v3/api/wrkspcap/${accountingGroupKey}/company/${companyGlobalKey}/approfile/uploaddocument`;\n }\n return data\n .post(endpoint, body, {\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n })\n .then(response => {\n dispatch({ type: actions.UPLOADED_ACCOUNT_DOCUMENT, uploadedAccountDocument: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.UploadDocumentFailed, \"account document\");\n dispatch({ type: actions.FAILED_UPLOAD_ACCOUNT_DOCUMENT });\n throw error;\n });\n};\n\nconst fetchNotes = entityGlobalKey => dispatch => {\n dispatch({ type: actions.GETTING_NOTES });\n let endpoint = `v3/api/global/${entityGlobalKey}/notes`;\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_NOTES, notes: response.data, entityGlobalKey: entityGlobalKey });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetNotes, \"notes\");\n dispatch({ type: actions.FAILED_GET_NOTES });\n throw error;\n });\n};\n\nconst postNotes = (entityGlobalKey, request) => dispatch => {\n dispatch({ type: actions.POSTING_NOTES });\n let endpoint = `v3/api/global/${entityGlobalKey}/notes`;\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_NOTES, notes: request });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedPostNotes, \"post notes\");\n dispatch({ type: actions.FAILED_POST_NOTES });\n throw error;\n });\n};\n\nconst deleteNote = (entityGlobalKey, entityGlobalNoteKey) => dispatch => {\n dispatch({ type: actions.DELETING_NOTE });\n let endpoint = `v3/api/global/${entityGlobalKey}/notes/${entityGlobalNoteKey}`;\n return data\n .delete(endpoint)\n .then(response => {\n dispatch({ type: actions.DELETED_NOTE, notes: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedDeleteNote, \"notes\");\n dispatch({ type: actions.FAILED_DELETE_NOTE });\n throw error;\n });\n};\n\nconst getShareFlyoutMessage = (accountingGroupType, entityGlobalKey) => dispatch => {\n dispatch({ type: actions.GETTING_SHARE_FLYOUT_MESSAGE });\n let endpoint = `v3/api/global/${accountingGroupType}/${entityGlobalKey}/share`;\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_SHARE_FLYOUT_MESSAGE, shareFlyout: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetShareFlyout, \"share flyout\");\n dispatch({ type: actions.FAILED_GET_SHARE_FLYOUT_MESSAGE });\n throw error;\n });\n};\n\nconst fetchShareLink = (mode, entityGlobalKey) => dispatch => {\n dispatch({ type: actions.GETTING_SHARE_LINK });\n let endpoint = `v3/api/global/${mode}/${entityGlobalKey}/link`;\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_SHARE_LINK, shareLink: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetShareLink, \"share link\");\n dispatch({ type: actions.FAILED_GET_SHARE_LINK });\n throw error;\n });\n};\n\nconst sendShareFlyout = (accountingGroupGlobalKey, companyGlobalKey, request) => dispatch => {\n dispatch({ type: actions.POSTING_SHARE_FLYOUT });\n let endpoint = `v3/api/activity/${accountingGroupGlobalKey}/company/${companyGlobalKey}/draft/EmailSend`;\n return data\n .post(endpoint, request)\n .then(response => {\n endpoint = `v3/api/activity/${accountingGroupGlobalKey}/company/${companyGlobalKey}/draft/EmailSend/${response.data}/commit`;\n\n return data\n .post(endpoint, request)\n .then(response => {\n dispatch({ type: actions.POSTED_SHARE_FLYOUT, session: response.data });\n return response;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedSendMessage, \"send message\");\n dispatch({ type: actions.FAILED_POST_SHARE_FLYOUT });\n throw error;\n });\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedSendMessage, \"send message\");\n dispatch({ type: actions.FAILED_POST_SHARE_FLYOUT });\n throw error;\n });\n};\n\nconst fetchSubsidiaryList = accountingGroupGlobalKey => dispatch => {\n dispatch({ type: actions.GETTING_SUBSIDIARY_LIST });\n let endpoint = `v3/api/global/accountinggroup/${accountingGroupGlobalKey}/company/selectlist`;\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_SUBSIDIARY_LIST, subsidiaryList: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetSubsidiaryList, \"subsidiary list\");\n dispatch({ type: actions.FAILED_GET_SUBSIDIARY_LIST });\n throw error;\n });\n};\n\nconst updateContactPrivacy = (accountingGroupGlobalKey, contactKey, isPrivate, mode) => dispatch => {\n dispatch({ type: actions.UPDATING_CONTACT_PRIVACY });\n let endpoint;\n if (mode === \"ap\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupGlobalKey}/vendorcontact/${contactKey}/update/publicprivatestatus/${isPrivate}`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupGlobalKey}/customercontact/${contactKey}/update/publicprivatestatus/${isPrivate}`;\n }\n return data\n .put(endpoint)\n .then(response => {\n dispatch({ type: actions.UPDATED_CONTACT_PRIVACY, madePrivate: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.FailedGetSubsidiaryList, \"subsidiary list\");\n dispatch({ type: actions.FAILED_UPDATE_CONTACT_PRIVACY });\n throw error;\n });\n};\n\nconst uploadDocument = (entityGlobalKey, file) => dispatch => {\n let body = new FormData();\n body.append(\"file\", file);\n dispatch({ type: actions.POSTING_CUST_ACCOUNT_PICTURE });\n let endpoint = `v3/api/global/${entityGlobalKey}/uploaddocument`;\n return data\n .post(endpoint, body, {\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n })\n .then(response => {\n dispatch({ type: actions.POSTED_CUST_ACCOUNT_PICTURE, custAccountPicture: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, Resources.UploadingImageFailed, \"account profile picture\");\n dispatch({ type: actions.FAILED_POST_CUST_ACCOUNT_PICTURE });\n throw error;\n });\n};\n\nconst toggleAccountArchived = (accountingGroupId, custKey, request, mode) => dispatch => {\n let endpoint = \"\";\n if (mode === \"ap\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendor/${custKey}/arprofile/archive`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customer/${custKey}/arprofile/archive`;\n }\n dispatch({ type: actions.ARCHIVING_ACCOUNT });\n return data\n .post(endpoint, request, {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n })\n .then(response => {\n dispatch({ type: actions.ARCHIVED_ACCOUNT, archivedAccount: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, \"failed to archive account\", \"account archive\");\n dispatch({ type: actions.FAILED_ARCHIVE_ACCOUNT });\n throw error;\n });\n};\n\nconst toggleContactArchived = (accountingGroupId, custKey, request, mode) => dispatch => {\n let endpoint = \"\";\n if (mode === \"ar\") {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customercontact/${custKey}/archive`;\n } else {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendorcontact/${custKey}/archive`;\n }\n dispatch({ type: actions.ARCHIVING_CONTACT });\n return data\n .post(endpoint, request, {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n })\n .then(response => {\n dispatch({ type: actions.ARCHIVED_CONTACT, archivedContact: response.data });\n return response.data;\n })\n .catch(error => {\n handlePromiseError(error, \"failed to archive contact\", \"contact archive\");\n dispatch({ type: actions.FAILED_ARCHIVE_CONTACT });\n throw error;\n });\n};\n\nconst fetchArchivedAccountList = (accountingGroupId, params = {}) => (dispatch, getState) => {\n // 1 = vendors, 2 = customers\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendor/archived`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customer/archived`;\n }\n\n const { top, skip, filter } = params;\n\n endpoint = `${endpoint}?$top=${top || getState().general.pageRowCount}`;\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n if (!isEmpty(filter)) {\n endpoint = `${endpoint}&$filter=${filter}`;\n }\n\n dispatch({ type: actions.GETTING_ARCHIVED_LIST });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_ARCHIVED_LIST, archivedList: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetAccountListFailure, \"account list\");\n dispatch({ type: actions.FAILED_GET_ARCHIVED_LIST });\n throw error;\n });\n};\n\nconst getArchivedAccountList = accountingGroupId => (dispatch, getState) => {\n let state = getState().network;\n let fetchedArchiveAccountList = state.gettingArchivedList || state.gotArchivedList || state.failedGetArchivedList;\n\n if (!fetchedArchiveAccountList) {\n return dispatch(fetchArchivedAccountList(accountingGroupId));\n }\n\n return state.archivedList;\n};\n\nconst fetchArchivedContactList = (accountingGroupId, params = {}) => (dispatch, getState) => {\n // 1 = vendors, 2 = customers\n let accountingGroupType = getState().perspectives.selectedPerspectiveType;\n if (accountingGroupType === null) {\n return false;\n }\n\n let endpoint;\n if (accountingGroupType === \"vendors\") {\n endpoint = `v3/api/wrkspcap/${accountingGroupId}/vendorcontact/archived`;\n } else {\n endpoint = `v3/api/wrkspcar/${accountingGroupId}/customercontact/archived`;\n }\n\n const { top, skip, filter } = params;\n\n endpoint = `${endpoint}?$top=${top || getState().general.pageRowCount}`;\n if (!isEmpty(skip)) {\n endpoint = `${endpoint}&$skip=${skip}`;\n }\n if (!isEmpty(filter)) {\n endpoint = `${endpoint}&$filter=${filter}`;\n }\n\n dispatch({ type: actions.GETTING_ARCHIVED_CONTACT_LIST });\n return data\n .get(endpoint)\n .then(response => {\n dispatch({ type: actions.GOT_ARCHIVED_CONTACT_LIST, archivedContactList: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetContactListFailure, \"contact list\");\n dispatch({ type: actions.FAILED_GET_ARCHIVED_CONTACT_LIST });\n throw error;\n });\n};\n\nconst getArchivedContactList = accountingGroupId => (dispatch, getState) => {\n let state = getState().network;\n let fetchedContactList =\n state.gettingArchivedNetworkContactList ||\n state.gotArchivedNetworkContactList ||\n state.failedGetArchivedNetworkContactList;\n\n if (!fetchedContactList) {\n return dispatch(fetchArchivedContactList(accountingGroupId));\n }\n\n return state.archivedContactList;\n};\n\nconst getSelfServiceStatus = () => (dispatch, getState) => {\n let state = getState().network;\n\n if (state.gettingSelfServiceStatus) {\n return false;\n }\n\n dispatch({ type: actions.GETTING_SELF_SERVICE_STATUS });\n return data\n .get(`v3/api/global/selfservice`)\n .then(response => {\n dispatch({ type: actions.GOT_SELF_SERVICE_STATUS, selfServiceStatus: response.data });\n return response.data;\n })\n .catch(rejection => {\n dispatch({ type: actions.FAILED_GET_SELF_SERVICE_STATUS, selfServiceStatus: {} });\n handlePromiseError(rejection);\n });\n};\n\nconst claimProfile = accessId => dispatch => {\n dispatch({ type: actions.CLAIMING_PROFILE });\n return data\n .post(`v3/api/global/account/${accessId}/claim`)\n .then(response => {\n dispatch({ type: actions.CLAIMED_PROFILE });\n return response.data;\n })\n .catch(rejection => {\n dispatch({ type: actions.FAILED_CLAIM_PROFILE });\n handlePromiseError(rejection, \"Failed to claim the profile\", \"company contact\");\n });\n};\n\nexport const dispatchToProps = dispatch => ({\n submitConversionInfo: request => {\n return dispatch(submitConversionInfo(request));\n },\n fetchAccountList: (accountingGroupId, params) => {\n return dispatch(fetchAccountList(accountingGroupId, params));\n },\n getSelfServiceStatus: () => {\n return dispatch(getSelfServiceStatus());\n },\n claimProfile: accessId => {\n return dispatch(claimProfile(accessId));\n },\n fetchArchivedAccountList: (accountingGroupId, params) => {\n return dispatch(fetchArchivedAccountList(accountingGroupId, params));\n },\n fetchArchivedContactList: (accountingGroupId, params) => {\n return dispatch(fetchArchivedContactList(accountingGroupId, params));\n },\n getArchivedContactList: accountingGroupId => {\n return dispatch(getArchivedContactList(accountingGroupId));\n },\n getArchivedAccountList: accountingGroupId => {\n return dispatch(getArchivedAccountList(accountingGroupId));\n },\n toggleAccountArchived: (accountingGroupId, companyKey, archived, mode) => {\n return dispatch(toggleAccountArchived(accountingGroupId, companyKey, archived, mode));\n },\n toggleContactArchived: (accountingGroupId, companyKey, archived, mode) => {\n return dispatch(toggleContactArchived(accountingGroupId, companyKey, archived, mode));\n },\n updateContactPrivacy: (accountingGroupGlobalKey, contactKey, isPrivate, mode) => {\n return dispatch(updateContactPrivacy(accountingGroupGlobalKey, contactKey, isPrivate, mode));\n },\n uploadDocument: (entityGlobalKey, file) => {\n return dispatch(uploadDocument(entityGlobalKey, file));\n },\n getAccountList: accountingGroupId => {\n return dispatch(getAccountList(accountingGroupId));\n },\n selectAccountListPage: (accountingGroupId, selectedPage) => {\n return dispatch(selectAccountListPage(accountingGroupId, selectedPage));\n },\n setAccountListPage: selectedPage => {\n return dispatch({ type: actions.SET_NETWORK_ACCOUNT_LIST_LOADED_PAGE, selectedPage });\n },\n setAccountListFilter: (accountingGroupId, filter) => {\n return dispatch(setAccountListFilter(accountingGroupId, filter));\n },\n fetchContactList: (accountingGroupId, params) => {\n return dispatch(fetchContactList(accountingGroupId, params));\n },\n getContactList: accountingGroupId => {\n return dispatch(getContactList(accountingGroupId));\n },\n selectContactListPage: (accountingGroupId, selectedPage) => {\n return dispatch(selectContactListPage(accountingGroupId, selectedPage));\n },\n setContactListFilter: (accountingGroupId, filter) => {\n return dispatch(setContactListFilter(accountingGroupId, filter));\n },\n fetchCustContact: accessId => {\n return dispatch(fetchCustContact(accessId));\n },\n postCustContact: (accessId, request) => {\n return dispatch(postCustContact(accessId, request));\n },\n postCustContactPicture: (vendorAccountKey, custKey, custContactKey, signature, file) => {\n return dispatch(postCustContactPicture(vendorAccountKey, custKey, custContactKey, signature, file));\n },\n fetchCustAccount: (accessId, mode) => {\n return dispatch(fetchCustAccount(accessId, mode));\n },\n fetchCustAccountContacts: (accessId, mode) => {\n return dispatch(fetchCustAccountContacts(accessId, mode));\n },\n fetchCustAccountDocuments: (accessId, mode) => {\n return dispatch(fetchCustAccountDocuments(accessId, mode));\n },\n fetchOpenOnboardingRequests: (perspectiveId, params) => {\n return dispatch(fetchOpenOnboardingRequests(perspectiveId, params));\n },\n getOpenOnboardingRequests: perspectiveId => {\n return dispatch(getOpenOnboardingRequests(perspectiveId));\n },\n selectOpenOnboardingRequestsPage: (accountingGroupId, selectedPage) => {\n return dispatch(selectOpenOnboardingRequestsPage(accountingGroupId, selectedPage));\n },\n fetchOpenProfileUpdateRequests: (perspectiveId, params) => {\n return dispatch(fetchOpenProfileUpdateRequests(perspectiveId, params));\n },\n getOpenProfileUpdateRequests: perspectiveId => {\n return dispatch(getOpenProfileUpdateRequests(perspectiveId));\n },\n selectOpenProfileUpdateRequestsPage: (accountingGroupId, selectedPage) => {\n return dispatch(selectOpenProfileUpdateRequestsPage(accountingGroupId, selectedPage));\n },\n postCustAccount: (accessId, accountKey, request) => {\n return dispatch(postCustAccount(accessId, accountKey, request));\n },\n postCustAccountKeyContact: (accessId, request, mode) => {\n return dispatch(postCustAccountKeyContact(accessId, request, mode));\n },\n postCustAccountKeyDocuments: (accessId, accountKey, request) => {\n return dispatch(postCustAccountKeyDocuments(accessId, accountKey, request));\n },\n postCustAccountPicture: (accessId, mode, file) => {\n return dispatch(postCustAccountPicture(accessId, mode, file));\n },\n fetchAccountProfile: (accountingGroupId, custKey) => {\n return dispatch(fetchAccountProfile(accountingGroupId, custKey));\n },\n getAccountProfile: (accountingGroupId, custKey) => {\n return dispatch(getAccountProfile(accountingGroupId, custKey));\n },\n fetchAccountDocuments: (accountingGroupId, accountKey) => {\n return dispatch(fetchAccountDocuments(accountingGroupId, accountKey));\n },\n getAccountDocuments: (accountingGroupId, accountKey) => {\n return dispatch(getAccountDocuments(accountingGroupId, accountKey));\n },\n fetchAccountContacts: (accountingGroupId, accountKey) => {\n return dispatch(fetchAccountContacts(accountingGroupId, accountKey));\n },\n getAccountContacts: (accountingGroupId, accountKey) => {\n return dispatch(getAccountContacts(accountingGroupId, accountKey));\n },\n fetchContactProfile: (accountingGroupId, contactKey) => {\n return dispatch(fetchContactProfile(accountingGroupId, contactKey));\n },\n getContactProfile: (accountingGroupId, contactKey) => {\n return dispatch(getContactProfile(accountingGroupId, contactKey));\n },\n fetchActivityList: (accountingGroupId, params) => {\n return dispatch(fetchActivityList(accountingGroupId, params));\n },\n getActivityList: (accountingGroupId, params) => {\n return dispatch(getActivityList(accountingGroupId, params));\n },\n sendAccountProfileUpdateRequest: accountKeys => {\n return dispatch(sendAccountProfileUpdateRequest(accountKeys));\n },\n sendContactProfileUpdateRequest: contactKeys => {\n return dispatch(sendContactProfileUpdateRequest(contactKeys));\n },\n fetchHeaderInfo: accessId => {\n return dispatch(fetchHeaderInfo(accessId));\n },\n fetchAccountSearchResults: (accountingGroupId, params) => {\n return dispatch(fetchAccountSearchResults(accountingGroupId, params));\n },\n debouncedFetchAccountSearchResults: (accountingGroupId, params) => {\n return dispatch(debouncedFetchAccountSearchResults(accountingGroupId, params));\n },\n fetchContactSearchResults: (accountingGroupId, params) => {\n return dispatch(fetchContactSearchResults(accountingGroupId, params));\n },\n debouncedFetchContactSearchResults: (accountingGroupId, params) => {\n return dispatch(debouncedFetchContactSearchResults(accountingGroupId, params));\n },\n fetchAccountingGroupProfile: (accountingGroupKey, companyGlobalKey, mode) => {\n return dispatch(fetchAccountingGroupProfile(accountingGroupKey, companyGlobalKey, mode));\n },\n fetchAccountingGroupProfileContacts: (accountingGroupKey, companyGlobalKey, mode) => {\n return dispatch(fetchAccountingGroupProfileContacts(accountingGroupKey, companyGlobalKey, mode));\n },\n fetchAccountingGroupProfileDocuments: (accountingGroupKey, companyGlobalKey, mode) => {\n return dispatch(fetchAccountingGroupProfileDocuments(accountingGroupKey, companyGlobalKey, mode));\n },\n postAccountingGroupProfile: (accountingGroupKey, companyGlobalKey, mode, request) => {\n return dispatch(postAccountingGroupProfile(accountingGroupKey, companyGlobalKey, mode, request));\n },\n postAccountingGroupProfileDocuments: (accountingGroupKey, companyGlobalKey, mode, request) => {\n return dispatch(postAccountingGroupProfileDocuments(accountingGroupKey, companyGlobalKey, mode, request));\n },\n postAccountingGroupProfileContacts: (accountingGroupKey, companyGlobalKey, mode, request) => {\n return dispatch(postAccountingGroupProfileContacts(accountingGroupKey, companyGlobalKey, mode, request));\n },\n uploadAccountingGroupDocument: (accountingGroupKey, companyGlobalKey, mode, file) => {\n return dispatch(uploadAccountingGroupDocument(accountingGroupKey, companyGlobalKey, mode, file));\n },\n uploadAccountingGroupDocuments: (accountingGroupKey, companyGlobalKey, mode, file) => {\n return dispatch(uploadAccountingGroupDocuments(accountingGroupKey, companyGlobalKey, mode, file));\n },\n addAccountingGroupDocument: (accountingGroupKey, vendorGlobalKey, mode, file) => {\n return dispatch(addAccountingGroupDocument(accountingGroupKey, vendorGlobalKey, mode, file));\n },\n fetchEmailAttachments: (accountingGroupKey, companyGlobalKey, entityType, entityKey) => {\n return dispatch(fetchEmailAttachments(accountingGroupKey, companyGlobalKey, entityType, entityKey));\n },\n getEmailAttachments: (accountingGroupKey, companyGlobalKey, entityKey) => {\n return dispatch(getEmailAttachments(accountingGroupKey, companyGlobalKey, entityKey));\n },\n updateDocumentType: (accountingGroupKey, entityKey, request) => {\n return dispatch(updateDocumentType(accountingGroupKey, entityKey, request));\n },\n deleteDocuments: (accountingGroupKey, entityKey, request) => {\n return dispatch(deleteDocuments(accountingGroupKey, entityKey, request));\n },\n updateEmailAttachmentType: (accountingGroupKey, companyKey, request) => {\n return dispatch(updateEmailAttachmentType(accountingGroupKey, companyKey, request));\n },\n deleteAttachments: (accountingGroupKey, companyKey, request) => {\n return dispatch(deleteAttachments(accountingGroupKey, companyKey, request));\n },\n postAccountSettings: (accountingGroupKey, request) => {\n return dispatch(postAccountSettings(accountingGroupKey, request));\n },\n fetchAccountSettings: accountingGroupKey => {\n return dispatch(fetchAccountSettings(accountingGroupKey));\n },\n fetchMyProfile: () => {\n return dispatch(fetchMyProfile());\n },\n postMyProfile: request => {\n return dispatch(postMyProfile(request));\n },\n postMyProfilePicture: file => {\n return dispatch(postMyProfilePicture(file));\n },\n fetchNotes: entityGlobalKey => {\n return dispatch(fetchNotes(entityGlobalKey));\n },\n postNotes: (entityGlobalKey, request) => {\n return dispatch(postNotes(entityGlobalKey, request));\n },\n deleteNote: (entityGlobalKey, entityGlobalNoteKey) => {\n return dispatch(deleteNote(entityGlobalKey, entityGlobalNoteKey));\n },\n getShareFlyoutMessage: (accountingGroupType, entityGlobalKey) => {\n return dispatch(getShareFlyoutMessage(accountingGroupType, entityGlobalKey));\n },\n sendShareFlyout: (accountingGroupGlobalKey, companyGlobalKey, request) => {\n return dispatch(sendShareFlyout(accountingGroupGlobalKey, companyGlobalKey, request));\n },\n fetchShareLink: (mode, entityGlobalKey) => {\n return dispatch(fetchShareLink(mode, entityGlobalKey));\n },\n fetchSubsidiaryList: accountingGroupGlobalKey => {\n return dispatch(fetchSubsidiaryList(accountingGroupGlobalKey));\n },\n updateCustContact: (accountingGroupKey, lockstepContactKey, mode, request) => {\n return dispatch(updateCustContact(accountingGroupKey, lockstepContactKey, mode, request));\n },\n updateAccountingGroupProfile: (accountingGroupKey, accountId, mode, request) => {\n return dispatch(updateAccountingGroupProfile(accountingGroupKey, accountId, mode, request));\n },\n addContact: (accountingGroupId, companyKey, mode, request) => {\n return dispatch(addContact(accountingGroupId, companyKey, mode, request));\n },\n markContactPrimary: (accountingGroupId, contactKey, mode) => {\n return dispatch(markContactPrimary(accountingGroupId, contactKey, mode));\n },\n getAccountArchivedContacts: (accountingGroupId, accountKey) => {\n return dispatch(getAccountArchivedContacts(accountingGroupId, accountKey));\n },\n fetchAccountArchivedContacts: (accountingGroupId, accountKey) => {\n return dispatch(fetchAccountArchivedContacts(accountingGroupId, accountKey));\n },\n downloadAttachment: (accountingGroupKey, companyKey, entityKey, attachmentKey, signature) => {\n return dispatch(downloadAttachment(accountingGroupKey, companyKey, entityKey, attachmentKey, signature));\n },\n debouncedFetchAttachmentSearchResultsGet: (accountingGroupKey, companyKey, entityKey, params) => {\n return dispatch(debouncedFetchAttachmentSearchResultsGet(accountingGroupKey, companyKey, entityKey, params));\n },\n debouncedFetchAttachmentSearchResults: (accountingGroupKey, companyKey, entityKey, params) => {\n return dispatch(debouncedFetchAttachmentSearchResults(accountingGroupKey, companyKey, entityKey, params));\n },\n fetchAttachmentSearchResults: (accountingGroupKey, companyKey, entityKey, params) => {\n return dispatch(fetchAttachmentSearchResults(accountingGroupKey, companyKey, entityKey, params));\n }\n});\n","import { actions } from \"./network-actions\";\nimport { isEmpty } from \"../lib/utils\";\n\nconst defaultNetworkSettings = {\n accountList: { value: [] },\n accountsMap: {},\n accountContactsMap: {},\n accountArchivedContactsMap: {},\n accountDocumentsMap: {},\n\n loadedAccountListPage: 1,\n gettingNetworkAccountList: false,\n gotNetworkAccountList: false,\n failedGetNetworkAccountList: false,\n\n contactList: { value: [] },\n contactsMap: {},\n loadedContactListPage: 1,\n gettingNetworkContactList: false,\n gotNetworkContactList: false,\n failedGetNetworkContactList: false,\n\n gettingCustContact: false,\n gotCustContact: false,\n failedGetCustContact: false,\n custContact: {},\n\n postingCustContact: false,\n postedCustContact: false,\n failedPostCustContact: false,\n\n postingCustContactPicture: false,\n postedCustContactPicture: false,\n failedPostCustContactPicture: false,\n\n gettingCustAccount: false,\n gotCustAccount: false,\n failedGetCustAccount: false,\n custAccount: { value: [] },\n\n gettingCustAccountDocuments: false,\n gotCustAccountDocuments: false,\n failedGetCustAccountDocuments: false,\n custAccountDocuments: { value: [] },\n\n gettingCustAccountContacts: false,\n gotCustAccountContacts: false,\n failedGetCustAccountContacts: false,\n custAccountContacts: { value: [] },\n\n postingCustAccount: false,\n postedCustAccount: false,\n failedPostCustAccount: false,\n\n postingCustAccountPicture: false,\n postedCustAccountPicture: false,\n failedPostCustAccountPicture: false,\n custAccountPicture: \"\",\n\n openOnboardingRequests: {},\n gettingOpenOnboardingRequests: false,\n gotOpenOnboardingRequests: false,\n failedGetOpenOnboardingRequests: false,\n\n openProfileUpdateRequests: {},\n gettingOpenProfileUpdateRequests: false,\n gotOpenProfileUpdateRequests: false,\n failedGetOpenProfileUpdateRequests: false,\n\n gettingAccountProfiles: {},\n gotCustomerAccounts: {},\n failedGetCustomerAccounts: {},\n\n gettingAccountContacts: {},\n gotAccountContacts: {},\n failedGetAccountContacts: {},\n\n gettingAccountArchivedContacts: {},\n gotAccountArchivedContacts: {},\n failedGetAccountArchivedContacts: {},\n\n gettingAccountDocuments: {},\n gotAccountDocuments: {},\n failedGetAccountDocuments: {},\n\n gettingContactProfiles: {},\n gotCustomerContacts: {},\n failedGetCustomerContacts: {},\n\n postingAccountProfileUpdateRequest: false,\n postedAccountProfileUpdateRequest: false,\n failedPostAccountProfileUpdateRequest: false,\n\n postingContactProfileUpdateRequest: false,\n postedContactProfileUpdateRequest: false,\n failedPostContactProfileUpdateRequest: false,\n\n gettingHeaderInfo: false,\n gotHeaderInfo: false,\n failedGetHeaderInfo: false,\n headerInfo: {},\n\n uploadingAccountDocument: false,\n uploadAccountDocument: false,\n failedUploadAccountDocument: false,\n uploadedAccountDocument: \"\",\n\n gettingNetworkAccountSearchResults: false,\n gotNetworkAccountSearchResults: false,\n failedGetNetworkAccountSearchResults: false,\n accountSearchResults: { value: [] },\n accountSearchTerm: \"\",\n\n gettingNetworkContactSearchResults: false,\n gotNetworkContactSearchResults: false,\n failedGetNetworkContactSearchResults: false,\n contactSearchResults: { value: [] },\n contactSearchTerm: \"\",\n\n gettingCustAccountSettings: false,\n gotCustAccountSettings: false,\n failedGetCustAccountSettings: false,\n custAccountSettings: {},\n\n postingCustAccountSettings: false,\n postedCustAccountSettings: false,\n failedPostCustAccountSettings: false,\n\n gettingNetworkActivityList: false,\n gotNetworkActivityList: false,\n failedGetNetworkActivityList: false,\n activityList: { value: [] },\n\n gettingEmailAttachments: false,\n gotEmailAttachments: false,\n failedGetEmailAttachments: false,\n emailAttachments: {},\n\n updatingDocumentType: false,\n updatedDocumentType: false,\n failedUpdateDocumentType: false,\n\n deletingDocument: false,\n deletedDocument: false,\n failedDeleteDocument: false,\n\n downloadingAttachment: false,\n downloadedAttachment: false,\n failedDownloadAttachment: false,\n attachmentDownload: \"\",\n\n gettingNotes: false,\n gotNotes: false,\n failedGetNotes: false,\n notes: {},\n\n postingNotes: false,\n postedNotes: false,\n failedPostNotes: false,\n\n deletingNote: false,\n deletedNote: false,\n failedDeleteNote: false,\n\n gettingShareMessage: false,\n gotShareMessage: false,\n failedGetShareMessage: false,\n shareMessage: \"\",\n\n gettingShareLink: false,\n gotShareLink: false,\n failedGetShareLink: false,\n shareLink: \"\",\n\n postingShareFlyout: false,\n postedShareFlyout: false,\n failedPostShareFlyout: false,\n session: \"\",\n\n postingMyProfilePicture: false,\n postedMyProfilePicture: false,\n failedPostMyProfilePicture: false,\n myProfilePicture: \"\",\n\n gettingSubsidiaryList: false,\n gotSubsidiaryList: false,\n failedGetSubsidiaryList: false,\n subsidiaryList: [],\n\n updatingContactPrivacy: false,\n updatedContactPrivacy: false,\n failedUpdateContactPrivacy: false,\n makePrivate: \"\",\n\n addingContact: false,\n addedContact: false,\n failedAddContact: false,\n addedContactValue: {},\n\n markingContactPrimary: false,\n markedContactPrimary: false,\n failedMarkContactPrimary: false,\n setAsPrimary: {},\n\n archivingAccount: false,\n archivedAccount: false,\n failedArchiveAccount: false,\n\n gotArchivedList: false,\n gettingArchivedList: false,\n failedGetArchivedList: false,\n archivedList: {},\n\n gotArchivedNetworkContactList: false,\n gettingArchivedNetworkContactList: false,\n failedGetArchivedNetworkContactList: false,\n archivedContactList: {},\n\n archivingContact: false,\n archivedContact: false,\n failedArchiveContact: false,\n\n claimingProfile: false,\n claimedProfile: false,\n failedClaimProfile: false,\n\n gettingSelfServiceStatus: false,\n gotSelfServiceStatus: false,\n failedGetSelfServiceStatus: false,\n selfServiceStatus: {}\n};\n\nfunction networkReducer(state = defaultNetworkSettings, action) {\n switch (action.type) {\n case actions.GETTING_NETWORK_ACCOUNT_LIST:\n return {\n ...state,\n gettingNetworkAccountList: true,\n gotNetworkAccountList: false,\n failedGetNetworkAccountList: false\n };\n case actions.GOT_NETWORK_ACCOUNT_LIST:\n let accountsMap = { ...state.accountsMap };\n action.accountList.value.forEach(account => {\n let updatedAccount = { ...state.accountsMap[account.entityGlobalKey] };\n for (let property in account) {\n if (!isEmpty(account[property])) {\n updatedAccount[property] = account[property];\n }\n }\n accountsMap[account.entityGlobalKey] = updatedAccount;\n });\n return {\n ...state,\n gettingNetworkAccountList: false,\n gotNetworkAccountList: true,\n failedGetNetworkAccountList: false,\n accountsMap,\n accountList: action.accountList\n };\n case actions.FAILED_GET_NETWORK_ACCOUNT_LIST:\n return {\n ...state,\n gettingNetworkAccountList: false,\n gotNetworkAccountList: false,\n failedGetNetworkAccountList: true\n };\n case actions.SET_NETWORK_ACCOUNT_LIST_LOADED_PAGE:\n return { ...state, loadedAccountListPage: action.selectedPage };\n case actions.GETTING_NETWORK_CONTACT_LIST:\n return {\n ...state,\n gettingNetworkContactList: true,\n gotNetworkContactList: false,\n failedGetNetworkContactList: false\n };\n case actions.GOT_NETWORK_CONTACT_LIST:\n let contactsMap = { ...state.contactsMap };\n action.contactList.value.forEach(contact => {\n let updatedContact = { ...state.contactsMap[contact.entityGlobalKey] };\n for (let property in contact) {\n if (!isEmpty(contact[property])) {\n updatedContact[property] = contact[property];\n }\n }\n contactsMap[contact.entityGlobalKey] = updatedContact;\n });\n return {\n ...state,\n gettingNetworkContactList: false,\n gotNetworkContactList: true,\n failedGetNetworkContactList: false,\n contactList: action.contactList,\n contactsMap\n };\n case actions.FAILED_GET_NETWORK_CONTACT_LIST:\n return {\n ...state,\n gettingNetworkContactList: false,\n gotNetworkContactList: false,\n failedGetNetworkContactList: true\n };\n case actions.SET_NETWORK_CONTACT_LIST_LOADED_PAGE:\n return { ...state, loadedContactListPage: action.selectedPage };\n case actions.GETTING_CUST_CONTACT:\n return { ...state, gettingCustContact: true, gotCustContact: false, failedGetCustContact: false };\n case actions.GOT_CUST_CONTACT:\n return {\n ...state,\n gettingCustContact: false,\n gotCustContact: true,\n failedGetCustContact: false,\n custContact: action.custContact\n };\n case actions.FAILED_GET_CUST_CONTACT:\n return { ...state, gettingCustContact: false, gotCustContact: false, failedGetCustContact: true };\n case actions.POSTING_CUST_CONTACT:\n return { ...state, postingCustContact: true, postedCustContact: false, failedPostCustContact: false };\n case actions.POSTED_CUST_CONTACT:\n return {\n ...state,\n postingCustContact: false,\n postedCustContact: true,\n failedPostCustContact: false,\n custContact: {\n ...action.custContact\n }\n };\n case actions.FAILED_POST_CUST_CONTACT:\n return { ...state, postingCustContact: false, postedCustContact: false, failedPostCustContact: true };\n case actions.POSTING_CUST_CONTACT_PICTURE:\n return {\n ...state,\n postingCustContactPicture: true,\n postedCustContactPicture: false,\n failedPostCustContactPicture: false\n };\n case actions.POSTED_CUST_CONTACT_PICTURE:\n let custContact = { ...state.custContact };\n custContact.profilePictureURL = action.custContactPicture;\n return {\n ...state,\n postingCustContactPicture: false,\n postedCustContactPicture: true,\n failedPostCustContactPicture: false,\n custContact\n };\n case actions.FAILED_POST_CUST_CONTACT_PICTURE:\n return {\n ...state,\n postingCustContactPicture: false,\n postedCustContactPicture: false,\n failedPostCustContactPicture: true\n };\n case actions.GETTING_CUST_ACCOUNT:\n return { ...state, gettingCustAccount: true, gotCustAccount: false, failedGetCustAccount: false };\n case actions.GOT_CUST_ACCOUNT:\n return {\n ...state,\n gettingCustAccount: false,\n gotCustAccount: true,\n failedGetCustAccount: false,\n custAccount: action.custAccount\n };\n case actions.FAILED_GET_CUST_ACCOUNT:\n return { ...state, gettingCustAccount: false, gotCustAccount: false, failedGetCustAccount: true };\n case actions.GETTING_CUST_ACCOUNT_DOCUMENTS:\n return {\n ...state,\n gettingCustAccountDocuments: true,\n gotCustAccountDocuments: false,\n failedGetCustAccountDocuments: false\n };\n case actions.GOT_CUST_ACCOUNT_DOCUMENTS:\n return {\n ...state,\n gettingCustAccountDocuments: false,\n gotCustAccountDocuments: true,\n failedGetCustAccountDocuments: false,\n custAccountDocuments: action.custAccountDocuments\n };\n case actions.FAILED_GET_CUST_ACCOUNT_DOCUMENTS:\n return {\n ...state,\n gettingCustAccountDocuments: false,\n gotCustAccountDocuments: false,\n failedGetCustAccountDocuments: true\n };\n case actions.GETTING_CUST_ACCOUNT_CONTACTS:\n return {\n ...state,\n gettingCustAccountContacts: true,\n gotCustAccountContacts: false,\n failedGetCustAccountContacts: false\n };\n case actions.GOT_CUST_ACCOUNT_CONTACTS:\n return {\n ...state,\n gettingCustAccountContacts: false,\n gotCustAccountContacts: true,\n failedGetCustAccountContacts: false,\n custAccountContacts: action.custAccountContacts\n };\n case actions.FAILED_GET_CUST_ACCOUNT_CONTACTS:\n return {\n ...state,\n gettingCustAccountContacts: false,\n gotCustAccountContacts: false,\n failedGetCustAccountContacts: true\n };\n case actions.GETTING_OPEN_ONBOARDING_REQUESTS:\n return {\n ...state,\n gettingOpenOnboardingRequests: true,\n gotOpenOnboardingRequests: false,\n failedGetOpenOnboardingRequests: false\n };\n case actions.GOT_OPEN_ONBOARDING_REQUESTS:\n return {\n ...state,\n gettingOpenOnboardingRequests: false,\n gotOpenOnboardingRequests: true,\n failedGetOpenOnboardingRequests: false,\n openOnboardingRequests: action.data\n };\n case actions.FAILED_GET_OPEN_ONBOARDING_REQUESTS:\n return {\n ...state,\n gettingOpenOnboardingRequests: false,\n gotOpenOnboardingRequests: false,\n failedGetOpenOnboardingRequests: true\n };\n case actions.GETTING_OPEN_PROFILE_UPDATE_REQUESTS:\n return {\n ...state,\n gettingOpenProfileUpdateRequests: true,\n gotOpenProfileUpdateRequests: false,\n failedGetOpenProfileUpdateRequests: false\n };\n case actions.GOT_OPEN_PROFILE_UPDATE_REQUESTS:\n return {\n ...state,\n gettingOpenProfileUpdateRequests: false,\n gotOpenProfileUpdateRequests: true,\n failedGetOpenProfileUpdateRequests: false,\n openProfileUpdateRequests: action.data\n };\n case actions.FAILED_GET_OPEN_PROFILE_UPDATE_REQUESTS:\n return {\n ...state,\n gettingOpenProfileUpdateRequests: false,\n gotOpenProfileUpdateRequests: false,\n failedGetOpenProfileUpdateRequests: true\n };\n case actions.POSTING_CUST_ACCOUNT:\n return { ...state, postingCustAccount: true, postedCustAccount: false, failedPostCustAccount: false };\n case actions.POSTED_CUST_ACCOUNT:\n return {\n ...state,\n postingCustAccount: false,\n postedCustAccount: true,\n failedPostCustAccount: false,\n custAccount: {\n ...state.custAccount,\n ...action.custAccount\n }\n };\n case actions.FAILED_POST_CUST_ACCOUNT:\n return { ...state, postingCustAccount: false, postedCustAccount: false, failedPostCustAccount: true };\n case actions.POSTING_CUST_ACCOUNT_PICTURE:\n return {\n ...state,\n postingCustAccountPicture: true,\n postedCustAccountPicture: false,\n failedPostCustAccountPicture: false\n };\n case actions.POSTED_CUST_ACCOUNT_PICTURE:\n let custAccount = { ...state.custAccount };\n custAccount.logoURL = action.custAccountPicture;\n return {\n ...state,\n postingCustAccountPicture: false,\n postedCustAccountPicture: true,\n failedPostCustAccountPicture: false,\n custAccount\n };\n case actions.FAILED_POST_CUST_ACCOUNT_PICTURE:\n return {\n ...state,\n postingCustAccountPicture: false,\n postedCustAccountPicture: false,\n failedPostCustAccountPicture: true\n };\n case actions.GETTING_ACCOUNT_PROFILE:\n return {\n ...state,\n gettingAccountProfiles: { ...state.gettingAccountProfiles, [action.accountKey]: true },\n gotCustomerAccounts: { ...state.gotCustomerAccounts, [action.accountKey]: false },\n failedGetCustomerAccounts: { ...state.failedGetCustomerAccounts, [action.accountKey]: false }\n };\n case actions.GOT_ACCOUNT_PROFILE:\n let accountProfile = {\n ...action.accountProfile.companyARDetails,\n ...action.accountProfile.companyAPDetails,\n emailAddr:\n (action.accountProfile.accountingGroupARDetails || {}).emailAddr ||\n (action.accountProfile.accountingGroupAPDetails || {}).emailAddr,\n lockstepVerified: action.accountProfile.isLockstepVerified\n };\n return {\n ...state,\n gettingAccountProfiles: { ...state.gettingAccountProfiles, [action.accountKey]: false },\n gotCustomerAccounts: { ...state.gotCustomerAccounts, [action.accountKey]: true },\n failedGetCustomerAccounts: { ...state.failedGetCustomerAccounts, [action.accountKey]: false },\n accountsMap: { ...state.accountsMap, [action.accountKey]: accountProfile }\n };\n case actions.GET_ACCOUNT_PROFILE_FAILED:\n return {\n ...state,\n gettingAccountProfiles: { ...state.gettingAccountProfiles, [action.accountKey]: false },\n gotCustomerAccounts: { ...state.gotCustomerAccounts, [action.accountKey]: false },\n failedGetCustomerAccounts: { ...state.failedGetCustomerAccounts, [action.accountKey]: true }\n };\n case actions.GETTING_ACCOUNT_DOCUMENTS:\n return {\n ...state,\n gettingAccountDocuments: { ...state.gettingAccountDocuments, [action.accountKey]: true },\n gotAccountDocuments: { ...state.gotAccountDocuments, [action.accountKey]: false },\n failedGetAccountDocuments: { ...state.failedGetAccountDocuments, [action.accountKey]: false }\n };\n case actions.GOT_ACCOUNT_DOCUMENTS:\n return {\n ...state,\n gettingAccountDocuments: { ...state.gettingAccountDocuments, [action.accountKey]: false },\n gotAccountDocuments: { ...state.gotAccountDocuments, [action.accountKey]: true },\n failedGetAccountDocuments: { ...state.failedGetAccountDocuments, [action.accountKey]: false },\n accountDocumentsMap: {\n ...state.accountDocumentsMap,\n [action.accountKey]: [...action.accountDocuments]\n }\n };\n case actions.GET_ACCOUNT_DOCUMENTS_FAILED:\n return {\n ...state,\n gettingAccountDocuments: { ...state.gettingAccountDocuments, [action.accountKey]: false },\n gotAccountDocuments: { ...state.gotAccountDocuments, [action.accountKey]: false },\n failedGetAccountDocuments: { ...state.failedGetAccountDocuments, [action.accountKey]: true }\n };\n case actions.GETTING_ACCOUNT_CONTACTS:\n return {\n ...state,\n gettingAccountContacts: { ...state.gettingAccountContacts, [action.accountKey]: true },\n gotAccountContacts: { ...state.gotAccountContacts, [action.accountKey]: false },\n failedGetAccountContacts: { ...state.failedGetAccountContacts, [action.accountKey]: false }\n };\n case actions.GOT_ACCOUNT_CONTACTS:\n return {\n ...state,\n gettingAccountContacts: { ...state.gettingAccountContacts, [action.accountKey]: false },\n gotAccountContacts: { ...state.gotAccountContacts, [action.accountKey]: true },\n failedGetAccountContacts: { ...state.failedGetAccountContacts, [action.accountKey]: false },\n accountContactsMap: {\n ...state.accountContactsMap,\n [action.accountKey]: [...action.accountContacts]\n }\n };\n case actions.GET_ACCOUNT_CONTACTS_FAILED:\n return {\n ...state,\n gettingAccountContacts: { ...state.gettingAccountContacts, [action.accountKey]: false },\n gotAccountContacts: { ...state.gotAccountContacts, [action.accountKey]: false },\n failedGetAccountContacts: { ...state.failedGetAccountContacts, [action.accountKey]: true }\n };\n case actions.GETTING_ACCOUNT_ARCHIVED_CONTACTS:\n return {\n ...state,\n gettingAccountArchivedContacts: { ...state.gettingAccountArchivedContacts, [action.accountKey]: true },\n gotAccountArchivedContacts: { ...state.gotAccountArchivedContacts, [action.accountKey]: false },\n failedGetAccountArchivedContacts: { ...state.failedGetAccountArchivedContacts, [action.accountKey]: false }\n };\n case actions.GOT_ACCOUNT_ARCHIVED_CONTACTS:\n return {\n ...state,\n gettingAccountArchivedContacts: { ...state.gettingAccountArchivedContacts, [action.accountKey]: false },\n gotAccountArchivedContacts: { ...state.gotAccountArchivedContacts, [action.accountKey]: true },\n failedGetAccountArchivedContacts: { ...state.failedGetAccountArchivedContacts, [action.accountKey]: false },\n accountArchivedContactsMap: {\n ...state.accountArchivedContactsMap,\n [action.accountKey]: [...action.accountArchivedContacts]\n }\n };\n case actions.GET_ACCOUNT_ARCHIVED_CONTACTS_FAILED:\n return {\n ...state,\n gettingAccountArchivedContacts: { ...state.gettingAccountArchivedContacts, [action.accountKey]: false },\n gotAccountArchivedContacts: { ...state.gotAccountArchivedContacts, [action.accountKey]: false },\n failedGetAccountArchivedContacts: { ...state.failedGetAccountArchivedContacts, [action.accountKey]: true }\n };\n case actions.GETTING_CONTACT_PROFILE:\n return {\n ...state,\n gettingContactProfiles: { ...state.gettingContactProfiles, [action.contactKey]: true },\n gotCustomerContacts: { ...state.gotCustomerContacts, [action.contactKey]: false },\n failedGetCustomerContacts: { ...state.failedGetCustomerContacts, [action.contactKey]: false }\n };\n case actions.GOT_CONTACT_PROFILE:\n return {\n ...state,\n gettingContactProfiles: { ...state.gettingContactProfiles, [action.contactKey]: false },\n gotCustomerContacts: { ...state.gotCustomerContacts, [action.contactKey]: true },\n failedGetCustomerContacts: { ...state.failedGetCustomerContacts, [action.contactKey]: false },\n contactsMap: { ...state.contactsMap, [action.contactKey]: action.customerContact }\n };\n case actions.GOT_CONTACT_PROFILE_FAILED:\n return {\n ...state,\n gettingContactProfiles: { ...state.gettingContactProfiles, [action.contactKey]: false },\n gotCustomerContacts: { ...state.gotCustomerContacts, [action.contactKey]: false },\n failedGetCustomerContacts: { ...state.failedGetCustomerContacts, [action.contactKey]: true }\n };\n case actions.POSTING_ACCOUNT_PROFILE_UPDATE_REQUEST:\n return {\n ...state,\n postingAccountProfileUpdateRequest: true,\n postedAccountProfileUpdateRequest: false,\n failedPostAccountProfileUpdateRequest: false\n };\n case actions.POSTED_ACCOUNT_PROFILE_UPDATE_REQUEST:\n return {\n ...state,\n postingAccountProfileUpdateRequest: false,\n postedAccountProfileUpdateRequest: true,\n failedPostAccountProfileUpdateRequest: false\n };\n case actions.FAILED_POST_ACCOUNT_PROFILE_UPDATE_REQUEST:\n return {\n ...state,\n postingAccountProfileUpdateRequest: false,\n postedAccountProfileUpdateRequest: false,\n failedPostAccountProfileUpdateRequest: true\n };\n case actions.POSTING_CONTACT_PROFILE_UPDATE_REQUEST:\n return {\n ...state,\n postingContactProfileUpdateRequest: true,\n postedContactProfileUpdateRequest: false,\n failedPostContactProfileUpdateRequest: false\n };\n case actions.POSTED_CONTACT_PROFILE_UPDATE_REQUEST:\n return {\n ...state,\n postingContactProfileUpdateRequest: false,\n postedContactProfileUpdateRequest: true,\n failedPostContactProfileUpdateRequest: false\n };\n case actions.FAILED_POST_CONTACT_PROFILE_UPDATE_REQUEST:\n return {\n ...state,\n postingContactProfileUpdateRequest: false,\n postedContactProfileUpdateRequest: false,\n failedPostContactProfileUpdateRequest: true\n };\n case actions.GETTING_HEADER_INFO:\n return {\n ...state,\n gettingHeaderInfo: true,\n gotHeaderInfo: false,\n failedGetHeaderInfo: false\n };\n case actions.GOT_HEADER_INFO:\n return {\n ...state,\n gettingHeaderInfo: false,\n gotHeaderInfo: true,\n failedGetHeaderInfo: false,\n headerInfo: {\n ...action.headerInfo\n }\n };\n case actions.FAILED_GET_HEADER_INFO:\n return {\n ...state,\n gettingHeaderInfo: false,\n gotHeaderInfo: false,\n failedGetHeaderInfo: true\n };\n case actions.GETTING_NETWORK_ACCOUNT_SEARCH_RESULTS:\n return {\n ...state,\n gettingNetworkAccountSearchResults: true,\n gotNetworkAccountSearchResults: false,\n failedGetNetworkAccountSearchResults: false,\n accountSearchTerm: action.searchTerm\n };\n case actions.GOT_NETWORK_ACCOUNT_SEARCH_RESULTS:\n return {\n ...state,\n gettingNetworkAccountSearchResults: false,\n gotNetworkAccountSearchResults: true,\n failedGetNetworkAccountSearchResults: false,\n accountSearchResults: {\n ...action.searchResults\n }\n };\n case actions.FAILED_GET_NETWORK_ACCOUNT_SEARCH_RESULTS:\n return {\n ...state,\n gettingNetworkAccountSearchResults: false,\n gotNetworkAccountSearchResults: false,\n failedGetNetworkAccountSearchResults: true\n };\n case actions.GETTING_NETWORK_CONTACT_SEARCH_RESULTS:\n return {\n ...state,\n gettingNetworkContactSearchResults: true,\n gotNetworkContactSearchResults: false,\n failedGetNetworkContactSearchResults: false,\n contactSearchTerm: action.searchTerm\n };\n case actions.GOT_NETWORK_CONTACT_SEARCH_RESULTS:\n return {\n ...state,\n gettingNetworkContactSearchResults: false,\n gotNetworkContactSearchResults: true,\n failedGetNetworkContactSearchResults: false,\n contactSearchResults: {\n ...action.searchResults\n }\n };\n case actions.FAILED_GET_NETWORK_CONTACT_SEARCH_RESULTS:\n return {\n ...state,\n gettingNetworkContactSearchResults: false,\n gotNetworkContactSearchResults: false,\n failedGetNetworkContactSearchResults: true\n };\n case actions.GETTING_CUST_ACCOUNT_SETTINGS:\n return {\n ...state,\n gettingCustAccountSettings: true,\n gotCustAccountSettings: false,\n failedGetCustAccountSettings: false\n };\n case actions.GOT_CUST_ACCOUNT_SETTINGS:\n return {\n ...state,\n gettingCustAccountSettings: false,\n gotCustAccountSettings: true,\n failedGetCustAccountSettings: false,\n custAccountSettings: action.custAccountSettings\n };\n case actions.FAILED_GET_CUST_ACCOUNT_SETTINGS:\n return {\n ...state,\n gettingCustAccountSettings: false,\n gotCustAccountSettings: false,\n failedGetCustAccountSettings: true\n };\n case actions.GETTING_NETWORK_ACTIVITIES:\n let newActivityList = state.activityList;\n if (!action.skip) {\n newActivityList = { value: [] };\n }\n return {\n ...state,\n gettingNetworkActivityList: true,\n gotNetworkActivityList: false,\n failedGetNetworkActivityList: false,\n activityList: newActivityList\n };\n case actions.GOT_NETWORK_ACTIVITIES:\n return {\n ...state,\n gettingNetworkActivityList: false,\n gotNetworkActivityList: true,\n failedGetNetworkActivityList: false,\n activityList: { ...action.activityList, value: [...state.activityList.value, ...action.activityList.value] }\n };\n case actions.FAILED_GET_NETWORK_ACTIVITIES:\n return {\n ...state,\n gettingNetworkActivityList: false,\n gotNetworkActivityList: false,\n failedGetNetworkActivityList: true\n };\n case actions.POSTING_CUST_ACCOUNT_SETTINGS:\n return {\n ...state,\n postingCustAccountSettings: true,\n postedCustAccountSettings: false,\n failedPostCustAccountSettings: false\n };\n case actions.POSTED_CUST_ACCOUNT_SETTINGS:\n return {\n ...state,\n postingCustAccountSettings: false,\n postedCustAccountSettings: true,\n failedGetCustAccountSettings: false\n };\n case actions.FAILED_POST_CUST_ACCOUNT_SETTINGS:\n return {\n ...state,\n postingCustAccountSettings: false,\n postedCustAccountSettings: false,\n failedGetCustAccountSettings: true\n };\n case actions.SELECT_COMPANY:\n return { ...defaultNetworkSettings, custContact: state.custContact };\n case actions.GETTING_NOTES:\n return {\n ...state,\n gettingNotes: true,\n gotNotes: false,\n failedGetNotes: false\n };\n case actions.GOT_NOTES:\n return {\n ...state,\n gettingNotes: false,\n gotNotes: true,\n failedGetNotes: false,\n notes: { ...state.notes, [action.entityGlobalKey]: action.notes }\n };\n case actions.FAILED_GET_NOTES:\n return {\n ...state,\n gettingNotes: false,\n gotNotes: false,\n failedGetNotes: true\n };\n case actions.POSTING_NOTES:\n return {\n ...state,\n postingNotes: true,\n postedNotes: false,\n failedPostNotes: false\n };\n case actions.POSTED_NOTES:\n return {\n ...state,\n postingNotes: false,\n postedNotes: true,\n failedPostNotes: false\n };\n case actions.FAILED_POST_NOTES:\n return {\n ...state,\n postingNotes: false,\n postedNotes: false,\n failedPostNotes: true\n };\n case actions.DELETING_NOTE:\n return {\n ...state,\n deletingNote: true,\n deletedNote: false,\n failedDeleteNote: false\n };\n case actions.DELETED_NOTE:\n return {\n ...state,\n deletingNote: false,\n deletedNote: true,\n failedDeleteNote: false\n };\n case actions.FAILED_DELETE_NOTE:\n return {\n ...state,\n deletingNote: false,\n deletedNote: false,\n failedDeleteNote: true\n };\n case actions.GETTING_SHARE_FLYOUT_MESSAGE:\n return {\n ...state,\n gettingShareFlyoutMessage: true,\n gotShareFlyoutMessage: false,\n failedGetShareFlyoutMessage: false\n };\n case actions.GOT_SHARE_FLYOUT_MESSAGE:\n return {\n ...state,\n gettingShareFlyoutMessage: false,\n gotShareFlyoutMessage: true,\n failedGetShareFlyoutMessage: false,\n shareMessage: action.session\n };\n case actions.FAILED_GET_SHARE_FLYOUT_MESSAGE:\n return {\n ...state,\n gettingShareFlyoutMessage: false,\n gotShareFlyoutMessage: false,\n failedGetShareFlyoutMessage: true\n };\n case actions.GETTING_SHARE_LINK:\n return {\n ...state,\n gettingShareLink: true,\n gotShareLink: false,\n failedGetShareLink: false\n };\n case actions.GOT_SHARE_LINK:\n return {\n ...state,\n gettingShareLink: false,\n gotShareLink: true,\n failedGetShareLink: false,\n shareLink: action.shareLink\n };\n case actions.FAILED_GET_SHARE_LINK:\n return {\n ...state,\n gettingShareLink: false,\n gotShareLink: false,\n failedGetShareLink: true\n };\n case actions.POSTING_SHARE_FLYOUT:\n return {\n ...state,\n postingShareFlyout: true,\n postedShareFlyout: false,\n failedPostShareFlyout: false\n };\n case actions.POSTED_SHARE_FLYOUT:\n return {\n ...state,\n postingShareFlyout: false,\n postedShareFlyout: true,\n failedPostShareFlyout: false,\n session: action.session\n };\n case actions.FAILED_POST_SHARE_FLYOUT:\n return {\n ...state,\n postingShareFlyout: false,\n postedShareFlyout: false,\n failedPostShareFlyout: true\n };\n case actions.UPLOADING_ACCOUNT_DOCUMENT:\n return {\n ...state,\n uploadingAccountDocument: true,\n uploadAccountDocument: false,\n failedUploadAccountDocument: false\n };\n case actions.UPLOADED_ACCOUNT_DOCUMENT:\n return {\n ...state,\n uploadingAccountDocument: false,\n uploadAccountDocument: true,\n failedUploadAccountDocument: false,\n uploadedAccountDocument: action.uploadedAccountDocument\n };\n case actions.FAILED_UPLOAD_ACCOUNT_DOCUMENT:\n return {\n ...state,\n uploadingAccountDocument: false,\n uploadAccountDocument: false,\n failedUploadAccountDocument: true\n };\n case actions.POSTING_MY_PROFILE_PICTURE:\n return {\n ...state,\n postingMyProfilePicture: true,\n postedMyProfilePicture: false,\n failedPostMyProfilePicture: false\n };\n case actions.POSTED_MY_PROFILE_PICTURE:\n return {\n ...state,\n postingMyProfilePicture: false,\n postedMyProfilePicture: true,\n failedPostMyProfilePicture: false,\n myProfilePicture: action.myProfilePicture\n };\n case actions.FAILED_POST_MY_PROFILE_PICTURE:\n return {\n ...state,\n postingMyProfilePicture: false,\n postedMyProfilePicture: false,\n failedPostMyProfilePicture: true\n };\n case actions.GETTING_SUBSIDIARY_LIST:\n return {\n ...state,\n gettingSubsidiaryList: true,\n gotSubsidiaryList: false,\n failedGetSubsidiaryList: false\n };\n case actions.GOT_SUBSIDIARY_LIST:\n return {\n ...state,\n gettingSubsidiaryList: false,\n gotSubsidiaryList: true,\n failedGetSubsidiaryList: false,\n subsidiaryList: action.subsidiaryList\n };\n case actions.FAILED_GET_SUBSIDIARY_LIST:\n return {\n ...state,\n gettingSubsidiaryList: false,\n gotSubsidiaryList: false,\n failedGetSubsidiaryList: true\n };\n case actions.UPDATING_CONTACT_PRIVACY:\n return {\n ...state,\n updatingContactPrivacy: true,\n updatedContactPrivacy: false,\n failedUpdateContactPrivacy: false\n };\n case actions.UPDATED_CONTACT_PRIVACY:\n return {\n ...state,\n updatingContactPrivacy: false,\n updatedContactPrivacy: true,\n failedUpdateContactPrivacy: false,\n makePrivate: action.makePrivate\n };\n case actions.FAILED_UPDATE_CONTACT_PRIVACY:\n return {\n ...state,\n updatingContactPrivacy: false,\n updatedContactPrivacy: false,\n failedUpdateContactPrivacy: true\n };\n case actions.ADDING_CONTACT:\n return {\n ...state,\n addingContact: true,\n addedContact: false,\n failedAddContact: false\n };\n case actions.ADDED_CONTACT:\n return {\n ...state,\n addingContact: false,\n addedContact: true,\n failedAddContact: false,\n addedContactValue: action.addedContact\n };\n case actions.FAILED_ADD_CONTACT:\n return {\n ...state,\n addingContact: false,\n addedContact: false,\n failedAddContact: true\n };\n case actions.MARKING_CONTACT_AS_PRIMARY:\n return {\n ...state,\n markedContactPrimary: false,\n markingContactPrimary: true,\n failedMarkContactPrimary: false\n };\n case actions.MARKED_CONTACT_AS_PRIMARY:\n return {\n ...state,\n markedContactPrimary: true,\n markingContactPrimary: false,\n failedMarkContactPrimary: false,\n setAsPrimary: action.setAsPrimary\n };\n case actions.FAILED_MARK_CONTACT_AS_PRIMARY:\n return {\n ...state,\n markedContactPrimary: false,\n markingContactPrimary: false,\n failedMarkContactPrimary: true\n };\n case actions.ARCHIVING_ACCOUNT:\n return {\n ...state,\n archivingAccount: true,\n archivedAccount: false,\n failedArchiveAccount: false\n };\n case actions.ARCHIVED_ACCOUNT:\n return {\n ...state,\n archivedAccount: true,\n archivingAccount: false,\n failedArchiveAccount: false\n };\n case actions.FAILED_ARCHIVE_ACCOUNT:\n return {\n ...state,\n archivedAccount: false,\n archivingAccount: false,\n failedArchiveAccount: true\n };\n case actions.GETTING_ARCHIVED_LIST:\n return {\n ...state,\n gettingArchivedList: true,\n gotArchivedList: false,\n failedGetArchivedList: false\n };\n case actions.GOT_ARCHIVED_LIST:\n return {\n ...state,\n gotArchivedList: true,\n gettingArchivedList: false,\n failedGetArchivedList: false,\n archivedList: action.archivedList\n };\n case actions.FAILED_GET_ARCHIVED_LIST:\n return {\n ...state,\n gotArchivedNetworkContactList: false,\n gettingArchivedList: false,\n failedGetArchivedList: true\n };\n case actions.GETTING_ARCHIVED_CONTACT_LIST:\n return {\n ...state,\n gettingArchivedNetworkContactList: true,\n gotArchivedList: false,\n failedGetArchivedNetworkContactList: false\n };\n case actions.GOT_ARCHIVED_CONTACT_LIST:\n return {\n ...state,\n gotArchivedNetworkContactList: true,\n gettingArchivedNetworkContactList: false,\n failedGetArchivedNetworkContactList: false,\n archivedContactList: action.archivedContactList\n };\n case actions.FAILED_GET_ARCHIVED_CONTACT_LIST:\n return {\n ...state,\n gotArchivedNetworkContactList: false,\n gettingArchivedNetworkContactList: false,\n failedGetArchivedNetworkContactList: true\n };\n case actions.ARCHIVING_CONTACT:\n return {\n ...state,\n archivingContact: true,\n archivedContact: false,\n failedArchiveContact: false\n };\n case actions.ARCHIVED_CONTACT:\n return {\n ...state,\n archivingContact: false,\n archivedContact: true,\n failedArchiveContact: false\n };\n case actions.FAILED_ARCHIVE_CONTACT:\n return {\n ...state,\n archivingContact: false,\n archivedContact: false,\n failedArchiveContact: true\n };\n case actions.CLAIMING_PROFILE:\n return {\n ...state,\n claimingProfile: true,\n claimedProfile: false,\n failedClaimProfile: false\n };\n case actions.CLAIMED_PROFILE:\n return {\n ...state,\n claimingProfile: false,\n claimedProfile: true,\n failedClaimProfile: false\n };\n case actions.FAILED_CLAIM_PROFILE:\n return {\n ...state,\n claimingProfile: false,\n claimedProfile: false,\n failedClaimProfile: true\n };\n case actions.GETTING_SELF_SERVICE_STATUS:\n return {\n ...state,\n gettingSelfServiceStatus: true,\n gotSelfServiceStatus: false,\n failedGetSelfServiceStatus: false\n };\n case actions.GOT_SELF_SERVICE_STATUS:\n return {\n ...state,\n gettingSelfServiceStatus: false,\n gotSelfServiceStatus: true,\n failedGetSelfServiceStatus: false,\n selfServiceStatus: action.selfServiceStatus\n };\n case actions.FAILED_GET_SELF_SERVICE_STATUS:\n return {\n ...state,\n gettingSelfServiceStatus: false,\n gotSelfServiceStatus: false,\n failedGetSelfServiceStatus: true\n };\n case actions.GETTING_EMAIL_ATACHMENTS:\n return {\n ...state,\n gettingEmailAttachments: true,\n gotEmailAttachments: false,\n failedGetEmailAttachments: false\n };\n case actions.GOT_EMAIL_ATACHMENTS:\n return {\n ...state,\n gettingEmailAttachments: false,\n gotEmailAttachments: true,\n failedGetEmailAttachments: false,\n emailAttachments: action.emailAtachments\n };\n case actions.FAILED_GET_EMAIL_ATACHMENTS:\n return {\n ...state,\n gettingEmailAttachments: false,\n gotEmailAttachments: false,\n failedGetEmailAttachments: true\n };\n case actions.UPDATING_DOCUMENT_TYPE:\n return {\n ...state,\n updatingDocumentType: true,\n updatedDocumentType: false,\n failedUpdateDocumentType: false\n };\n case actions.UPDATED_DOCUMENT_TYPE:\n return {\n ...state,\n updatingDocumentType: false,\n updatedDocumentType: true,\n failedUpdateDocumentType: false\n };\n case actions.FAILED_UPDATE_DOCUMENT_TYPE:\n return {\n ...state,\n updatingDocumentType: false,\n updatedDocumentType: false,\n failedUpdateDocumentType: true\n };\n case actions.DELETING_DOCUMENT:\n return {\n ...state,\n deletingDocument: true,\n deletedDocument: false,\n failedDeleteDocument: false\n };\n case actions.DELETED_DOCUMENT:\n return {\n ...state,\n deletingDocument: false,\n deletedDocument: true,\n failedDeleteDocument: false\n };\n case actions.FAILED_DELETE_DOCUMENT:\n return {\n ...state,\n deletingDocument: false,\n deletedDocument: false,\n failedDeleteDocument: true\n };\n case actions.DOWNLOADING_ATTACHMENT:\n return {\n ...state,\n downloadingAttachment: true,\n downloadedAttachment: false,\n failedDownloadAttachment: false\n };\n case actions.DOWNLOADED_ATTACHMENT:\n return {\n ...state,\n downloadingAttachment: false,\n downloadedAttachment: true,\n failedDownloadAttachment: false,\n attachmentDownload: action.attachmentDownload\n };\n case actions.FAILED_DOWNLOAD_ATTACHMENT:\n return {\n ...state,\n downloadingAttachment: false,\n downloadedAttachment: false,\n failedDownloadAttachment: true\n };\n default:\n return state;\n }\n}\n\nexport default networkReducer;\n","import data from \"../lib/data\";\nimport { actions as GeneralActions } from \"./general-actions\";\nimport { handlePromiseError } from \"./error-actions\";\nimport Resources from \"../lib/resources\";\n\nexport const actions = {\n ...GeneralActions,\n ...{\n GETTING_DISPUTE_CODE: \"GETTING_DISPUTE_CODE\",\n GOT_DISPUTE_CODE: \"GOT_DISPUTE_CODE\",\n FAILED_GET_DISPUTE_CODE: \"FAILED_GET_DISPUTE_CODE\"\n }\n};\n\nconst fetchDisputeCodes = companyId => (dispatch, getState) => {\n dispatch({ type: actions.GETTING_DISPUTE_CODE });\n return data\n .get(`/v2/api/disputeCode/${companyId}`)\n .then(response => {\n dispatch({ type: actions.GOT_DISPUTE_CODE, disputeCodes: response.data });\n })\n .catch(error => {\n handlePromiseError(error, Resources.GetDisputeCodeFailure(), \"dispute code\");\n dispatch({ type: actions.FAILED_GET_DISPUTE_CODE });\n throw error;\n });\n};\n\nexport const dispatchToProps = dispatch => ({\n fetchDisputeCodes: companyId => {\n return dispatch(fetchDisputeCodes(companyId));\n }\n});\n","import { actions } from \"./disputeCodes-actions\";\n\nconst defaultDisputeCodeSettings = {\n disputeCodes: [],\n gettingDisputeCode: false,\n gotDisputeCode: false,\n failedGetDisputeCode: false\n};\n\nfunction disputeCodeReducer(state = defaultDisputeCodeSettings, action) {\n switch (action.type) {\n case actions.GETTING_DISPUTE_CODE:\n return { ...state, gettingDisputeCode: true, gotDisputeCode: false, failedGetDisputeCode: false };\n case actions.GOT_DISPUTE_CODE:\n return {\n ...state,\n gettingDisputeCode: false,\n gotDisputeCode: true,\n failedGetDisputeCode: false,\n disputeCodes: action.disputeCodes\n };\n case actions.FAILED_GET_DISPUTE_CODE:\n return { ...state, gettingDisputeCode: false, gotDisputeCode: false, failedGetDisputeCode: true };\n default:\n return state;\n }\n}\n\nexport default disputeCodeReducer;\n","import { combineReducers } from \"redux\";\r\n\r\nimport companies from \"./company-reducer\";\r\nimport error from \"./error-reducer\";\r\nimport localization from \"./localization-reducer\";\r\nimport accounts from \"./accounts-reducer\";\r\nimport user from \"./user-reducer\";\r\nimport conversations from \"./conversations-reducer\";\r\nimport ledger from \"./ledger-reducer\";\r\nimport registration from \"./registration-reducer\";\r\nimport search from \"./search-reducer\";\r\nimport manage from \"./manage-reducer\";\r\nimport invite from \"./invite-reducer\";\r\nimport connector from \"./connector-reducer\";\r\nimport perspectives from \"./perspectives-reducer\";\r\nimport reports from \"./reports-reducer\";\r\nimport general from \"./general-reducer\";\r\nimport modal from \"./modal-reducer\";\r\nimport contextGroups from \"./contextGroups-reducer\";\r\nimport statements from \"./statements-reducer\";\r\nimport sequences from \"./sequences-reducer\";\r\nimport network from \"./network-reducer\";\r\nimport disputeCodes from \"./disputeCodes-reducer\";\r\n\r\nconst rootReducer = combineReducers({\r\n companies,\r\n error,\r\n localization,\r\n accounts,\r\n user,\r\n conversations,\r\n ledger,\r\n registration,\r\n search,\r\n manage,\r\n invite,\r\n connector,\r\n perspectives,\r\n reports,\r\n general,\r\n modal,\r\n contextGroups,\r\n statements,\r\n sequences,\r\n network,\r\n disputeCodes\r\n});\r\n\r\nexport default rootReducer;\r\n","import { createStore, compose, applyMiddleware } from \"redux\";\r\nimport thunk from \"redux-thunk\";\r\nimport rootReducer from \"./rootReducer\";\r\n\r\nconst composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\n\r\nconst store = createStore(rootReducer, composeEnhancer(applyMiddleware(thunk)));\r\n\r\nexport default store;\r\n","import { isEmpty } from \"./utils\";\r\nimport Resources from \"./resources\";\r\n\r\nexport const Perspectives = {\r\n AccountsPayable: \"vendors\",\r\n AccountsReceivable: \"customers\"\r\n};\r\n\r\nexport const getPerspective = type => {\r\n let lcType = (isEmpty(type) ? \"\" : type).toLocaleLowerCase();\r\n switch (lcType) {\r\n case \"ar\":\r\n return Perspectives.AccountsReceivable;\r\n case \"ap\":\r\n default:\r\n return Perspectives.AccountsPayable;\r\n }\r\n};\r\n\r\nexport const getDisplayPerspective = perspective => {\r\n switch (perspective) {\r\n case Perspectives.AccountsPayable:\r\n case \"ap\":\r\n return Resources.AccountsPayable;\r\n case Perspectives.AccountsReceivable:\r\n case \"ar\":\r\n return Resources.AccountsReceivable;\r\n default:\r\n return perspective;\r\n }\r\n};\r\n\r\nexport const getPartnerType = (perspective, plural) => {\r\n switch (perspective) {\r\n case Perspectives.AccountsPayable:\r\n case \"ap\":\r\n if (plural) {\r\n return Resources.Vendors;\r\n }\r\n return Resources.Vendor;\r\n case Perspectives.AccountsReceivable:\r\n case \"ar\":\r\n if (plural) {\r\n return Resources.Customers;\r\n }\r\n return Resources.Customer;\r\n default:\r\n return perspective;\r\n }\r\n};\r\n","import Resources from \"./resources\";\r\nimport { formatCurrency, getInvoiceNum, isEmpty } from \"./utils\";\r\nimport moment from \"moment\";\r\n\r\nexport function formatInvoice(ublInvoice) {\r\n const result = {};\r\n result.id = (ublInvoice.ID || {}).Value || \"\";\r\n result.invoiceNum = `${Resources.Invoice} ${getInvoiceNum(ublInvoice.ID) || \"\"}`;\r\n result.issueDate = moment(ublInvoice.IssueDate.ValueString).format(\"ll\");\r\n const dueDate = isEmpty(ublInvoice.DueDate)\r\n ? (((ublInvoice.PaymentMeans || [])[0] || {}).PaymentDueDate || {}).ValueString\r\n : ublInvoice.DueDate.ValueString;\r\n result.dueDate = isEmpty(dueDate) ? \"-\" : moment(dueDate).format(\"ll\");\r\n result.amount = formatCurrency(((ublInvoice.LegalMonetaryTotal || {}).PayableAmount || {}).Value);\r\n\r\n return result;\r\n}\r\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport Resources from \"../lib/resources\";\nimport Icons from \"../lib/icons\";\nimport { isEmpty, formatCurrency, getInvoiceNum } from \"../lib/utils\";\n\nimport { dispatchToProps } from \"../store/conversations-actions\";\n\nclass SideBarInvoice extends Component {\n shouldComponentUpdate(prevProps, prevState) {\n if (this.props.invoice !== prevProps.invoice) {\n return true;\n }\n return false;\n }\n\n render() {\n let { invoice, conversation, erpInvoiceEntry } = this.props;\n if (isEmpty(invoice) || isEmpty(conversation)) {\n return null;\n } else {\n let invoiceId = invoice.ID;\n let invoiceNum = getInvoiceNum(invoiceId);\n // let billId = isEmpty(invoice.BillingReference) ? \"---\" : invoice.BillingReference.InvoiceDocumentReference.ID;\n let issueDate = invoice.IssueDate ? moment(invoice.IssueDate.ValueString).format(\"ll\") : \"---\";\n // let dueDate = isEmpty(invoice.DueDate)\n // ? (((invoice.PaymentMeans || [])[0] || {}).PaymentDueDate || {}).ValueString\n // : invoice.DueDate.ValueString\n // dueDate = isEmpty(dueDate) ? \"-\" : moment(dueDate).format('ll');\n // let statusId = isEmpty(conversation.conversationStatusId) ? Resources.Closed : this.props.getConversationStatus(conversation.conversationStatusId || \"65d7d5d6-3615-4710-bce7-7920fd12d0d0\").conversationStatusName;\n let invoiceAmount = formatCurrency(((invoice.LegalMonetaryTotal || {}).PayableAmount || {}).Value);\n // let totalDebits = ((invoice.LegalMonetaryTotal || {}).PayableAmount || {}).Value;\n // let totalCredits = 0;\n // let prePaid = invoice.PrePaidPayment ? invoice.PrePaidPayment.PaidAmount.Value : 0;\n // let remainingPayment = formatCurrency(totalDebits - totalCredits + prePaid);\n let invoiceLink = invoice.Link;\n let invoiceTitle;\n let eneteredLine = isEmpty(erpInvoiceEntry)\n ? `${Resources.Status}: ${Resources.NotEntered}`\n : `${Resources.EnteredOn} ${moment(erpInvoiceEntry.associationDate).format(\"ll\")}`;\n\n if (isEmpty(invoiceLink)) {\n invoiceTitle = (\n
\n \n {Resources.InvoiceNumber}: {invoiceNum}\n \n
\n );\n } else {\n invoiceTitle = (\n
\n \n {Resources.InvoiceNumber}: {invoiceNum}\n \n
\n );\n }\n\n return (\n \n \n
\n
{Resources.InvoiceSummary.toLocaleUpperCase()}
\n
\n
\n
\n \n
\n
\n {invoiceTitle}\n
{eneteredLine}
\n
\n {Resources.OriginalAmount}: {invoiceAmount}\n
\n
\n
\n\n
\n
\n {/*
{Resources.Due} {dueDate}
\n
{Resources.BillNumber}:
\n
{Resources.RemainingDollars}:
*/}\n
{Resources.InvoiceDate}:
\n {/*
{Resources.Status}:
\n
{Resources.Terms}:
\n
{Resources.CheckNumber}:
\n
{Resources.CheckDate}:
*/}\n
\n
\n {/*
{billId}
\n
---
*/}\n
{issueDate}
\n {/*
{statusId}
\n
---
\n
---
\n
---
*/}\n
\n
\n
\n
\n
\n );\n // } else {\n // let invoiceId = invoice.ID;\n // let invoiceNum = getInvoiceNum(invoiceId);\n // let invoiceTitle =
{Resources.InvoiceNumber}: {invoiceNum}
;\n\n // return (\n // \n // \n //
\n //
{Resources.InvoiceSummary.toLocaleUpperCase()}
\n //
\n //
\n //
\n // \n //
\n //
\n // {invoiceTitle}\n //
{Resources.Status}: {Resources.NotEntered}
\n // \n //
\n //
\n //
\n //
\n //
\n // );\n // }\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n conversation: store.conversations.conversation\n };\n};\n\nexport default connect(\n storeToProps,\n dispatchToProps\n)(SideBarInvoice);\n","import React, { Component } from \"react\";\r\nimport { findDOMNode } from \"react-dom\";\r\n\r\nimport \"../css/scrollbox.scss\";\r\nimport Resources from \"../lib/resources\";\r\nimport Icons from \"../lib/icons\";\r\nimport { isEmpty } from \"../lib/utils\";\r\n\r\nexport default class FlexibleScrollContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n contentHeight: 0,\r\n height: this.props.initialHeight,\r\n maxHeight: this.props.maxHeight || this.props.initialHeight,\r\n scrollBound: false\r\n };\r\n\r\n this.contentScroll = React.createRef();\r\n this.body = React.createRef();\r\n\r\n this.handleScroll = this.handleScroll.bind(this);\r\n this.onLoadMore = this.onLoadMore.bind(this);\r\n this.updateHeight = this.updateHeight.bind(this);\r\n }\r\n\r\n updateHeight() {\r\n // this can happen when we are in the middle of a call to render and the DOM isn't realized...but the resize event on the window gets fired\r\n if (isEmpty(this.body)) {\r\n return;\r\n }\r\n\r\n let contentHeight = this.contentScroll.clientHeight;\r\n if (contentHeight !== this.state.contentHeight) {\r\n this.setState({ contentHeight });\r\n }\r\n\r\n let footerHeight = 60;\r\n let maxed = this.props.maxRows === this.props.children.length || this.props.maxRows === this.props.loaded;\r\n if (isEmpty(this.props.maxRows) || maxed) {\r\n footerHeight = 20;\r\n }\r\n if (this.props.loading === true || this.props.forceFooter === true) {\r\n footerHeight = 60;\r\n }\r\n if (this.props.noFooter) {\r\n footerHeight = 0;\r\n }\r\n\r\n const offsetHeight = this.props.offsetHeight || 0;\r\n const height = window.innerHeight - this.body.getBoundingClientRect().top - footerHeight - offsetHeight;\r\n let maxHeight = this.state.maxHeight;\r\n\r\n if (this.props.maxHeight) {\r\n maxHeight = `calc(${this.props.maxHeight} - ${footerHeight}px - ${offsetHeight}px)`;\r\n } else {\r\n maxHeight = height;\r\n }\r\n\r\n if (contentHeight < height && this.props.noGrow) {\r\n if (this.state.height !== contentHeight || this.state.maxHeight !== contentHeight)\r\n this.setState({ height: contentHeight, maxHeight: contentHeight });\r\n } else {\r\n if (this.state.height !== height || this.state.maxHeight !== maxHeight) this.setState({ height, maxHeight });\r\n }\r\n if (!isEmpty(this.props.scrollbarPresent)) {\r\n this.props.scrollbarPresent(\r\n this.state.contentHeight > this.state.height,\r\n this.body.offsetWidth - this.contentScroll.offsetWidth\r\n );\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener(\"resize\", this.updateHeight);\r\n this.updateHeight();\r\n findDOMNode(this.refs[\"scrollbox\"]).addEventListener(\"scroll\", this.handleScroll, false);\r\n }\r\n\r\n componentDidUpdate() {\r\n this.updateHeight();\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.updateHeight);\r\n findDOMNode(this.refs[\"scrollbox\"]).removeEventListener(\"scroll\", this.handleScroll, false);\r\n }\r\n\r\n handleScroll() {\r\n let box = this.refs[\"scrollbox\"];\r\n let position = box.scrollHeight - box.scrollTop;\r\n // position was computing with decimals...so they were never equal\r\n // this lets us get a little before bottoming out\r\n let atBottom = position - box.offsetHeight < 20;\r\n if (atBottom) {\r\n this.onLoadMore();\r\n }\r\n }\r\n\r\n onLoadMore() {\r\n let onLoadMore = this.props.onLoadMore;\r\n if (onLoadMore) onLoadMore();\r\n }\r\n\r\n render() {\r\n let {\r\n children,\r\n children: { length },\r\n maxRows,\r\n loaded\r\n } = this.props;\r\n length = loaded || length || 0;\r\n maxRows = maxRows || length;\r\n let maxed = maxRows === length;\r\n\r\n return (\r\n
\r\n (this.body = body)}\r\n style={{\r\n height: `${this.state.height}px`,\r\n maxHeight: this.state.maxHeight\r\n }}\r\n >\r\n \r\n
(this.contentScroll = element)}>{children}
\r\n
\r\n \r\n {(maxed !== true || this.props.loading) && this.props.hideLoadMore !== true && (\r\n
\r\n {maxed !== true && {`Showing ${length} of ${maxRows} rows...`}}\r\n \r\n {this.props.loading ? : Resources.LoadMore}\r\n \r\n
\r\n )}\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\n\nclass ProfileAttribute extends Component {\n render() {\n let { label, content } = this.props;\n return (\n
\n
{label}
\n
{content}
\n
\n );\n }\n}\n\nProfileAttribute.defaultProps = {\n label: \"\",\n content: \"\"\n};\n\nexport default ProfileAttribute;\n","import React, { Component } from \"react\";\n\nimport Resources from \"../../lib/resources\";\nimport Icons from \"../../lib/icons\";\n\nclass SyncedWith extends Component {\n render() {\n let { connectorName, text } = this.props;\n return (\n
\n \n \n {text\n ? `${text} ${connectorName}`\n : Resources.SyncedWith(connectorName || Resources.RegisteredAccountingPackage.toLowerCase())}\n \n
\n );\n }\n}\n\nexport default SyncedWith;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport Resources from \"../../lib/resources\";\n\nimport ProfileAttribute from \"./profileAttribute\";\nimport SyncedWith from \"../library/syncedWith\";\nimport { isEmpty } from \"../../lib/utils\";\n\nclass CompanyProfileUI extends Component {\n getAddress(address = { Country: \"\", Line1: \"\", Locality: \"\", PostalCode: \"\", Region: \"\" }) {\n let { /*Country,*/ Line1, Locality, PostalCode, Region } = address;\n return (\n
\n {Line1}\n
\n {Locality}, {Region}\n
\n {PostalCode}\n
\n );\n }\n\n render() {\n let {\n companyName,\n apEmail,\n arEmail,\n apPhone,\n arPhone,\n url,\n address,\n TIN,\n terms,\n contactEmail,\n contactName,\n accountId,\n connectorName,\n mobile,\n vendorLink\n } = this.props;\n\n let isVendor = !!arEmail || !!arPhone;\n let isCustomer = !!apEmail || !!apPhone;\n let isVendorAndCustomer = (isVendor && isCustomer) || (!isVendor && !isCustomer);\n let shouldShowCustomSyncedWithText = !(isVendor && isCustomer);\n\n return (\n \n
\n
\n \n {(isCustomer || isVendorAndCustomer) && (\n \n )}\n {(isVendor || isVendorAndCustomer) && (\n \n )}\n {(isCustomer || isVendorAndCustomer) && (\n \n )}\n {(isVendor || isVendorAndCustomer) && (\n \n )}\n \n \n \n
\n
\n \n \n \n \n \n
\n
\n {!this.props.isMyCompany && (\n
\n {!isEmpty(vendorLink) && (\n \n {vendorLink.linkText || \"\"}\n \n )}\n \n
\n )}\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n companies: store.companies\n };\n};\n\nCompanyProfileUI.defaultProps = {\n readOnly: true,\n showConnectorLink: true,\n isSidePanel: false,\n actions: []\n};\n\nexport default withRouter(connect(storeToProps)(CompanyProfileUI));\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router-dom\";\n\nimport Resources from \"../../lib/resources\";\n\nclass NotConnected extends Component {\n getAddress(address = { Country: \"\", Line1: \"\", Locality: \"\", PostalCode: \"\", Region: \"\" }) {\n let { /*Country,*/ Line1, Locality, PostalCode, Region } = address;\n return (\n
\n {Line1}\n
\n {Locality}, {Region} {PostalCode}\n
\n );\n }\n\n render() {\n let { companyId } = this.props.match.params;\n return (\n \n
\n
\n {Resources.NotSuccessful}\n
\n\n
{Resources.AccountingPackageNotConnectedCompanyProfile}
\n this.props.history.push(`/company/${companyId}/manage/packages`)}\n >\n {Resources.ConnectNow}\n \n
\n
\n );\n }\n}\n\nexport default withRouter(NotConnected);\n","import React, { Component } from \"react\";\r\n\r\nexport default class MainLoader extends Component {\r\n render() {\r\n const spinner =
;\r\n if (this.props.fullScreen === true) {\r\n return (\r\n
\r\n {spinner}\r\n
\r\n );\r\n }\r\n else if (this.props.PaymentIsInProcess) {\r\n return (\r\n
\r\n
Payment is in process, please wait...   
\r\n
\r\n
\r\n );\r\n }\r\n else if (this.props.customBackground) {\r\n return (\r\n
\r\n );\r\n }\r\n return spinner;\r\n }\r\n\r\n \r\n}\r\n\r\nMainLoader.defaultProps ={\r\n spinnerBackgroundColor:\"white\"\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport Resources from \"../../lib/resources\";\r\nimport { formatString } from \"../../lib/strings\";\r\nimport { isEmpty, getQueryParameters } from \"../../lib/utils\";\r\nimport SidebarInvoice from \"../sidebarInvoice\";\r\nimport FlexibleScrollContainer from \"../flexibleScrollContainer\";\r\nimport CompanyProfileUI from \"./companyProfileUI\";\r\nimport NotConnected from \"./notConnected\";\r\nimport MainLoader from \"../mainLoader\";\r\n\r\nimport { dispatchToProps as coDP } from \"../../store/company-actions\";\r\nimport { dispatchToProps as uaDP } from \"../../store/user-actions\";\r\nimport { dispatchToProps as caDP } from \"../../store/conversations-actions\";\r\nimport { dispatchToProps as paDP } from \"../../store/perspectives-actions\";\r\nimport { dispatchToProps as aaDP } from \"../../store/accounts-actions\";\r\nimport { dispatchToProps as congDP } from \"../../store/contextGroups-actions\";\r\nimport { dispatchToProps as connDP } from \"../../store/connector-actions\";\r\nimport { dispatchToProps as modDP } from \"../../store/modal-actions\";\r\nimport { dispatchToProps as genDP } from \"../../store/general-actions\";\r\n\r\nconst dispatchToProps = dispatch => ({\r\n ...uaDP(dispatch),\r\n ...coDP(dispatch),\r\n ...caDP(dispatch),\r\n ...paDP(dispatch),\r\n ...aaDP(dispatch),\r\n ...congDP(dispatch),\r\n ...connDP(dispatch),\r\n ...modDP(dispatch),\r\n ...genDP(dispatch)\r\n});\r\n\r\nclass CompanyProfile extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = this.defaultState();\r\n }\r\n\r\n defaultState() {\r\n return {\r\n companyName: \"\",\r\n address: {\r\n street: \"\",\r\n city: \"\",\r\n region: \"\",\r\n country: \"\",\r\n postal_code: \"\"\r\n },\r\n apPhone: \"\",\r\n arPhone: \"\",\r\n url: \"\",\r\n TIN: \"\",\r\n apEmail: \"\",\r\n arEmail: \"\",\r\n w9File: \"\",\r\n w8BenFile: \"\",\r\n editing: false,\r\n vendorLink: \"\"\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { companyId, fetchCompanyInfo } = this.props;\r\n if (!isEmpty(companyId)) {\r\n fetchCompanyInfo(companyId);\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const {\r\n companyId,\r\n fetchCompanyInfo,\r\n match: { params },\r\n contextGroupsStore\r\n } = this.props;\r\n if (\r\n !isEmpty(prevProps) &&\r\n prevProps.companies.postingCompanyInfo === true &&\r\n this.props.companies.postingCompanyInfo === false\r\n ) {\r\n if (this.props.companyId !== this.props.match.params.companyId) {\r\n this.props.refreshContextGroups(params.companyId, params.perspectiveId);\r\n } else {\r\n this.props.fetchAccounts();\r\n }\r\n this.setState({ editing: false });\r\n }\r\n\r\n if (\r\n this.props.isSidePanel !== true &&\r\n this.props.companyName !== this.state.companyName &&\r\n this.state.editing === false &&\r\n this.props.accountsStore.fetchingAccounts !== true\r\n ) {\r\n this.setState({ companyName: this.props.companyName });\r\n }\r\n\r\n if (this.props.companies.fetchingCompanyInfoFailed[companyId] === true) {\r\n return;\r\n }\r\n\r\n const contextGroupsFetched =\r\n prevProps.contextGroupsStore.gotContextGroups !== true && contextGroupsStore.gotContextGroups === true;\r\n if (this.hasFetched() !== true) {\r\n fetchCompanyInfo(companyId);\r\n } else if (\r\n this.hasFetched(prevProps) !== true ||\r\n companyId !== prevProps.companyId ||\r\n contextGroupsFetched ||\r\n prevProps.invoiceLink !== this.props.invoiceLink\r\n ) {\r\n this.syncStoreToState();\r\n }\r\n }\r\n\r\n checkEditibility() {\r\n return isEmpty(this.props.companyId) ? false : this.props.isCompanyUnowned(this.props.companyId) === true;\r\n }\r\n\r\n hasFetched(props = this.props) {\r\n return props.companies.fetchedCompanyInfo[props.companyId] === true;\r\n }\r\n\r\n syncStoreToState() {\r\n if (this.state.editing) {\r\n return null;\r\n }\r\n const { companyId, getCompanyInfo, contextGroupsStore, conversationsStore } = this.props;\r\n const companyInfo = getCompanyInfo(companyId);\r\n const defaultState = this.defaultState();\r\n let contactNumbers = companyInfo[\"Contact Numbers\"] || null;\r\n let vendorLink = {};\r\n\r\n if (!isEmpty(contextGroupsStore.value)) {\r\n const contextGroupId = ((conversationsStore.conversation || {}).contextGroupIds || [])[0];\r\n let selectedContextGroup = contextGroupsStore.contextGroupsMaps[contextGroupId] || {};\r\n vendorLink = { link: selectedContextGroup.link, linkText: selectedContextGroup.linkText };\r\n }\r\n\r\n this.setState({\r\n companyName: this.props.companyName || \"\",\r\n apEmail: companyInfo.apEmail || defaultState.apEmail,\r\n arEmail: companyInfo.arEmail || defaultState.arEmail,\r\n cn: companyInfo[\"Contact Numbers\"] || defaultState.cn,\r\n apPhone: contactNumbers ? contactNumbers[\"AP Phone\"] : defaultState.apPhone,\r\n arPhone: contactNumbers ? contactNumbers[\"AR Phone\"] : defaultState.arPhone,\r\n address: { ...companyInfo.Address } || { ...defaultState.address },\r\n url: companyInfo.URL || defaultState.url,\r\n TIN: companyInfo.TIN || defaultState.TIN,\r\n w9File: companyInfo[\"W9 File\"] || defaultState.w9,\r\n w8BenFile: companyInfo[\"W8 BEN File\"] || defaultState.w8,\r\n vendorLink,\r\n editing: false\r\n });\r\n }\r\n\r\n render() {\r\n let { isSidePanel, actions, invoice, erpInvoiceEntry } = this.props;\r\n let { vendorLink, apPhone, arPhone } = this.state;\r\n const id = getQueryParameters((vendorLink || {}).link || \"\").id || \"\";\r\n\r\n actions = actions\r\n .filter(a => {\r\n return isEmpty(a.actionLinkTemplate) === false;\r\n })\r\n .map(a => {\r\n return {\r\n link: formatString(a.actionLinkTemplate, { id }),\r\n linkText: a.actionTitle\r\n };\r\n });\r\n\r\n if (isSidePanel) {\r\n return (\r\n
\r\n {/* {this.getPropertyItem(Resources.CompanyInfoContactNumbers, \"cn\")} */}\r\n
{Resources.CompanyInfoContactNumbers.toLocaleUpperCase()}
\r\n
\r\n
\r\n
{Resources.AccountsPayableAbbr}
\r\n
{apPhone}
\r\n
\r\n
\r\n
{Resources.AccountsReceivableAbbr}
\r\n
{arPhone}
\r\n
\r\n
\r\n \r\n \r\n {(actions.length > 0 || !isEmpty(vendorLink)) && (\r\n \r\n
\r\n
{Resources.Actions.toLocaleUpperCase()}
\r\n {vendorLink && (\r\n \r\n {vendorLink.linkText}\r\n \r\n )}\r\n {actions.map((a, i) => {\r\n return (\r\n \r\n {a.linkText}\r\n \r\n );\r\n })}\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n }\r\n\r\n let registeredERPConnector = this.props.getRegisteredERPConnectors(this.props.companyId)[0] || {};\r\n\r\n if (this.props.hasRegisteredERPConnectors(this.props.companyId) === null) {\r\n return ;\r\n }\r\n if (!this.props.hasRegisteredERPConnectors(this.props.companyId)) {\r\n return ;\r\n }\r\n if (isEmpty(vendorLink.linkText) && !this.props.isMyCompany) {\r\n return (\r\n
\r\n
\r\n {Resources.ChannelIsNotLinkedToAConnectorCompany(registeredERPConnector.displayName)}\r\n
\r\n
\r\n
{Resources.LockstepActions}:
\r\n
\r\n
\r\n {\r\n this.props.displayModal(\"remap\", {\r\n companyId: this.props.companyId,\r\n perspective: this.props.match.params.perspectiveId,\r\n companyName: this.state.companyName\r\n });\r\n }}\r\n >\r\n {Resources.RemapEmailToExistingCompany}\r\n \r\n
\r\n
\r\n {\r\n this.props\r\n .postCompanyIsSpam(this.props.match.params.companyId, this.props.companyId)\r\n .then(() => {\r\n this.props.showToast({\r\n timeout: 8000,\r\n text: Resources.CompanyMarkedAsSpam(this.state.companyName),\r\n type: \"green\",\r\n linkHidden: true\r\n });\r\n this.props.history.push(\r\n this.props.location.pathname\r\n .replace(this.props.match.params.selectedContextGroupId, \"spam\")\r\n .replace(this.props.match.params.view, \"activities\")\r\n );\r\n })\r\n .catch(error => {\r\n return null;\r\n });\r\n }}\r\n >\r\n {Resources.MarkSenderAsSpam}\r\n \r\n
\r\n
\r\n
\r\n {Resources.CreateVendorCustomerProfileHelperText(registeredERPConnector.displayName)}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {\r\n companies: store.companies,\r\n conversationsStore: store.conversations,\r\n accountsStore: store.accounts,\r\n contextGroupsStore: store.contextGroups\r\n };\r\n};\r\n\r\nCompanyProfile.defaultProps = {\r\n readOnly: true,\r\n showConnectorLink: true,\r\n isSidePanel: false,\r\n actions: []\r\n};\r\n\r\nexport default withRouter(\r\n connect(\r\n storeToProps,\r\n dispatchToProps\r\n )(CompanyProfile)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Modal, ModalFooter, ModalHeader, ModalBody } from \"reactstrap\";\r\nimport { isEmpty } from \"../lib/utils\";\r\n\r\nexport default class ModalDialog extends Component {\r\n render() {\r\n const { headerClassName, bodyClassName, footerClassName, title, content, footer, ...rest } = this.props;\r\n\r\n return (\r\n \r\n {isEmpty(title) !== true ? {title} : null}\r\n {content}\r\n {isEmpty(footer) !== true ? {footer} : null}\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\n\nclass DropdownItem extends Component {\n render() {\n let { children, onClick, disabled } = this.props;\n return (\n \n );\n }\n}\n\nexport default DropdownItem;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { usePopper } from \"react-popper\";\nimport OutsideClickHandler from \"react-outside-click-handler\";\n\nimport DropdownItem from \"./dropdownItem\";\nimport { isEmpty } from \"../../lib/utils\";\n\nfunction Dropdown(props) {\n const {\n buttonContent = \"\",\n children,\n buttonClassName = \"\",\n buttonWidth = \"\",\n menuWidth = \"\",\n matchButtonMenuWidth = false,\n disabled = false,\n menuAlign = \"bottom\",\n isForm = false,\n menuClassName = \"\",\n toggleOnHover = false,\n noHideDelay = false,\n delayShow = false,\n buttonName = \"\",\n onSetVisible\n } = props;\n\n const referenceRef = useRef(null);\n const popperRef = useRef(null);\n\n const [visible, setVisible] = useState(false);\n\n const setVisibleClickHandler = value => {\n if (!toggleOnHover) {\n setVisible(value);\n }\n\n // If the parent provided a callback for when the drop-down becomes visisble, execute it. We use setTimeout to let any remaining DOM rendering\n // activities complete before trying to manipulate it, otherwise the callback might not have any effect.\n if (onSetVisible && value) {\n setTimeout(() => {\n onSetVisible();\n })\n }\n }\n\n // When toggleHover is true we want the dropdown to open on mouse enter\n // and the dropdown to close after a delay on mouse exit.\n const [hovered, setHovered] = useState(false);\n const displayTimeout = noHideDelay ? 0 : 110;\n\n const setVisibleHoverHandler = value => {\n if (!toggleOnHover) return null;\n // We want the visibility to be updated immediately if we are opening the dropdown\n if (value && !delayShow) {\n setVisible(value);\n }\n setHovered(value);\n };\n // This will close the dropdown after dropdown is not hovered anymore after a delay\n useInterval(\n () => {\n setVisible(false);\n },\n toggleOnHover && !hovered ? displayTimeout : null\n );\n // This will open the dropdown on hover after a delay\n useInterval(\n () => {\n setVisible(true);\n },\n toggleOnHover && hovered ? 400 : null\n );\n\n const { styles, attributes } = usePopper(referenceRef.current, popperRef.current, {\n placement: menuAlign + \"-start\",\n modifiers: [\n {\n name: \"offset\",\n enabled: true,\n options: {\n offset: [0, 6]\n }\n }\n ]\n });\n\n let containerStyle = {\n ...styles.popper\n };\n if (!isEmpty(menuWidth)) {\n containerStyle.width = menuWidth;\n }\n if (matchButtonMenuWidth) {\n containerStyle.width = buttonWidth || \"100%\";\n }\n\n return (\n \n setVisibleHoverHandler(true)}\n onMouseLeave={() => setVisibleHoverHandler(false)}\n >\n setVisibleClickHandler(false)}>\n {\n setVisibleClickHandler(!visible);\n }}\n style={{ width: buttonWidth }}\n data-test-id={buttonName}\n >\n {buttonContent}\n \n \n isForm\n ? (e.target.attributes.closedropdownonclick || {}).value\n ? setVisibleClickHandler(false)\n : null\n : setVisibleClickHandler(false)\n }\n >\n {\n e.current && !e.current.contains(referenceRef) && setVisibleClickHandler(false);\n }}\n disabled={isForm || visible === false}\n >\n {children || }\n \n \n \n
\n \n );\n}\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n\nfunction useInterval(callback, delay) {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n });\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n\n if (delay !== null) {\n let id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n","import React, { Component } from \"react\";\n\nclass IconAngleDown extends Component {\n render() {\n let { className, height, width, strokeWidth, style } = this.props;\n\n return (\n \n \n \n );\n }\n}\n\nexport default IconAngleDown;\n","import React, { useEffect, useState } from \"react\";\r\nimport { createKey, find, isEmpty } from \"../../lib/utils\";\r\nimport Dropdown from \"./dropdown\";\r\nimport IconAngleDown from \"./icons/iconAngleDown\";\r\n\r\nexport default function SelectInput({\r\n value,\r\n options,\r\n label,\r\n labelClassName,\r\n optionValueKey = \"value\",\r\n renderOption,\r\n optionDisplayKey,\r\n displayValue,\r\n width,\r\n labelInline,\r\n disabled,\r\n className,\r\n style = {},\r\n onSelectOption = () => null,\r\n callToActionText,\r\n callToActionOnSelect,\r\n name\r\n}) {\r\n const [selectedOption, setSelectedOption] = useState({});\r\n\r\n useEffect(() => {\r\n setSelectedOption(find(options, option => option[optionValueKey] === value) || {});\r\n }, [value]);\r\n\r\n let dropdownItems = options.map((item, index) => {\r\n let itemValue = optionValueKey ? item[optionValueKey] : item.value;\r\n let itemDisplayName = optionDisplayKey ? item[optionDisplayKey] : item.displayName;\r\n\r\n return (\r\n onSelectOption(item)}\r\n data-test-id={name + \"__item--\" + index}\r\n >\r\n {renderOption ? renderOption(item) : itemDisplayName || itemValue}\r\n \r\n );\r\n });\r\n\r\n if (callToActionText && callToActionOnSelect) {\r\n dropdownItems.push(\r\n \r\n {callToActionText}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {label ? (\r\n
\r\n {label}\r\n
\r\n ) : null}\r\n \r\n {renderOption ? renderOption(selectedOption) :
{displayValue || value}
}\r\n \r\n \r\n }\r\n buttonClassName=\"button-select-input\"\r\n buttonWidth={width}\r\n menuWidth={width}\r\n aria-labelledby={`dropdown-${label}`}\r\n matchButtonMenuWidth\r\n disabled={isEmpty(dropdownItems) || disabled}\r\n >\r\n {dropdownItems}\r\n \r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { isEmpty, find } from \"../lib/utils\";\r\n\r\nimport { getAllCompanyReplyTemplates } from \"../store/manage-actions\";\r\nimport Resources from \"../lib/resources\";\r\nimport SelectInput from \"./library/selectInput\";\r\n\r\nclass EmailTemplatePicker extends Component {\r\n onTemplateSelected(e, template, templateObject) {\r\n if (isEmpty(this.props.templateSelected) !== true) this.props.templateSelected(template, templateObject || {});\r\n }\r\n\r\n render() {\r\n let templates = this.props.getAllCompanyReplyTemplates(this.props.companyId, this.props.perspective) || [];\r\n\r\n const selectInputOptions = templates.map(template => {\r\n return { displayName: template.emailTemplateID, value: template.emailTemplateKey };\r\n });\r\n\r\n return (\r\n
\r\n {this.props.noLabel ? null :
{Resources.Template}
}\r\n
\r\n template.emailTemplateKey === this.props.appliedTemplateId) || {})\r\n .emailTemplateID || Resources.SelectMessageTemplate\r\n : Resources.FetchingPopulatedTemplate\r\n }\r\n options={selectInputOptions}\r\n onSelectOption={option =>\r\n this.onTemplateSelected(\r\n null,\r\n option.value,\r\n find(templates, t => t.emailTemplateKey === option.value)\r\n )\r\n }\r\n labelClassName=\"reply-form-label\"\r\n width=\"20rem\"\r\n disabled={this.props.disabled}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {\r\n user: store.user,\r\n manage: store.manage\r\n };\r\n};\r\n\r\nexport default connect(storeToProps, {\r\n getAllCompanyReplyTemplates\r\n})(EmailTemplatePicker);\r\n","import ReactQuill, { Quill } from \"react-quill\";\r\n\r\nconst Inline = Quill.import(\"blots/inline\");\r\n\r\nclass CustomColor extends Inline {\r\n constructor(domNode, value) {\r\n super(domNode, value);\r\n\r\n // Map properties\r\n domNode.style.color = domNode.color;\r\n\r\n const span = this.replaceWith(new Inline(Inline.create()));\r\n\r\n span.children.forEach(child => {\r\n if (child.attributes) child.attributes.copy(span);\r\n if (child.unwrap) child.unwrap();\r\n });\r\n\r\n this.remove();\r\n\r\n return span;\r\n }\r\n}\r\n\r\n// Prepend links with https protocol\r\n\r\nconst Link = Quill.import(\"formats/link\");\r\nconst builtInFunc = Link.sanitize;\r\n\r\nLink.sanitize = function customSanitizeLinkInput(linkValueInput) {\r\n let val = linkValueInput;\r\n\r\n // do nothing, since this implies user's already using a custom protocol\r\n if (/^\\w+:/.test(val));\r\n else if (!/^https?:/.test(val)) val = \"https:\" + val;\r\n\r\n return builtInFunc.call(this, val); // retain the built-in logic\r\n};\r\n\r\nCustomColor.blotName = \"customColor\";\r\nCustomColor.tagName = \"FONT\";\r\n\r\nQuill.register(CustomColor, true);\r\n\r\nexport default ReactQuill;\r\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport ReactQuill from \"./library/lockstepQuill\";\nimport \"react-quill/dist/quill.snow.css\";\nimport \"../css/quill.scss\";\n//import Dropzone from \"react-dropzone\";\n\n//import Resources from \"../lib/resources\";\n\nimport { dispatchToProps as uaDP } from \"../store/user-actions\";\nimport { dispatchToProps as compDP } from \"../store/company-actions\";\nimport { dispatchToProps as lgrDP } from \"../store/ledger-actions\";\nimport { dispatchToProps as convDP } from \"../store/conversations-actions\";\nimport { dispatchToProps as aaDP } from \"../store/accounts-actions\";\nimport { dispatchToProps as maDP } from \"../store/manage-actions\";\nimport { dispatchToProps as persDP } from \"../store/perspectives-actions\";\nimport { dispatchToProps as gaDP } from \"../store/general-actions\";\nimport { dispatchToProps as modDP } from \"../store/modal-actions\";\nimport { dispatchToProps as congDP } from \"../store/contextGroups-actions\";\nimport { isEmpty, generateGUID } from \"../lib/utils\";\n\nconst dispatchToProps = dispatch => ({\n ...aaDP(dispatch),\n ...uaDP(dispatch),\n ...compDP(dispatch),\n ...lgrDP(dispatch),\n ...convDP(dispatch),\n ...persDP(dispatch),\n ...maDP(dispatch),\n ...gaDP(dispatch),\n ...modDP(dispatch),\n ...congDP(dispatch)\n});\n\nconst elementId = generateGUID();\n\nclass HtmlEditor extends Component {\n constructor(props) {\n super(props);\n\n this.state = { ...this.defaultState };\n }\n\n defaultState = {\n dropEnabled: false,\n\n quillConfig: {\n theme: \"snow\",\n modules: {\n toolbar: {\n container: \"#toolbar\"\n },\n clipboard: {\n matchVisual: false\n }\n },\n readOnly: false\n }\n };\n\n componentDidMount() {\n if (!isEmpty(this.props.onRef)) {\n this.props.onRef(this);\n }\n }\n\n getText() {\n if (!this.quillRef) {\n return;\n }\n let editor = this.quillRef.getEditor();\n let uEditor = this.quillRef.makeUnprivilegedEditor(editor);\n return uEditor.getText();\n }\n\n insertText(index, text) {\n let editor = this.quillRef.getEditor();\n return editor.insertText(index, text);\n }\n\n updateContents(delta) {\n let editor = this.quillRef.getEditor();\n return editor.updateContents(delta);\n }\n\n setTabIndex(item, tabIndex) {\n item.tabIndex = tabIndex;\n if (item.children) {\n for (let i = 0; i < item.children.length; i++) {\n this.setTabIndex(item.children[i], tabIndex);\n }\n }\n }\n\n render() {\n return (\n \n
\n
\n {/* {\n this.setState({ dropEnabled: true });\n }}\n onDragLeave={e => {\n this.setState({ dropEnabled: false });\n }}\n onDrop={acceptedFiles => this.updateAttachments(Array.from(acceptedFiles))}\n >\n {({ getRootProps, getInputProps }) => (\n {\n e.preventDefault();\n this.quillRef.focus();\n }}\n > */}\n {this.props.label && (\n
\n {this.props.label}\n
\n )}\n {\n this.quillRef = el;\n }}\n id={`a${elementId}`}\n bounds={`#a${elementId}`}\n {...this.state.quillConfig}\n value={this.props.htmlContent || \"\"}\n onChange={value => {\n this.props.updateHtmlContent(value);\n this.props.updateTextContent(this.getText());\n }}\n onChangeSelection={this.props.onChangeSelection}\n onBlur={() => {\n if (!isEmpty(this.props.onBlur)) {\n this.props.onBlur();\n }\n }}\n onFocus={() => {\n if (!isEmpty(this.props.onFocus)) {\n this.props.onFocus();\n }\n }}\n />\n {/* {this.state.dropEnabled && (\n
\n

{Resources.DropFilesHere}

\n
\n )}\n \n
\n */}\n
\n
\n
\n
\n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n user: store.user,\n ledgerStore: store.ledger,\n conversations: store.conversations,\n accountsStore: store.accounts,\n manageStore: store.manage,\n contextGroupsStore: store.contextGroups\n };\n};\n\nHtmlEditor.defaultProps = {\n hideToolbar: false\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(HtmlEditor));\n","import React, { Component } from \"react\";\n\nclass IconCode extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n );\n }\n}\n\nIconCode.defaultProps = {\n height: 24\n};\n\nexport default IconCode;\n","import React, { Component } from \"react\";\n\nclass IconAlertCircle extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n \n \n );\n }\n}\n\nIconAlertCircle.defaultProps = {\n height: 22\n};\n\nexport default IconAlertCircle;\n","import React, { Component } from \"react\";\r\nimport Resources from \"../../lib/resources\";\r\nimport { isEmpty, getCurrencySymbol } from \"../../lib/utils\";\r\nimport IconAlertCircle from \"./icons/iconAlertCircle\";\r\n\r\nexport default class TextInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showPassword: false,\r\n isFocused: false\r\n };\r\n\r\n }\r\n\r\n toggleVisibility = () => {\r\n this.setState({ showPassword: !this.state.showPassword });\r\n }\r\n\r\n onFocus = (e) => {\r\n this.setState({ isFocused: true });\r\n if (!isEmpty(this.props.onFocus)) {\r\n this.props.onFocus(e);\r\n }\r\n }\r\n\r\n onBlur = (e) => {\r\n this.setState({ isFocused: false });\r\n if (!isEmpty(this.props.onBlur)) {\r\n this.props.onBlur(e);\r\n }\r\n }\r\n\r\n render() {\r\n let {\r\n isPassword,\r\n id,\r\n inputOnChange,\r\n onPressEnter,\r\n textValue = \"\",\r\n label,\r\n labelInline = true,\r\n width,\r\n disabled,\r\n inline,\r\n inputRef,\r\n className,\r\n centerText,\r\n placeholder,\r\n fsObscure,\r\n isValid = true,\r\n invalidText = \"\",\r\n dollarAmountInput,\r\n style,\r\n autocomplete = true\r\n } = this.props;\r\n\r\n if (dollarAmountInput) {\r\n placeholder = \"0.00\";\r\n }\r\n\r\n let type = \"text\";\r\n\r\n if (this.props.isPassword && !this.state.showPassword) {\r\n type = \"password\";\r\n }\r\n if (this.props.isNumber) {\r\n type = \"number\";\r\n }\r\n\r\n return (\r\n \r\n
\r\n {textValue && isPassword ? (\r\n \r\n {this.state.showPassword ? Resources.Hide : Resources.Show}\r\n \r\n ) : null}\r\n {label ? (\r\n \r\n ) : null}\r\n {dollarAmountInput &&
{getCurrencySymbol(this.props.currencyId)}
}\r\n {\r\n if (e.key === \"Enter\" && typeof onPressEnter === \"function\") {\r\n onPressEnter();\r\n }\r\n }}\r\n placeholder={placeholder}\r\n name={id || \"\"}\r\n />\r\n
\r\n {!isValid && !isEmpty(textValue) && (\r\n
\r\n
\r\n \r\n {invalidText}\r\n
\r\n
\r\n )}\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { dispatchToProps as maDP } from \"../store/manage-actions\";\r\nimport { dispatchToProps as lgrDP } from \"../store/ledger-actions\";\r\nimport { dispatchToProps as persDP } from \"../store/perspectives-actions\";\r\n\r\nimport Dropdown from \"./library/dropdown\";\r\nimport HtmlEditor from \"./htmlEditor\";\r\nimport IconCode from \"./library/icons/iconCode\";\r\n\r\nimport Resources from \"../lib/resources\";\r\nimport { isEmpty, find, spliceString } from \"../lib/utils\";\r\nimport TextInput from \"./library/textInput\";\r\n\r\n//TODO: Refactor this component to use the conversation editor\r\n// instead and also refactor conversation editor to work\r\n// with what is needed for this components needs.\r\n\r\nconst dispatchToProps = dispatch => ({\r\n ...lgrDP(dispatch),\r\n ...maDP(dispatch),\r\n ...persDP(dispatch)\r\n});\r\n\r\nclass ReplyTemplateForm extends Component {\r\n state = {\r\n errorMessage: \"\",\r\n mode: null,\r\n templateName: \"\",\r\n templateId: \"\",\r\n type: \"email\",\r\n subject: \"\",\r\n htmlBody: \"\",\r\n showCcBcc: false,\r\n from: \"\",\r\n to: \"\",\r\n cc: \"\",\r\n bcc: \"\",\r\n attachments: [],\r\n defaultResource: \"\",\r\n defaultResourceDisplay: \"\",\r\n resourceId: \"\",\r\n saving: false,\r\n editorSelection: { index: 0, length: 0 },\r\n quillConfig: {\r\n theme: \"snow\",\r\n modules: {\r\n toolbar: [\r\n [{ header: [1, 2, 3, 4, false] }],\r\n [\"bold\", \"italic\", \"underline\"],\r\n [\"strike\", \"blockquote\"],\r\n [{ list: \"ordered\" }, { list: \"bullet\" }, { indent: \"-1\" }, { indent: \"+1\" }],\r\n [\"link\"]\r\n ],\r\n keyboard: {\r\n bindings: {\r\n tab: {\r\n key: 9,\r\n handler: () => {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n readOnly: false\r\n },\r\n\r\n selectedIndex: 0,\r\n selectedLength: 0\r\n };\r\n\r\n componentDidMount() {\r\n let mountState = {};\r\n if (isEmpty(this.props.templateData) !== true) {\r\n mountState.templateName = this.props.templateData.emailTemplateID || \"\";\r\n mountState.templateId = this.props.templateData.emailTemplateKey || \"\";\r\n mountState.subject = this.props.templateData.subject || \"\";\r\n mountState.htmlBody = this.props.templateData.emailBody || \"\";\r\n }\r\n\r\n this.setState(mountState);\r\n\r\n this.tryUpdate();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.tryUpdate();\r\n }\r\n\r\n tryUpdate() {\r\n if (!isEmpty(this.state.resourceId) && this.state.defaultResource === \"\") {\r\n let resource = this.props.getResource(\"resourceId\", this.state.resourceId);\r\n this.setState({\r\n defaultResource: resource.resourceName,\r\n defaultResourceDisplay: this.getResourceDisplayName(resource.resourceName)\r\n });\r\n }\r\n }\r\n\r\n getResourceDisplayName(resourceName) {\r\n if (resourceName === \"Email\") {\r\n return Resources.New;\r\n }\r\n return Resources[resourceName];\r\n }\r\n\r\n setTabIndex(item, tabIndex) {\r\n item.tabIndex = tabIndex;\r\n if (item.children) {\r\n for (let i = 0; i < item.children.length; i++) {\r\n this.setTabIndex(item.children[i], tabIndex);\r\n }\r\n }\r\n }\r\n\r\n getText() {\r\n let editor = this.htmlEditor.getEditor();\r\n let uEditor = this.htmlEditor.makeUnprivilegedEditor(editor);\r\n return uEditor.getText();\r\n }\r\n\r\n isValid = () => {\r\n if (this.state.templateName === \"\" || this.state.htmlBody === \"\") {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n templateNameExists() {\r\n const { manageStore } = this.props;\r\n let allTemplates = [];\r\n Object.keys(manageStore.allCompanyReplyTemplates).forEach(perspectiveId => {\r\n allTemplates = [...allTemplates, ...manageStore.allCompanyReplyTemplates[perspectiveId]];\r\n });\r\n\r\n return !isEmpty(\r\n find(allTemplates, t => {\r\n return (\r\n t.perspectiveEmailTemplateName === this.state.templateName.trim() &&\r\n t.perspectiveEmailTemplateId !== this.state.templateId\r\n );\r\n })\r\n );\r\n }\r\n\r\n insertVariable(variable) {\r\n if (isEmpty(variable)) {\r\n return;\r\n }\r\n\r\n const editor = this.htmlEditor.getEditor();\r\n const uEditor = this.htmlEditor.makeUnprivilegedEditor(editor);\r\n const { index, length } = this.state.editorSelection;\r\n\r\n editor.setText(spliceString(uEditor.getText(), index, length, variable));\r\n }\r\n\r\n submitTemplate = () => {\r\n if (this.isValid() === true) {\r\n if (this.templateNameExists()) {\r\n this.setState({ errorMessage: Resources.TemplateNameAlreadyExists });\r\n return;\r\n }\r\n const { templateId, templateName, subject, htmlBody } = this.state;\r\n const { perspectiveId, companyId } = this.props;\r\n const payload = {\r\n emailTemplateId: templateName,\r\n emailTemplateKey: templateId,\r\n emailTemplateDesc: templateName,\r\n subject: subject,\r\n emailBody: htmlBody,\r\n emailTemplateStatus: 1,\r\n smsStatus: 0,\r\n voiceMessageStatus: 0\r\n };\r\n\r\n this.props.createEmailReplyTemplate(companyId, perspectiveId, payload).then(result => {\r\n if (result === \"TEMPLATE_CREATED\") {\r\n this.props.closeForm();\r\n }\r\n });\r\n } else {\r\n this.setState({ errorMessage: Resources.AllEntriesEmptyError });\r\n }\r\n };\r\n\r\n render() {\r\n const { templateName, subject, errorMessage } = this.state;\r\n const isUpdate = !isEmpty(this.state.templateId);\r\n\r\n let snippetContent = ((this.props.manageStore.communicationTemplateSnippets || {})[this.state.type] || [])\r\n .filter(snippet => !isEmpty(snippet.handlebarsSnippetValue))\r\n .map(snippet => {\r\n return (\r\n {\r\n let delta = {\r\n ops: []\r\n };\r\n this.state.selectedIndex !== 0 && delta.ops.push({ retain: this.state.selectedIndex });\r\n this.state.selectedLength !== 0 && delta.ops.push({ delete: this.state.selectedLength });\r\n delta.ops.push({ insert: snippet.handlebarsSnippetValue || \"\" });\r\n this.htmlEditor.updateContents(delta);\r\n }}\r\n key={snippet.snippetDescription}\r\n >\r\n
{snippet.snippetDescription}
\r\n \r\n );\r\n });\r\n\r\n return (\r\n
\r\n
{errorMessage}
\r\n\r\n
\r\n {\r\n this.setState({ templateName: e.target.value });\r\n }}\r\n width=\"30rem\"\r\n />\r\n
\r\n
\r\n {\r\n this.setState({ subject: e.target.value });\r\n }}\r\n width=\"30rem\"\r\n />\r\n
\r\n
\r\n this.setState({ focusedField: \"message\" })}\r\n onBlur={range => {\r\n this.setState({ editorSelection: { ...range } });\r\n }}\r\n hideToolbar={this.state.focusedField !== \"message\"}\r\n htmlContent={this.state.htmlBody}\r\n updateHtmlContent={htmlBody => this.setState({ htmlBody })}\r\n updateTextContent={textBody => this.setState({ textBody })}\r\n onChangeSelection={range => {\r\n range && this.setState({ selectedIndex: range.index, selectedLength: range.length });\r\n }}\r\n width=\"50rem\"\r\n onRef={el => {\r\n this.htmlEditor = el;\r\n }}\r\n toolbarItems={\r\n }>\r\n {snippetContent}\r\n \r\n }\r\n id=\"save-replies-quill\"\r\n label={Resources.Body}\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {\r\n companies: store.companies,\r\n manageStore: store.manage\r\n };\r\n};\r\n\r\nexport default connect(storeToProps, dispatchToProps)(ReplyTemplateForm);\r\n","import React, { Component } from \"react\";\r\nimport { getDisplaySize, getFileNameIconClasses } from \"../lib/utils\";\r\nimport Icons from \"../lib/icons\";\r\nimport Resources from \"../lib/resources\";\r\n\r\nclass Attachment extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.onDelete = this.onDelete.bind(this);\r\n }\r\n\r\n onDelete(e) {\r\n e.stopPropagation();\r\n let { onDelete } = this.props;\r\n if (onDelete) onDelete();\r\n }\r\n\r\n render() {\r\n let { name, size, showDelete, showIcon } = this.props;\r\n let { signedUrl, previewUrl } = this.props.attachment;\r\n\r\n let attachmentOverlay;\r\n if (previewUrl) {\r\n attachmentOverlay = (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n
\r\n {showIcon === true && }\r\n
\r\n
\r\n
{name}
\r\n
{getDisplaySize(size || 0)}
\r\n
\r\n {attachmentOverlay}\r\n
\r\n {showDelete ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Attachment;\r\n","import React, { Component } from \"react\";\n\nclass IconUpload extends Component {\n render() {\n let { className, height, style } = this.props;\n\n return (\n \n \n \n \n \n \n \n );\n }\n}\n\nIconUpload.defaultProps = {\n height: 20\n};\n\nexport default IconUpload;\n","import React, { Component } from \"react\";\n\nclass IconUser extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n \n \n \n \n );\n }\n}\n\nIconUser.defaultProps = {\n height: 23\n};\n\nexport default IconUser;\n","import React, { Component } from \"react\";\n\nclass IconCompany extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n );\n }\n}\n\nIconCompany.defaultProps = {\n height: 21\n};\n\nexport default IconCompany;\n","import React from \"react\";\nimport IconUser from \"./icons/iconUser\";\nimport IconCompany from \"./icons/iconCompany\";\n\nexport default function Avatar(props) {\n const {\n height = \"2.27rem\",\n imgURL = \"\",\n type = \"\",\n objectName = \"\",\n isCurrentUser = false,\n isCurrentAccount = false\n } = props;\n\n // In some cases objectName will explicitly be null (possibly a missing or invalid avatar from their profile), so we need to guard against a NPE\n let objectInitials = objectName ? objectName.match(/\\b\\w/g) : [];\n\n objectInitials = ((objectInitials.shift() || \"\") + (objectInitials.pop() || \"\")).toUpperCase();\n let emptyText = props.emptyText || objectInitials;\n const emptyTextFontSize = `calc(${height} / ${emptyText.length <= 2 ? 2.4 : emptyText.length * 1.2})`;\n\n const getEmptyAvatarIcon = () => {\n switch (type) {\n case \"account\":\n return ;\n case \"user\":\n default:\n return ;\n }\n };\n\n return (\n
\n {imgURL ? (\n {objectName\n ) : (\n \n {emptyText ? (\n \n \n {emptyText}\n \n \n ) : (\n getEmptyAvatarIcon()\n )}\n
\n )}\n \n );\n}\n","import React from \"react\";\nimport { components } from \"react-select\";\nimport AsyncCreatableSelect from \"react-select/async-creatable\";\nimport { isEmailValid, isEmpty } from \"../../lib/utils\";\nimport Avatar from \"../library/avatar\";\n\nconst ContactEmailSelect = ({ loadOptions, onChange, label, value = [], isMulti = true }) => {\n const [isActive, setIsActive] = React.useState(false);\n const [inputValue, setInputValue] = React.useState(\"\");\n\n const getSelectItem = (address, name) => ({\n address,\n name,\n isInvalid: !isEmailValid(address)\n });\n\n return (\n
\n
\n {label}\n
\n\n setIsActive(true)}\n onBlur={() => {\n if (!isEmpty(inputValue)) {\n onChange([...value, getSelectItem(inputValue, \"\")]);\n }\n setIsActive(false);\n }}\n // The `isNew` key is used to exclude new e-mail address from the list of options,\n // as well as to hide the menu completely when only new options are present.\n getNewOptionData={(_, label) => ({ isNew: true, address: label, label })}\n onInputChange={value => setInputValue(value)}\n onChange={selected => {\n let selectedEmails = isMulti\n ? [...selected]\n : (selected || []).length > 0\n ? [selected[selected.length - 1]]\n : [];\n const emails = (selectedEmails || []).map(s => {\n let address = \"\";\n\n if (s.address.includes(\"[\") || s.address.includes(\"<\")) {\n address = s.address;\n } else {\n address = s.address.split(\",\")[0];\n }\n\n return { address, name: s.name, isInvalid: s.isInvalid || false };\n });\n onChange(emails);\n }}\n onCreateOption={string => {\n onChange([...value, getSelectItem(string, \"\")]);\n }}\n formatCreateLabel={userInput => userInput}\n components={{\n Option: props => {\n if (props.data.isNew) {\n return null;\n }\n return (\n \n
\n \n
\n {/* For newly created contacts (which don't have name assigned), backend saves e-mail as their name.\n We don't want to display this address twice, so we check if name is different than e-mail. */}\n {props.data.name !== props.value &&
{props.data.name}
}\n
{props.value}
\n
\n
\n
\n );\n },\n DropdownIndicator: () => null,\n IndicatorSeparator: () => null,\n Menu: props => {\n if (inputValue === \"\" || props.options.every(option => option.isNew)) {\n return null;\n }\n\n return {props.children};\n },\n MultiValueContainer: ({ innerProps, ...props }) => {\n const newProps = {\n ...innerProps,\n className: props.data.isInvalid ? `${innerProps.className} invalid-email-container` : innerProps.className\n };\n return ;\n }\n }}\n value={value}\n getOptionLabel={option => option.name || option.address}\n getOptionValue={option => option.address}\n />\n
\n );\n};\n\nexport default ContactEmailSelect;\n","import React, { Component } from \"react\";\n\nexport default class ToggleSwitch extends Component {\n render() {\n const { className, text, onChange, checked, label } = this.props;\n return (\n \n {this.props.label ? : null}\n e.stopPropagation()}>\n \n {!!text && {text}}\n \n \n );\n }\n}\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport $ from \"jquery\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nimport \"react-quill/dist/quill.snow.css\";\r\nimport \"../../../css/quill.scss\";\r\n\r\nimport Resources from \"../../../lib/resources\";\r\nimport Icons from \"../../../lib/icons\";\r\nimport ModalDialog from \"../../modalDialog\";\r\nimport EmailTemplatePicker from \"../../emailTemplatePicker\";\r\nimport ReplyTemplateForm from \"../../replyTemplateForm\";\r\nimport Attachment from \"../../attachment\";\r\nimport HtmlEditor from \"../../htmlEditor\";\r\nimport IconUpload from \"../../library/icons/iconUpload\";\r\nimport TextInput from \"../../library/textInput\";\r\nimport ContactEmailSelect from \"../contactEmailSelect\";\r\n\r\nimport { removeAt, isEmpty, getConversationSubject, deepCompare, find, onBlurCheckFocusable } from \"../../../lib/utils\";\r\n\r\nimport { dispatchToProps as uaDP } from \"../../../store/user-actions\";\r\nimport { dispatchToProps as compDP } from \"../../../store/company-actions\";\r\nimport { dispatchToProps as lgrDP } from \"../../../store/ledger-actions\";\r\nimport { dispatchToProps as convDP } from \"../../../store/conversations-actions\";\r\nimport { dispatchToProps as aaDP } from \"../../../store/accounts-actions\";\r\nimport { handlePromiseError } from \"../../../store/error-actions\";\r\nimport { dispatchToProps as maDP } from \"../../../store/manage-actions\";\r\nimport { dispatchToProps as persDP } from \"../../../store/perspectives-actions\";\r\nimport { dispatchToProps as gaDP } from \"../../../store/general-actions\";\r\nimport { dispatchToProps as modDP } from \"../../../store/modal-actions\";\r\nimport { dispatchToProps as congDP } from \"../../../store/contextGroups-actions\";\r\nimport { searchContacts } from \"../../../store/search-actions\";\r\nimport MainLoader from \"../../mainLoader\";\r\nimport ToggleSwitch from \"../../library/toggleSwitch\";\r\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\r\n\r\nconst dispatchToProps = dispatch => ({\r\n ...aaDP(dispatch),\r\n ...uaDP(dispatch),\r\n ...compDP(dispatch),\r\n ...lgrDP(dispatch),\r\n ...convDP(dispatch),\r\n ...persDP(dispatch),\r\n ...maDP(dispatch),\r\n ...gaDP(dispatch),\r\n ...modDP(dispatch),\r\n ...congDP(dispatch)\r\n});\r\n\r\nclass ConversationEditorError extends Error {\r\n constructor(message, title) {\r\n super(message);\r\n this.title = title;\r\n this.name = \"ConversationEditorError\";\r\n }\r\n}\r\n\r\nclass ConversationEditor extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { ...this.defaultState };\r\n\r\n }\r\n\r\n defaultState = {\r\n contacts: [],\r\n mode: null,\r\n value: \"\",\r\n includeSignature: false,\r\n showCc: false,\r\n showBcc: false,\r\n subject: \"\",\r\n to: [],\r\n cc: [],\r\n bcc: [],\r\n // this is a mixed list of File objects and companyDocuments\r\n attachments: [],\r\n dropEnabled: false,\r\n draftId: null,\r\n existingAttachments: [],\r\n detachments: [],\r\n selectedNewChannel: {},\r\n includeInternal: false,\r\n partnerEntry: {},\r\n remapIdentifiersOnMove: false,\r\n\r\n selectedTemplateId: \"\",\r\n fetchingTemplateId: null,\r\n\r\n saving: false,\r\n committing: false,\r\n commitFailed: false,\r\n\r\n quillConfig: {\r\n theme: \"snow\",\r\n modules: {\r\n toolbar: [\r\n [{ header: [1, 2, 3, 4, false] }],\r\n [\"bold\", \"italic\", \"underline\"],\r\n [\"strike\", \"blockquote\"],\r\n [{ list: \"ordered\" }, { list: \"bullet\" }, { indent: \"-1\" }, { indent: \"+1\" }],\r\n [\"link\"]\r\n ],\r\n keyboard: {\r\n bindings: {\r\n tab: {\r\n key: 9,\r\n handler: () => {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n readOnly: false\r\n },\r\n savingAsTemplate: false\r\n };\r\n\r\n setMode = (mode) => {\r\n this.props.updateEditorMode(mode);\r\n let state = mode === \"new\" ? { ...this.defaultState, mode } : { mode };\r\n let newTo = [...(state.to || []), ...this.props.participants.to];\r\n let newCc = [...(state.cc || [])];\r\n let newBcc = [...(state.cc || [])];\r\n\r\n switch (mode) {\r\n case \"reply\":\r\n const companyEmail = this.state.companyEmail || { address: \"\" };\r\n this.props.conversation.latestEntry.asJson.from.forEach(address => {\r\n if (find(newTo, i => i.address === address.address)) {\r\n return null;\r\n }\r\n if (companyEmail.address.toLowerCase() !== address.address.toLowerCase()) {\r\n newTo.push(address);\r\n }\r\n return newTo;\r\n });\r\n if (isEmpty(newTo)) {\r\n this.props.conversation.latestEntry.asJson.to.forEach(address => {\r\n if (find(newTo, i => i.address === address.address)) {\r\n return null;\r\n }\r\n if (companyEmail.address.toLowerCase() !== address.address.toLowerCase()) {\r\n newTo.push(address);\r\n }\r\n return newTo;\r\n });\r\n }\r\n\r\n state.to = newTo;\r\n state.cc = newCc;\r\n state.bcc = newBcc;\r\n state.showTo = true;\r\n state.showCc = !isEmpty(state.cc);\r\n state.showBcc = !isEmpty(this.state.bcc);\r\n break;\r\n case \"forward\":\r\n state.to = [];\r\n state.cc = [];\r\n state.bcc = [];\r\n break;\r\n default:\r\n state.to = newTo;\r\n break;\r\n }\r\n\r\n const isEmail = [\"new\", \"reply\", \"forward\", \"forwardCopy\", \"waitingResponse\", \"approvalRequest\"].includes(mode);\r\n\r\n if (isEmail) {\r\n state.includeSignature = true;\r\n } else {\r\n state.includeSignature = false;\r\n }\r\n\r\n this.setState(state);\r\n }\r\n\r\n componentDidMount = () => {\r\n const perspectiveId = this.props.match.params.perspectiveId || this.props.perspectiveId;\r\n this.props.clearAllReplyTemplates();\r\n this.props.fetchCompanyDocuments(this.props.companyId, perspectiveId);\r\n this.tryUpdate();\r\n }\r\n\r\n componentDidUpdate = (prevProps, prevState) => {\r\n this.tryUpdate(prevProps, prevState);\r\n }\r\n\r\n tryUpdate = (prevProps, prevState) => {\r\n const { mode } = this.state;\r\n const prevMode = (prevState || {}).mode;\r\n let {\r\n match: { params },\r\n conversation,\r\n withCompanies,\r\n draft,\r\n companyId\r\n } = this.props;\r\n const perspectiveId = this.props.match.params.perspectiveId || this.props.perspectiveId;\r\n\r\n if (prevProps && prevProps.conversation.conversationId !== conversation.conversationId) {\r\n this.setState({ ...this.defaultState });\r\n }\r\n\r\n if (!isEmpty(conversation.withCompanyId)) {\r\n const perspective = this.props.getCompanyPerspectiveById(perspectiveId, params.companyId);\r\n\r\n if (!isEmpty(perspective)) {\r\n const parentPerspective = perspective.parentPerspective;\r\n const partnerType = parentPerspective.perspectiveName === \"customers\" ? \"customer\" : \"vendor\";\r\n const partnerEntry =\r\n (this.props.getCompanyResources(params.companyId, conversation.withCompanyId, partnerType) || [])[0] || {};\r\n\r\n if (!isEmpty(partnerEntry) && isEmpty(this.state.partnerEntry)) {\r\n this.setState({ partnerEntry });\r\n }\r\n if (!isEmpty(this.state.partnerEntry) && isEmpty(prevState.partnerEntry)) {\r\n this.props.getEntryConfig(partnerEntry.ledgerHash, perspectiveId);\r\n }\r\n }\r\n }\r\n\r\n if (prevState && mode !== prevMode) {\r\n this.props.userActivity();\r\n }\r\n\r\n if (!isEmpty(withCompanies) && (isEmpty(prevProps) || isEmpty(prevProps.withCompanies))) {\r\n let { companyEmail } = this.props;\r\n this.setState({\r\n companyEmail\r\n });\r\n }\r\n\r\n if (conversation.new && mode !== \"new\") {\r\n this.setMode(\"new\");\r\n } else if (!conversation.new && mode === \"new\") {\r\n this.setMode(null);\r\n }\r\n\r\n if (!isEmpty(draft) && (isEmpty(this.state.draftId) || this.state.draftId !== draft.addr.address)) {\r\n let {\r\n data,\r\n data: { subject, to, from, cc, bcc, htmlBody }\r\n } = draft;\r\n\r\n if (!isEmpty(data)) {\r\n let draftId = draft.addr.address;\r\n\r\n let modeUpdate = \"reply\";\r\n let toChanged = false;\r\n if (deepCompare(to, from) === 0) {\r\n modeUpdate = \"note\";\r\n to = [];\r\n toChanged = true;\r\n } else if (isEmpty(data.inReplyTo)) {\r\n if (isEmpty(data.references)) {\r\n modeUpdate = \"new\";\r\n } else {\r\n modeUpdate = \"forward\";\r\n }\r\n }\r\n\r\n this.setState({\r\n draftId,\r\n mode: modeUpdate,\r\n subject,\r\n to,\r\n toChanged,\r\n cc,\r\n ccChanged: !isEmpty(cc),\r\n bcc,\r\n showCc: !isEmpty(cc),\r\n showBcc: !isEmpty(bcc),\r\n value: htmlBody,\r\n existingAttachments: [...(draft.attachments || [])]\r\n });\r\n }\r\n } else if (\r\n isEmpty(draft) &&\r\n !isEmpty(this.state.draftId) &&\r\n !this.state.committing &&\r\n !this.state.commitFailed\r\n ) {\r\n this.setState({ ...this.defaultState });\r\n }\r\n\r\n let contacts = this.props.getCompanyAddressBook(companyId) || [];\r\n this.updateSubject();\r\n if (mode !== prevMode) {\r\n if (mode === \"approvalRequest\") {\r\n const to = [];\r\n const approvers = this.props.getCompanyApprovers(companyId)[perspectiveId] || [];\r\n\r\n if (!isEmpty(this.state.partnerEntry)) {\r\n const defaultApproverId = (this.props.getEntryConfig(this.state.partnerEntry.ledgerHash, perspectiveId) || {})\r\n .defaultApprover;\r\n const defaultApprover = find(approvers, a => {\r\n return a.companyContactId === defaultApproverId;\r\n });\r\n if (!isEmpty(defaultApprover)) {\r\n to.push({\r\n name: defaultApprover.fullName,\r\n address: defaultApprover.email\r\n });\r\n }\r\n }\r\n contacts = approvers;\r\n this.setState({\r\n showTo: true,\r\n to,\r\n contacts,\r\n cc: [],\r\n showCc: false,\r\n bcc: [],\r\n showBcc: false\r\n });\r\n } else {\r\n let { cc } = this.props.participants;\r\n let newState = { cc, contacts };\r\n if (this.state.ccChanged) {\r\n newState.cc = this.state.cc;\r\n }\r\n\r\n if (mode === \"forward\" || mode === \"forwardCopy\" || mode === \"waitingResponse\") {\r\n if (this.state.to.length > 0) {\r\n if (isEmpty(this.state.draftId) || this.state.toChanged) {\r\n newState.to = [];\r\n } else if (!this.state.toChanged) {\r\n newState.to = draft.data.to;\r\n }\r\n }\r\n newState.showTo = true;\r\n newState.cc = [];\r\n newState.bcc = [];\r\n newState.showCc = false;\r\n newState.showBcc = false;\r\n }\r\n this.setState(newState);\r\n }\r\n }\r\n\r\n this.props.ensureConversationStatuses();\r\n\r\n if (this.quillRef) {\r\n let toolbar = $(\".quill .ql-toolbar\");\r\n this.setTabIndex(toolbar[0], -1);\r\n }\r\n }\r\n\r\n getContacts = request => {\r\n const companyId = this.props.match.params.companyId || this.props.companyId;\r\n const perspectiveId = this.props.match.params.perspectiveId || this.props.perspectiveId;\r\n\r\n return searchContacts(this.props.selectedAccountId, companyId, perspectiveId, { request }).then(response =>\r\n Object.entries(response.data)\r\n .reduce((acc, [, accountingGroupSearchResults]) => [...acc, ...accountingGroupSearchResults.value], [])\r\n // TODO: Move filtering out contacts without e-mail addresses to the API\r\n .filter(c => c.emailAddr)\r\n .map(c => ({\r\n address: c.emailAddr,\r\n label: c.emailAddr,\r\n profilePictureURL: c.profilePictureURL,\r\n name: c.displayName || c.contactName\r\n }))\r\n );\r\n };\r\n\r\n setTabIndex = (item, tabIndex) => {\r\n item.tabIndex = tabIndex;\r\n if (item.children) {\r\n for (let i = 0; i < item.children.length; i++) {\r\n this.setTabIndex(item.children[i], tabIndex);\r\n }\r\n }\r\n }\r\n\r\n toChanged = (to) => {\r\n this.setState({ to, toChanged: true });\r\n }\r\n\r\n onClosed = () => {\r\n let onClosed = this.props.onClosed;\r\n if (onClosed) onClosed();\r\n }\r\n\r\n onDraftSaved = (draftId) => {\r\n this.setState({ draftId });\r\n let onDraftSaved = this.props.onDraftSaved;\r\n if (onDraftSaved) onDraftSaved(draftId);\r\n }\r\n\r\n updateSubject = () => {\r\n if (!isEmpty(this.state.subject)) return;\r\n let { conversation } = this.props;\r\n let subject = getConversationSubject((conversation || {}).subject || \"\");\r\n if (!conversation.new) {\r\n switch (this.state.mode) {\r\n case \"forward\":\r\n case \"forwardCopy\":\r\n subject = `${Resources.EmailFw} ${subject}`;\r\n break;\r\n case \"note\":\r\n subject = `${Resources.EmailAbout} ${subject}`;\r\n break;\r\n case \"approvalRequest\":\r\n subject = `${Resources.ApprovalRequest}: ${subject}`;\r\n break;\r\n case \"reply\":\r\n default:\r\n subject = `${Resources.EmailRe} ${subject}`;\r\n break;\r\n }\r\n }\r\n if (subject !== this.state.subject) this.setState({ subject });\r\n }\r\n\r\n toggleCc = () => {\r\n this.setState({ showCc: !this.state.showCc });\r\n }\r\n\r\n toggleBcc = () => {\r\n this.setState({ showBcc: !this.state.showBcc });\r\n }\r\n\r\n splitEmails = (emails) => {\r\n if (isEmpty(emails)) return [];\r\n return emails.split(\";\").map(email => {\r\n return { address: email.trim() };\r\n });\r\n }\r\n\r\n delete = () => {\r\n this.setMode(null);\r\n this.setState({ ...this.defaultState });\r\n this.onClosed();\r\n }\r\n\r\n save = (transitionConversationToStatusId) => {\r\n let result = {};\r\n let {\r\n conversation: { conversationId },\r\n match: { params }\r\n } = this.props;\r\n const companyId = params.companyId || this.props.companyId;\r\n const perspectiveId = this.props.match.params.perspectiveId || this.props.perspectiveId;\r\n\r\n result.inReplyTo = conversationId;\r\n if (!isEmpty(transitionConversationToStatusId)) {\r\n result.conversationStatusId = transitionConversationToStatusId;\r\n }\r\n\r\n result.from = [];\r\n if (this.state.companyEmail) {\r\n result.from.push(this.state.companyEmail);\r\n }\r\n\r\n result.to = this.state.to;\r\n result.cc = this.state.cc;\r\n result.bcc = this.state.bcc;\r\n\r\n let error = null;\r\n let resourceName = \"\";\r\n switch (this.props.mode) {\r\n case \"waitingResponse\":\r\n resourceName = \"requestResponse\";\r\n break;\r\n case \"forward\":\r\n case \"forwardCopy\":\r\n case \"new\":\r\n if (this.state.mode === \"forward\" || this.state.mode === \"forwardCopy\") {\r\n result.includeInternal = this.state.includeInternal;\r\n }\r\n resourceName = \"email\";\r\n delete result[\"inReplyTo\"];\r\n if (isEmpty(result.to)) {\r\n error = new ConversationEditorError(\r\n \"TODO: New or Forwarded messages require at least one entry in the TO field. Please add an email address to the TO field.\"\r\n );\r\n }\r\n if (this.state.mode === \"new\") {\r\n break;\r\n }\r\n result.references = [conversationId];\r\n break;\r\n case \"note\":\r\n resourceName = \"note\";\r\n result.to = result.from;\r\n result.cc = [];\r\n result.bcc = [];\r\n break;\r\n case \"reply\":\r\n resourceName = \"email\";\r\n // to needs to default to the list emails on the existing conversation\r\n if (isEmpty(result.to)) {\r\n result.to = this.props.participants.to || [];\r\n }\r\n result.to = [...result.to];\r\n break;\r\n case \"approvalRequest\":\r\n if (isEmpty(result.to)) {\r\n error = new ConversationEditorError(\r\n \"TODO: Approval requests require at least one entry in the TO field. Please add an email address to the TO field.\"\r\n );\r\n }\r\n resourceName = \"approvalrequest\";\r\n break;\r\n case \"approval\":\r\n resourceName = \"approval\";\r\n result.to = result.from;\r\n delete result.cc;\r\n delete result.bcc;\r\n break;\r\n case \"rejection\":\r\n resourceName = \"rejection\";\r\n result.to = result.from;\r\n delete result.cc;\r\n delete result.bcc;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (!error) {\r\n const recipients = [...result.to, ...result.cc, ...result.bcc];\r\n if (recipients.some(contact => contact.isInvalid)) {\r\n error = new ConversationEditorError(Resources.SomeAddressesAreInvalid, Resources.InvalidEmail);\r\n }\r\n }\r\n\r\n let textBody = this.state.textBody;\r\n let htmlBody = this.state.value;\r\n\r\n const userSignature = this.props.getCompanyUserSignature(this.props.getMyUserIdFromToken(), companyId);\r\n\r\n if (this.state.includeSignature && !isEmpty(userSignature)) {\r\n textBody = textBody + \"\\n\\n\\n\" + userSignature.signatureText;\r\n htmlBody = htmlBody + \"

\" + userSignature.signatureHtml;\r\n }\r\n\r\n result = {\r\n ...result,\r\n subject: this.state.subject,\r\n textBody,\r\n htmlBody\r\n };\r\n\r\n this.setState({\r\n saving: true,\r\n commitFailed: false,\r\n quillConfig: { ...this.state.quillConfig, readOnly: true }\r\n });\r\n\r\n let ok = !error ? Promise.resolve() : Promise.reject(error);\r\n\r\n if (isEmpty(this.state.draftId)) {\r\n ok = ok.then(() => {\r\n if (this.props.mode === \"forward\") {\r\n this.props.displayNotification(\"forwardingMessageNotification\");\r\n return this.props.forwardDraft(companyId, \"forward\", result);\r\n } else if (this.props.mode === \"note\") {\r\n this.props.displayNotification(\"creatingNoteNotification\");\r\n return this.props.createDraft(companyId, resourceName, result);\r\n } else {\r\n this.props.displayNotification(\"sendingMessageNotification\");\r\n return this.props.createDraft(companyId, resourceName, result);\r\n }\r\n });\r\n ok = ok.then(response => {\r\n return this.addAttachments(response.data);\r\n });\r\n } else {\r\n ok = ok.then(() => {\r\n return this.props.saveDraft(this.state.draftId, result);\r\n });\r\n ok = ok.then(response => {\r\n return this.addAttachments(response.data);\r\n });\r\n ok = ok.then(draftId => {\r\n return this.removeAttachments().then(response => {\r\n return Promise.resolve(draftId);\r\n });\r\n });\r\n }\r\n\r\n ok = ok\r\n .then(draftId => {\r\n this.onDraftSaved(draftId);\r\n if (!this.state.committing) {\r\n if (!isEmpty(this.props.conversation.conversationId)) {\r\n this.props.refreshConversation();\r\n this.setState({ ...this.defaultState });\r\n this.onClosed();\r\n } else {\r\n this.props.fetchContextGroups(companyId, perspectiveId);\r\n this.props.history.goBack();\r\n }\r\n } else {\r\n this.setState({\r\n saving: false,\r\n quillConfig: {\r\n ...this.state.quillConfig,\r\n readOnly: this.state.committing\r\n }\r\n });\r\n }\r\n\r\n return Promise.resolve(draftId);\r\n }, this)\r\n .catch(rejection => {\r\n this.setState({\r\n saving: false,\r\n quillConfig: {\r\n ...this.state.quillConfig,\r\n readOnly: this.state.committing\r\n }\r\n });\r\n if (rejection.name === \"ConversationEditorError\") {\r\n throw rejection;\r\n } else if (this.state.committing) {\r\n throw new Error(\"save of draft failed\");\r\n }\r\n }, this);\r\n\r\n return ok;\r\n }\r\n\r\n addAttachments = (draftId) => {\r\n let resolveDraftId = Promise.resolve(draftId);\r\n if (this.state.attachments.length > 0) {\r\n return Promise.all([\r\n ...this.state.attachments.map(a => {\r\n if (!isEmpty(a.companyDocumentId)) {\r\n return this.props.addDocumentAttachment(draftId, a.companyDocumentId);\r\n }\r\n return this.props.addAttachment(draftId, a);\r\n })\r\n ]).then(response => {\r\n return resolveDraftId;\r\n });\r\n } else return resolveDraftId;\r\n }\r\n\r\n removeAttachments = () => {\r\n if (this.state.detachments.length > 0)\r\n return Promise.all(\r\n this.state.detachments.map(a => {\r\n return this.props.deleteAttachment(a.attachmentId);\r\n })\r\n );\r\n else return Promise.resolve();\r\n }\r\n\r\n submit = (e, submitAndClose = false, submitAndAwaitResponse = false) => {\r\n this.setState(\r\n {\r\n saving: true,\r\n committing: true,\r\n commitFailed: false,\r\n quillConfig: { ...this.state.quillConfig, readOnly: true }\r\n },\r\n () => {\r\n let closedStatusId = this.props.getConversationStatusByName(\"closed\").conversationStatusId;\r\n let waitingResponseStatusId = this.props.getConversationStatusByName(\"Waiting For Response\")\r\n .conversationStatusId;\r\n let ok;\r\n\r\n if (submitAndClose) {\r\n ok = this.save(closedStatusId);\r\n } else if (submitAndAwaitResponse) {\r\n ok = this.save(waitingResponseStatusId);\r\n } else {\r\n ok = this.save();\r\n }\r\n\r\n ok = ok.then(draftId => {\r\n return this.props.commitDraft(draftId);\r\n }, this);\r\n\r\n ok.then(response => {\r\n if (!isEmpty(this.props.conversation.conversationId)) {\r\n if (submitAndClose || submitAndAwaitResponse) {\r\n this.props\r\n .refreshConversation()\r\n .then(response => {\r\n this.props.refreshContextGroups(this.props.companyId, this.props.perspectiveId);\r\n this.props.refreshConversations(this.props.companyId, this.props.perspectiveId);\r\n this.returnToListView();\r\n })\r\n .catch(error => {\r\n this.returnToListView();\r\n });\r\n } else {\r\n if (this.state.mode === \"note\") {\r\n this.setMode(null);\r\n this.props.refreshConversation();\r\n } else {\r\n this.props.refreshConversations(this.props.companyId, this.props.perspectiveId);\r\n this.returnToListView();\r\n }\r\n }\r\n } else {\r\n this.props.refreshConversations(this.props.companyId, this.props.perspectiveId);\r\n this.props.refreshContextGroups(this.props.companyId, this.props.perspectiveId);\r\n this.props.onSubmitComplete && this.props.onSubmitComplete();\r\n }\r\n }, this).catch(rejection => {\r\n this.setState({\r\n saving: false,\r\n committing: false,\r\n commitFailed: true,\r\n quillConfig: { ...this.state.quillConfig, readOnly: false }\r\n });\r\n this.props.refreshConversation();\r\n const errorMessage =\r\n rejection.name === \"ConversationEditorError\"\r\n ? rejection.message\r\n : \"TODO: Sending of the response to the conversation has failed. Please try again.\";\r\n handlePromiseError(rejection, errorMessage);\r\n }, this);\r\n }\r\n );\r\n }\r\n\r\n updateAttachments = (attachments) => {\r\n this.setState({ attachments: [...this.state.attachments, ...attachments], dropEnabled: false });\r\n }\r\n\r\n removeAttachment = (index) => {\r\n this.setState({ attachments: removeAt(this.state.attachments, index) });\r\n }\r\n\r\n removeExistingAttachment = (index) => {\r\n let detachments = [...this.state.detachments, this.state.existingAttachments[index]];\r\n this.setState({\r\n existingAttachments: removeAt(this.state.existingAttachments, index),\r\n detachments\r\n });\r\n }\r\n\r\n returnToListView = () => {\r\n const {\r\n match: { params },\r\n location: { pathname }\r\n } = this.props;\r\n\r\n let previousPath = pathname.slice(0, pathname.indexOf(`/${params.selectedItemId}`));\r\n this.props.history.push(previousPath);\r\n }\r\n\r\n showAttachFilesModal = (e) => {\r\n const perspectiveId = this.props.match.params.perspectiveId || this.props.perspectiveId;\r\n\r\n this.props.displayModal(\"attachFileModal\", {\r\n companyId: this.props.companyId,\r\n perspectiveId: perspectiveId,\r\n updateAttachments: this.updateAttachments,\r\n uploads: e.target.files\r\n });\r\n }\r\n\r\n showAttachFromLibraryModal = () => {\r\n const perspectiveId = this.props.match.params.perspectiveId || this.props.perspectiveId;\r\n\r\n this.props.displayModal(\"attachFromLibraryModal\", {\r\n companyId: this.props.companyId,\r\n perspectiveId: perspectiveId,\r\n updateAttachments: this.updateAttachments\r\n });\r\n }\r\n\r\n getSendButton = () => {\r\n let { saving, committing } = this.state;\r\n let { mode } = this.props;\r\n //let andCloseText;\r\n let buttonText;\r\n\r\n let disabled = saving || committing;\r\n let canSend = !isEmpty(this.state.companyEmail);\r\n let sendDisabled = disabled || !canSend;\r\n\r\n // Handling all the text for edge cases\r\n switch (mode) {\r\n case \"approval\":\r\n buttonText = Resources.Approve;\r\n break;\r\n case \"rejection\":\r\n buttonText = Resources.Reject;\r\n break;\r\n case \"note\":\r\n if (saving || committing) {\r\n buttonText = Resources.Saving;\r\n } else {\r\n buttonText = Resources.Save;\r\n //andCloseText = Resources.SaveAndClose;\r\n }\r\n break;\r\n default:\r\n buttonText = Resources.Send;\r\n //andCloseText = Resources.SendAndClose;\r\n break;\r\n }\r\n switch (mode) {\r\n case \"new\":\r\n case \"note\":\r\n case \"reply\":\r\n return (\r\n {\r\n this.submit(e, false);\r\n }}\r\n disabled={sendDisabled}\r\n >\r\n {buttonText}\r\n \r\n );\r\n case \"forwardCopy\":\r\n case \"forward\":\r\n return (\r\n \r\n {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.stopPropagation();\r\n this.submit();\r\n }\r\n }}\r\n onClick={this.submit}\r\n >\r\n {disabled ? : buttonText}\r\n \r\n \r\n );\r\n case \"waitingResponse\":\r\n case \"approvalRequest\":\r\n case \"approval\":\r\n case \"rejection\":\r\n default:\r\n return (\r\n {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.stopPropagation();\r\n this.submit();\r\n }\r\n }}\r\n onClick={this.submit}\r\n >\r\n {disabled ? : buttonText}\r\n \r\n );\r\n }\r\n }\r\n\r\n render() {\r\n let disabled = this.state.saving || this.state.committing || this.state.fetchingTemplateId;\r\n let needsEmails = true;\r\n\r\n let { showTo, showCc, showBcc } = this.state;\r\n const { conversation, perspectiveId, mode } = this.props;\r\n const companyId = this.props.match.params.companyId || this.props.companyId;\r\n\r\n let editorClass = \"\";\r\n let modeLabel = null;\r\n\r\n switch (mode) {\r\n case \"reply\":\r\n showTo = true;\r\n //editorClass = \"gray-left\";\r\n break;\r\n case \"waitingResponse\":\r\n //editorClass = \"purple-left\";\r\n modeLabel = Resources.RequestResponse;\r\n break;\r\n case \"forwardCopy\":\r\n //editorClass = \"purple-left\";\r\n modeLabel = Resources.ForwardAsNewConversation;\r\n break;\r\n case \"forward\":\r\n //editorClass = \"purple-left\";\r\n modeLabel = Resources.ForwardActivity;\r\n showTo = true;\r\n break;\r\n case \"new\":\r\n showTo = true;\r\n //showSaveDraft = false;\r\n break;\r\n case \"approvalRequest\":\r\n //editorClass = \"orange-left\";\r\n //showSaveDraft = false;\r\n //showAddAttachment = true;\r\n modeLabel = Resources.SendForApproval;\r\n break;\r\n case \"approval\":\r\n //editorClass = \"teal-left\";\r\n //showSaveDraft = false;\r\n //showAddAttachment = true;\r\n needsEmails = false;\r\n modeLabel = Resources.MarkAsApproved;\r\n break;\r\n case \"rejection\":\r\n //editorClass = \"red-left\";\r\n //showSaveDraft = false;\r\n //showAddAttachment = true;\r\n needsEmails = false;\r\n modeLabel = Resources.MarkAsRejected;\r\n break;\r\n case \"note\":\r\n //editorClass = \"yellow-left\";\r\n needsEmails = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n //TODO: Remove all this code related to status?\r\n //let badgeClass = \"badge-success\";\r\n let statusId = conversation.conversationStatusId || \"65d7d5d6-3615-4710-bce7-7920fd12d0d0\";\r\n let status = this.props.getConversationStatus(statusId) || {};\r\n\r\n switch ((status.conversationStatusName || \"\").toLowerCase()) {\r\n case \"in progress\":\r\n //badgeClass = \"badge-in-progress\";\r\n break;\r\n case \"closed\":\r\n //badgeClass = \"badge-closed\";\r\n break;\r\n case \"spam\":\r\n // badgeClass = \"badge-spam\";\r\n break;\r\n case \"out for approval\":\r\n // badgeClass = \"badge-out-for-approval\";\r\n break;\r\n case \"active\":\r\n default:\r\n // badgeClass = \"badge-active\";\r\n break;\r\n }\r\n\r\n // let currentUser = this.props.getUser(conversation.assignedUserId);\r\n const perspective = this.props.getCompanyPerspectiveById(perspectiveId, this.props.companyId);\r\n\r\n let modalDialog =\r\n !this.state.savingAsTemplate ? null : (\r\n {\r\n this.setState({ savingAsTemplate: false });\r\n }}\r\n toggle={() => {\r\n this.setState({ savingAsTemplate: false });\r\n }}\r\n />\r\n }\r\n />\r\n );\r\n\r\n const templates = this.props.getAllCompanyReplyTemplates(this.props.companyId, perspectiveId);\r\n return (\r\n
\r\n {modalDialog}\r\n {isEmpty(mode) && (\r\n
\r\n this.setMode(\"reply\")}\r\n >\r\n {Resources.Reply}\r\n \r\n this.setMode(\"note\")}\r\n >\r\n {Resources.AddNote}\r\n \r\n
\r\n )}\r\n {!isEmpty(mode) && (\r\n
\r\n {modeLabel ? (\r\n
\r\n {modeLabel}\r\n
\r\n ) : null}\r\n {needsEmails && (\r\n \r\n {showTo && (\r\n \r\n
{Resources.EmailTo}
\r\n
\r\n {!showCc && (\r\n
\r\n {Resources.EmailCC}\r\n
\r\n )}\r\n {!showBcc && (\r\n
\r\n {Resources.EmailBCC}\r\n
\r\n )}\r\n
\r\n
\r\n }\r\n loadOptions={this.getContacts}\r\n onChange={selected => this.setState({ to: selected })}\r\n value={this.state.to}\r\n isMulti={false}\r\n />\r\n )}\r\n {showCc && (\r\n this.setState({ ccChanged: true, cc })}\r\n value={this.state.cc}\r\n />\r\n )}\r\n {showBcc && (\r\n this.setState({ bcc })}\r\n value={this.state.bcc}\r\n />\r\n )}\r\n \r\n )}\r\n {mode === \"new\" && (\r\n {\r\n this.setState({ subject: e.target.value });\r\n }}\r\n label={Resources.Subject}\r\n labelInline={false}\r\n >\r\n )}\r\n\r\n {/* we are letting quill do it's thing and own all the html editing things. Our custom actions will live in the foot section below*/}\r\n {/* {\r\n this.setState({ dropEnabled: true });\r\n }}\r\n onDragLeave={e => {\r\n this.setState({ dropEnabled: false });\r\n }}\r\n onDrop={acceptedFiles => this.updateAttachments(Array.from(acceptedFiles))}\r\n >\r\n {({ getRootProps, getInputProps }) => (\r\n
\r\n {\r\n this.quillRef = el;\r\n }}\r\n {...this.state.quillConfig}\r\n value={this.state.value}\r\n onChange={value => {\r\n this.setState({ value });\r\n }}\r\n />\r\n {this.state.dropEnabled && (\r\n
\r\n

{Resources.DropFilesHere}

\r\n
\r\n )}\r\n \r\n
\r\n )}\r\n */}\r\n\r\n {\r\n //TODO: Add signature support to html editor\r\n }\r\n {this.state.fetchingTemplateId ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n
\r\n this.setState({ focusedField: \"message\" })}\r\n onBlur={e => onBlurCheckFocusable(() => this.setState({ focusedField: null }))}\r\n hideToolbar={this.state.focusedField !== \"message\"}\r\n htmlContent={this.state.value}\r\n updateHtmlContent={htmlBody => this.setState({ value: htmlBody })}\r\n updateTextContent={textBody => this.setState({ textBody })}\r\n signature={\r\n (this.props.getCompanyUserSignature(this.props.getMyUserIdFromToken(), companyId) || {})\r\n .signatureHtml || \"\"\r\n }\r\n />\r\n\r\n {/* this is the footer toolbar where all of our custom actions will live */}\r\n
\r\n {this.props.flags.teamInboxTemplates && templates && templates.length > 0 && (\r\n {\r\n if (mode === \"new\") {\r\n this.setState({ value: templateObject.emailBody, subject: templateObject.subject });\r\n } else {\r\n this.props\r\n .fetchPopulatedTemplate(\r\n this.props.companyId,\r\n perspectiveId,\r\n template,\r\n this.props.conversation.conversationId\r\n )\r\n .then(populatedTemplate => {\r\n if (!isEmpty(populatedTemplate)) {\r\n if (populatedTemplate.htmlBodyCompilerOutput.unmappedProperties.length > 0) {\r\n this.props.displayModal(\"unmappedPropertyModal\", {\r\n unmappedProperties: populatedTemplate.htmlBodyCompilerOutput.unmappedProperties\r\n });\r\n }\r\n this.setState({\r\n value: populatedTemplate.emailBody,\r\n selectedTemplateId: template,\r\n fetchingTemplateToApply: false,\r\n fetchingTemplateId: null\r\n });\r\n }\r\n });\r\n this.setState({ fetchingTemplateId: template.emailTemplateID });\r\n }\r\n }}\r\n appliedTemplateId={this.state.selectedTemplateId}\r\n fetchingTemplateId={this.state.fetchingTemplateId}\r\n />\r\n )}\r\n\r\n {/* \r\n \r\n \r\n }\r\n >\r\n \r\n {Resources.SharedDocuments}\r\n \r\n {\r\n window.document.getElementById(\"uploadFiles\").click();\r\n }}\r\n >\r\n {Resources.UploadFromComputer}\r\n \r\n */}\r\n\r\n {\r\n window.document.getElementById(\"uploadFiles\").click();\r\n }}\r\n >\r\n \r\n \r\n\r\n {/*\r\n // Add templates saving back in later\r\n
\r\n \r\n \r\n {Resources.SaveAs}\r\n \r\n \r\n \r\n this.setState({ savingAsTemplate: true })}>\r\n {Resources.SaveNewTemplate}\r\n \r\n {showSaveDraft && (\r\n \r\n {Resources.SaveAsDraft}\r\n \r\n )}\r\n \r\n
*/}\r\n
\r\n\r\n {(mode === \"forward\" || mode === \"forwardCopy\") && (\r\n
\r\n {\r\n this.setState({ includeInternal: !this.state.includeInternal });\r\n }}\r\n label={Resources.StripOutInternalActivityInForwardedMessage}\r\n />\r\n
\r\n )}\r\n
\r\n {this.getSendButton(this.props.mode)}\r\n {!conversation.new && (\r\n \r\n {Resources.Cancel}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n {this.state.attachments.map((a, index) => {\r\n return (\r\n {\r\n this.removeAttachment(index);\r\n }}\r\n />\r\n );\r\n })}\r\n {this.state.existingAttachments.map((a, index) => {\r\n return (\r\n {\r\n this.removeExistingAttachment(index);\r\n }}\r\n />\r\n );\r\n })}\r\n
\r\n
\r\n )}\r\n \r\n
\r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {\r\n user: store.user,\r\n ledgerStore: store.ledger,\r\n conversations: store.conversations,\r\n accountsStore: store.accounts,\r\n manageStore: store.manage,\r\n contextGroupsStore: store.contextGroups,\r\n selectedAccountId: store.accounts.selectedAccountId\r\n };\r\n};\r\n\r\nexport default withLDConsumer()(withRouter(connect(storeToProps, dispatchToProps)(ConversationEditor)));\r\n","import React, { Component } from \"react\";\r\n\r\nimport Resources from \"../../../lib/resources\";\r\n\r\nexport default class StatusChangeThreadItem extends Component {\r\n render() {\r\n const { posterName, statusName, dateText } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {Resources.StatusChangedByTo(posterName, statusName.toLowerCase())}\r\n \r\n {dateText}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { dispatchToProps } from \"../../../store/user-actions\";\r\n\r\nimport Resources from \"../../../lib/resources\";\r\nimport { isEmpty } from \"../../../lib/utils\";\r\n\r\nclass AssignmentThreadItem extends Component {\r\n render() {\r\n const { posterName, dateText, isTask, entry, assignedUserId } = this.props;\r\n const assignee = this.props.getUserDisplayName(assignedUserId, Resources.Yourself.toLocaleLowerCase());\r\n let titleNote = Resources.ReassignedByTo(posterName, assignee, isTask);\r\n\r\n if (!isEmpty(entry.asJson.relatedConversationId)) {\r\n if (entry.asJson.relatedConversationType.toLowerCase() === \"requestresponse\") {\r\n titleNote = Resources.ResponseRequestReassignedTo(assignee);\r\n } else if (entry.asJson.relatedConversationType.toLowerCase() === \"approvalrequest\") {\r\n titleNote = Resources.ApprovalReassignedTo(assignee);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {titleNote}\r\n \r\n {dateText}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {};\r\n};\r\n\r\nexport default connect(storeToProps, dispatchToProps)(AssignmentThreadItem);\r\n","import React, { Component } from \"react\";\r\n\r\nimport Resources from \"../../../lib/resources\";\r\nimport { isEmpty } from \"../../../lib/utils\";\r\nimport Attachment from \"../../attachment\";\r\n\r\nexport default class ApprovalThreadItem extends Component {\r\n render() {\r\n const { emailBody, attachments, dateText, to, from, cc, approverName } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {dateText} {Resources.Ago.toLowerCase()}\r\n
\r\n
\r\n
\r\n
{from}
\r\n
{to}
\r\n
{cc}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {isEmpty(attachments) === false && (\r\n
\r\n
\r\n {attachments.map(att => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport Resources from \"../../../lib/resources\";\r\nimport { isEmpty, find } from \"../../../lib/utils\";\r\nimport Attachment from \"../../attachment\";\r\n\r\nimport { dispatchToProps as modDP } from \"../../../store/modal-actions\";\r\n\r\nconst dispatchToProps = dispatch => ({\r\n ...modDP(dispatch)\r\n});\r\n\r\nclass ApprovalRequestThreadItem extends Component {\r\n render() {\r\n const {\r\n posterName,\r\n emailBody,\r\n attachments,\r\n isFirstEntry,\r\n assignedTo,\r\n statusName,\r\n dateText,\r\n recipient,\r\n to,\r\n from,\r\n cc,\r\n viewOriginal,\r\n companyId,\r\n showCancel,\r\n resource = {},\r\n entry,\r\n params\r\n } = this.props;\r\n\r\n let { subject } = entry.asJson;\r\n let { ledgerHash } = entry;\r\n\r\n let action = find(resource.actions, action => action.actionId === entry.actionId) || {};\r\n if (action.actionName === \"Cancel\") {\r\n return (\r\n
\r\n {Resources.PosterCanceledTheApprovalRequest(posterName)}\r\n {viewOriginal || null}\r\n \r\n
\r\n {dateText} {Resources.Ago.toLowerCase()}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n const isApprovalRequestTask = !isEmpty(entry.asJson) && !isEmpty(entry.asJson.approvalRequestTasks);\r\n const titleNote = isApprovalRequestTask\r\n ? Resources.SentApprovalTask(posterName, recipient)\r\n : Resources.ApprovalRequestText(posterName, recipient);\r\n\r\n let sentLink = viewOriginal || null;\r\n if (isApprovalRequestTask) {\r\n sentLink = (\r\n \r\n this.props.history.push(\r\n this.props.location.pathname.replace(params.selectedItemId, entry.asJson.approvalRequestTasks[0])\r\n )\r\n }\r\n >\r\n {Resources.ViewTask}\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {sentLink}\r\n {showCancel && (\r\n {\r\n this.props.displayModal(\"cancelApprovalRequest\", {\r\n companyId,\r\n ledgerHash,\r\n subject,\r\n recipient,\r\n to: this.props.entry.asJson.to,\r\n from: this.props.entry.asJson.from\r\n });\r\n }}\r\n >\r\n {Resources.Cancel}\r\n \r\n )}\r\n\r\n \r\n
\r\n {dateText} {Resources.Ago.toLowerCase()}\r\n
\r\n {isFirstEntry &&
{`${assignedTo}, ${statusName}`}
}\r\n
\r\n
\r\n\r\n
{from}
\r\n
{to}
\r\n
{cc}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {isEmpty(attachments) === false && (\r\n
\r\n
\r\n {attachments.map(att => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect(null, dispatchToProps)(ApprovalRequestThreadItem);\r\n","import React, { Component } from \"react\";\r\n\r\nimport Resources from \"../../../lib/resources\";\r\nimport { isEmpty } from \"../../../lib/utils\";\r\nimport Attachment from \"../../attachment\";\r\n\r\nexport default class RejectionThreadItem extends Component {\r\n render() {\r\n const {\r\n emailBody,\r\n attachments,\r\n isFirstEntry,\r\n assignedTo,\r\n statusName,\r\n dateText,\r\n to,\r\n from,\r\n cc,\r\n approverName\r\n } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n {dateText} {Resources.Ago.toLowerCase()}\r\n
\r\n {isFirstEntry &&
{`${assignedTo}, ${statusName}`}
}\r\n
\r\n
\r\n\r\n
{from}
\r\n
{to}
\r\n
{cc}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {isEmpty(attachments) === false && (\r\n
\r\n
\r\n {attachments.map(att => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\nimport { cleanHtml } from \"../../lib/utils\";\n\nconst Iframe = ({ content, sanitize = true }) => {\n let iframe_ref = null;\n const writeHTML = frame => {\n if (!frame) {\n return;\n }\n iframe_ref = frame;\n let doc = frame.contentDocument;\n doc.open();\n if (sanitize) {\n doc.write(cleanHtml(content));\n } else {\n doc.write(content);\n }\n doc.close();\n frame.style.width = \"100%\";\n frame.style.height = `${frame.contentWindow.document.body.scrollHeight}px`;\n };\n\n return \n );\n }\n\n\n confirmDeletePaymentMethodCallback = (passedPmtMethodKey) => {\n const { withCompanyId, statementsStore } = this.props;\n const paymentInfo = this.props.nationalAccount ? statementsStore.paymentInfo[this.state.primaryCompanyId] : statementsStore.paymentInfo[withCompanyId];\n\n const autoPayConfig = paymentInfo.automaticPaymentConfiguration || {};\n autoPayConfig.automaticPaymentConfiguration = null;\n autoPayConfig.automaticPaymentEnabled = false;\n\n if (this.props.nationalAccount) {\n this.props.deletePaymentMethod(this.state.primaryCompanyId, this.props.withCompanyId, passedPmtMethodKey);\n } else {\n this.props.deletePaymentMethod(this.props.companyId, this.props.withCompanyId, passedPmtMethodKey);\n }\n\n this.props.hideModal();\n }\n\n checkForAutoPayRecord = (passedPmtMethodKey) => {\n const { withCompanyId, statementsStore } = this.props;\n const paymentInfo = statementsStore.paymentInfo[withCompanyId];\n const autoPayConfig = paymentInfo.automaticPaymentConfiguration || {};\n\n let autoPayMethod;\n autoPayMethod = find(\n paymentInfo.paymentMethods,\n pMethod => pMethod.paymentMethodId.toString() === (autoPayConfig.pmtMethodKey || \"\").toString()\n );\n if (!isEmpty(autoPayMethod) && autoPayMethod.paymentMethodId === passedPmtMethodKey) {\n this.props.displayModal(\"confirmModal\", {\n confirmMessage: Resources.DeleteAutoPayMethodConfirm,\n onConfirm: () => this.confirmDeletePaymentMethodCallback(passedPmtMethodKey)\n });\n } else {\n this.state.nationalAccount ?\n this.props.deletePaymentMethod(this.state.primaryCompanyId, this.props.withCompanyId, passedPmtMethodKey) :\n this.props.deletePaymentMethod(this.props.companyId, this.props.withCompanyId, passedPmtMethodKey);\n }\n }\n\n renderManagePaymentMethodsContent = () => {\n const paymentMethods = this.getPaymentMethods();\n const columns = [\n {\n header: Resources.PaymentMethod,\n content: row => (\n \n {row.displayValue}\n {moment(row.expirationDate, \"MM/YY\").isBefore() && (\n {Resources.Expired.toLocaleUpperCase()}\n )}\n \n ),\n width: \"35%\"\n },\n {\n header: Resources.DateAdded,\n content: row => (new Date(row.updateDate).getTime() > new Date(row.insertDate).getTime()) ? formatDate(row.updateDate, false, false) : formatDate(row.insertDate, false, false),\n width: \"18%\"\n },\n {\n header: Resources.Type,\n content: row => (row.paymentType === \"ACH\" ? Resources.ACH : Resources.CreditCard),\n width: \"18%\"\n },\n {\n width: \"30%\",\n content: row => (\n
\n \n this.props\n .addOrUpdatePaymentMethod(this.props.companyId, this.props.withCompanyId, {\n paymentMethodId: row.paymentMethodId,\n isDefault: true\n })\n .then(res => {\n this.props.fetchPaymentInfo(this.props.companyId, this.props.withCompanyId);\n })\n .catch(err => {\n console.log(\"Making default payment method error\");\n })\n }\n >\n \n \n {\n this.setState({ paymentView: \"editPaymentMethod\", isEditPaymentBtnClicked: true });\n this.props\n .addOrUpdatePaymentMethod(this.props.companyId, this.props.withCompanyId, {\n paymentMethodId: row.paymentMethodId\n })\n .then(res => {\n this.setState({ iframeUrl: res.redirectUrl });\n })\n .catch(err => null);\n }}\n >\n \n \n this.checkForAutoPayRecord(row.paymentMethodId)}\n >\n \n \n
\n )\n }\n ];\n\n const tableHeight = paymentMethods.length > 6 ? \"28rem\" : `${4 * paymentMethods.length + 2}rem`;\n return (\n
\n \n \n {Resources.AddNewPaymentMethod}\n \n\n {!isEmpty(paymentMethods) && (\n \n )}\n {\n this.setState({ paymentView: \"main\" });\n }}\n >\n {Resources.Done}\n \n
\n );\n }\n\n renderMakingPaymentContent = () => {\n const { companyId, withCompanyId, perspectiveId, pageRowCount } = this.props;\n\n const loadingState = (\n
\n \n
\n );\n\n return (\n (isEmpty(this.state.iframeUrl) && !this.state.iframeLoaded) ? (
\n \n
) :\n \n {\n const iframe = document.getElementById(\"makingPaymentIframe\");\n try {\n const href = iframe.contentWindow.location.href;\n\n if (includes(href, \"/payment/failure\")) {\n const errorMessage1 = href.slice(href.lastIndexOf(\"/\") + 1);\n const idx = errorMessage1.indexOf(\"-\");\n let errorMessage = errorMessage1;\n if (idx >= 0 && idx < 5) {\n errorMessage = errorMessage1.slice(2);\n }\n\n if (errorMessage[0] === paymentErrorCodes.CARD_DECLINED) {\n this.setState({\n paymentView: \"main\",\n iframeUrl: null,\n paymentErrorCode: paymentErrorCodes.CARD_DECLINED,\n paymentErrorMessage: decodeURLQueryString(errorMessage)\n });\n } else {\n this.setState({\n paymentView: \"main\",\n iframeUrl: null,\n paymentErrorCode: paymentErrorCodes.OTHER,\n paymentErrorMessage: decodeURLQueryString(errorMessage)\n });\n }\n } else if (includes(href, \"/payment/success\")) {\n this.props.fetchUnappliedOrPendingPayments(\n companyId,\n perspectiveId,\n withCompanyId,\n null,\n null,\n pageRowCount\n );\n\n const transactionId = decodeURLQueryString(href.slice(href.lastIndexOf(\"/\") + 1));\n this.setState({ paymentView: \"paymentConfirmation\", transactionId });\n }\n } catch (e) {\n window.logToConsole && console.log(e);\n return;\n }\n }}\n >\n \n );\n }\n\n renderPaymentConfirmationContent = () => {\n const columns = this.props.columns.slice(1);\n let totalAmount = this.state.invoices.reduce((accum, curr, index) => {\n if (!includes(this.state.selectedRows, index)) {\n return accum;\n }\n return accum + (Number.parseFloat(curr.paymentAmount) || 0);\n }, 0);\n\n if (isEmpty(this.state.invoices)) {\n totalAmount = Number.parseFloat(this.state.totalAmount);\n }\n\n // Ensures no weird JS decimal stuff\n totalAmount = Math.round(totalAmount * 1e12) / 1e12;\n\n const paidInvoices = this.state.invoices.filter((inv, i) => includes(this.state.selectedRows, i));\n\n return (\n this.hideFlyout(true)}\n onAfterClose={this.props.hideFlyout}\n className=\"flyout make-payment-flyout\"\n overlayClassName=\"flyout-overlay\"\n closeTimeoutMS={400}\n >\n
\n {\n this.hideFlyout(true);\n this.props.clearSelectedRows();\n }}\n className=\"flyout-heading-close\"\n >\n \n
\n
\n \n
\n\n
\n
\n
\n
{Resources.PaidFrom}
\n
{`${this.state.selectedPaymentMethod.paymentType === \"ACH\" ? Resources.BankAccount : Resources.CreditCard\n } ...${this.state.selectedPaymentMethod.lastFourDigits}`}
\n
\n
\n
{Resources.PaymentDate}
\n
{formatDate(new Date(), false, false)}
\n
\n {paidInvoices.length === 0 && (\n
\n
{Resources.PaymentAmount}
\n
{formatCurrency(totalAmount, this.props.statementsStore.selectedCurrency)}
\n
\n )}\n
\n {paidInvoices.length > 0 ? (\n \n
\n {Resources.InvoicesPaid(this.state.selectedRows.length)}\n
\n \n
\n {Resources.TotalPaymentAmount(formatCurrency(totalAmount, this.props.statementsStore.selectedCurrency))}\n
\n
\n ) : (\n \n
{Resources.Message}
\n
{this.state.textBody}
\n
\n )}\n
\n \n );\n }\n\n handleBackButtonForPaymentMethod = () => {\n const iframe = document.getElementById('newPaymentIframe');\n if (this.state.isEditPaymentBtnClicked) {\n this.setState({ paymentView: \"managePaymentMethods\", paymentMethodPageNumber: 0, isEditPaymentBtnClicked: false });\n }\n else if (this.state.paymentMethodPageNumber < 1) {\n this.setState({\n paymentView: \"main\",\n iframeUrl: null,\n paymentErrorCode: null,\n paymentErrorMessage: null,\n paymentMethodPageNumber: 0\n });\n }\n else if (this.state.paymentMethodPageNumber > 1) {\n iframe.setAttribute('src', this.state.iframeUrl);\n this.setState({ paymentMethodPageNumber: 0 });\n }\n else {\n this.setState({\n paymentView: \"main\",\n iframeUrl: null,\n paymentErrorCode: null,\n paymentErrorMessage: null,\n paymentMethodPageNumber: 0\n });\n }\n }\n\n render() {\n let header = \"\";\n let content = null;\n const goBackButton = (\n \n \n \n );\n\n switch (this.state.paymentView) {\n case \"addPaymentMethod\":\n header = (\n
\n {goBackButton}\n {Resources.AddNewPaymentMethod}\n
\n );\n content = this.renderAddOrEditMethodContent();\n break;\n case \"editPaymentMethod\":\n header = (\n
\n {goBackButton}\n {Resources.EditPaymentMethod}\n
\n );\n content = this.renderAddOrEditMethodContent();\n break;\n case \"managePaymentMethods\":\n header = (\n
\n {goBackButton}\n {Resources.ManagePaymentMethods}\n
\n );\n content = this.renderManagePaymentMethodsContent();\n break;\n\n case \"makingPayment\":\n header = Resources.MakeAPayment;\n content = this.renderMakingPaymentContent();\n break;\n case \"paymentConfirmation\":\n return this.renderPaymentConfirmationContent();\n case \"main\":\n default:\n header = Resources.MakeAPayment;\n content = this.renderMainContent();\n break;\n }\n\n return (\n this.hideFlyout(true)}\n onAfterClose={this.props.hideFlyout}\n className=\"flyout make-payment-flyout\"\n overlayClassName=\"flyout-overlay\"\n closeTimeoutMS={400}\n >\n
\n
{header}
\n
this.hideFlyout(true)} className=\"flyout-heading-close\">\n \n
\n
\n
{content}
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n accountsStore: store.accounts,\n modalStore: store.modal,\n statementsStore: store.statements,\n pageRowCount: store.general.pageRowCount\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(MakePaymentFlyout));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as ledgDP } from \"../../../store/ledger-actions\";\nimport { dispatchToProps as statDP } from \"../../../store/statements-actions\";\nimport { dispatchToProps as dcDP } from \"../../../store/disputeCodes-actions\";\n\nimport Resources from \"../../../lib/resources\";\nimport IconClose from \"../../library/icons/iconClose\";\nimport TableData from \"../../library/tableData\";\nimport HtmlEditor from \"../../htmlEditor\";\nimport IconAngleDown from \"../../library/icons/iconAngleDown\";\n\nimport Modal from \"react-modal\";\nimport { onBlurCheckFocusable, isEmpty, updateSelectedRows, formatCurrency, includes } from \"../../../lib/utils\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...ledgDP(dispatch),\n ...statDP(dispatch),\n ...dcDP(dispatch)\n});\n\nclass DisputeFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n selectedReason: null,\n htmlBody: \"\",\n textBody: \"\",\n selectedRows: [],\n showFlyout: true,\n totalAmount: \"\",\n invoices: []\n };\n\n this.submitDispute = this.submitDispute.bind(this);\n this.hideFlyout = this.hideFlyout.bind(this);\n }\n\n componentDidMount() {\n let { selectedInvoices = [] } = this.props;\n let stateUpdate = {};\n\n if (selectedInvoices.length > 0) {\n this.setState({ selectedRows: selectedInvoices.map((invoice, i) => i) });\n }\n\n if (this.props.selectedInvoices.length > 0) {\n const selectedRows = [];\n let invoices = [];\n for (let i = 0; i < this.props.selectedInvoices.length; i++) {\n const inv = { ...this.props.selectedInvoices[i] };\n inv.paymentAmount = Number.parseFloat(inv.amount).toFixed(2);\n invoices.push(inv);\n selectedRows.push(i);\n }\n stateUpdate.invoices = invoices;\n stateUpdate.selectedRows = selectedRows;\n }\n this.setState(stateUpdate);\n this.props.fetchDisputeCodes(this.props.companyId);\n }\n\n hideFlyout() {\n this.setState({ showFlyout: false });\n }\n\n toggleSelectRow(i) {\n let newSelectedRows = updateSelectedRows(i, this.state.selectedRows, this.props.selectedInvoices.length);\n\n this.setState({ selectedRows: newSelectedRows });\n }\n\n submitDispute() {\n let resourceName = \"ApplicationResponse\";\n let { companyId, selectedInvoices, withContextGroupId } = this.props;\n\n let finalSelectedIndexes = this.state.selectedRows.map(i => selectedInvoices[i]);\n\n let note = ``;\n\n let docunentReferences = finalSelectedIndexes.map(invoice => {\n return `\n ${invoice.ledgerHash}\n Disputed\n `;\n });\n\n docunentReferences = docunentReferences.join(\"\");\n\n let response = `\n ${this\n .state.selectedReason ||\n this.props.disputeCodeStore.disputeCodes[0].disputeCodeDescription}\n `;\n\n let finalLedgerContent = [\n ``,\n note,\n ``,\n docunentReferences,\n response,\n ``,\n ``\n ].join(\"\");\n\n this.props.displayNotification(\"creatingDisputeNotification\");\n this.props\n .createEntryToContextGroup(companyId, withContextGroupId, resourceName, finalLedgerContent, {\n \"Content-Type\": \"application/xml\"\n })\n .then(response => {\n this.props.clearSelectedRows();\n this.hideFlyout();\n this.props.refreshOpenInvoices();\n })\n .catch(error => null);\n }\n\n render() {\n const { selectedInvoices = [], columns = [] } = this.props;\n\n let disputeReasons = this.props.disputeCodeStore.disputeCodes || [];\n\n const disableSend =\n isEmpty(this.state.selectedRows) || this.props.ledgerStore.creatingEntry || this.state.selectedReason === null;\n let totalAmount = this.state.invoices.reduce((accum, curr, index) => {\n if (!includes(this.state.selectedRows, index)) {\n return accum;\n }\n return accum + (Number.parseFloat(curr.paymentAmount) || 0);\n }, 0);\n totalAmount = Math.round(totalAmount * 1e12) / 1e12;\n return (\n \n
\n
{Resources.DisputeInvoices}
\n \n \n
\n
\n
\n
\n {Resources.Reason}\n
\n setTimeout(() => this.setState({ focusedField: \"reason\" }), 90)}\n onBlur={e => setTimeout(() => onBlurCheckFocusable(() => this.setState({ focusedField: null })), 90)}\n >\n \n \n {this.state.selectedReason || (\n \n {this.props.disputeCodeStore.gettingDisputeCode ? Resources.LoadingDisputeCodes : Resources.Select}\n \n )}\n \n \n \n \n {disputeReasons.map((reason, i) => (\n this.setState({ selectedReason: reason.disputeCodeDescription })}\n >\n {reason.disputeCodeDescription}\n \n ))}\n \n
\n
\n {Resources.InvoicesSelectedFor(this.state.selectedRows.length)}\n
\n
\n this.toggleSelectRow(i)}\n useRedux\n />\n
\n\n
\n {Resources.TotalDisputedAmount(formatCurrency(totalAmount))}\n
\n
\n {Resources.MessageOptional}\n
\n this.setState({ focusedField: \"message\" })}\n onBlur={e => onBlurCheckFocusable(() => this.setState({ focusedField: null }))}\n hideToolbar={this.state.focusedField !== \"message\"}\n htmlContent={this.state.htmlBody}\n updateHtmlContent={htmlBody => this.setState({ htmlBody })}\n updateTextContent={textBody => this.setState({ textBody })}\n />\n \n {Resources.Submit}\n \n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal,\n conversationsStore: store.conversations,\n ledgerStore: store.ledger,\n accountsStore: store.accounts,\n disputeCodeStore: store.disputeCodes\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(DisputeFlyout));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport moment from \"moment\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as ledgDP } from \"../../../store/ledger-actions\";\nimport { dispatchToProps as statDP } from \"../../../store/statements-actions\";\n\nimport Resources from \"../../../lib/resources\";\nimport IconClose from \"../../library/icons/iconClose\";\nimport TableData from \"../../library/tableData\";\n\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport HtmlEditor from \"../../htmlEditor\";\n\nimport Modal from \"react-modal\";\nimport { includes, onBlurCheckFocusable, isEmpty, updateSelectedRows, formatCurrency } from \"../../../lib/utils\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...ledgDP(dispatch),\n ...statDP(dispatch)\n});\n\nclass PromiseToPayFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n selectedReason: Resources.IncorrectInformation,\n htmlBody: \"\",\n textBody: \"\",\n selectedRows: [],\n expectedPaymentDate: null,\n showFlyout: true,\n totalAmount: \"\",\n invoices: []\n };\n\n this.submitPromiseToPay = this.submitPromiseToPay.bind(this);\n this.hideFlyout = this.hideFlyout.bind(this);\n }\n\n componentDidMount() {\n let { selectedInvoices = [] } = this.props;\n\n let stateUpdate = {};\n if (selectedInvoices.length > 0) {\n this.setState({ selectedRows: selectedInvoices.map((invoice, i) => i) });\n }\n\n if (this.props.selectedInvoices.length > 0) {\n const selectedRows = [];\n let invoices = [];\n for (let i = 0; i < this.props.selectedInvoices.length; i++) {\n const inv = { ...this.props.selectedInvoices[i] };\n inv.paymentAmount = Number.parseFloat(inv.amount).toFixed(2);\n invoices.push(inv);\n selectedRows.push(i);\n }\n stateUpdate.invoices = invoices;\n stateUpdate.selectedRows = selectedRows;\n }\n this.setState(stateUpdate);\n }\n\n hideFlyout() {\n this.setState({ showFlyout: false });\n }\n\n toggleSelectRow(i) {\n let newSelectedRows = updateSelectedRows(i, this.state.selectedRows, this.props.selectedInvoices.length);\n\n this.setState({ selectedRows: newSelectedRows });\n }\n\n submitPromiseToPay() {\n let resourceName = \"DebitNote\";\n let { companyId, selectedInvoices } = this.props;\n\n let finalSelectedIndexes = this.state.selectedRows.map(i => selectedInvoices[i]);\n\n let note = ``;\n\n let billingReferences = finalSelectedIndexes.map(invoice => {\n return `\n \n ${invoice.ledgerHash}\n \n `;\n });\n\n billingReferences = billingReferences.join(\"\");\n let paymentMeans = `\n ${moment(\n this.state.expectedPaymentDate\n ).format(\"YYYY-MM-DD\")}\n 61\n `;\n\n let totalInvoiceAmount = finalSelectedIndexes.reduce((total, invoice) => total + invoice.amount, 0);\n let requestedMonetaryTotal = `\n ${totalInvoiceAmount}\n `;\n let finalLedgerContent = [\n ``,\n note,\n `${moment().format(\n \"YYYY-MM-DD\"\n )}`,\n billingReferences,\n paymentMeans,\n requestedMonetaryTotal,\n ``\n ].join(\"\");\n this.props.displayNotification(\"creatingPromiseToPayNotification\");\n this.props\n .createEntryToContextGroup(companyId, this.props.withContextGroupId, resourceName, finalLedgerContent, {\n \"Content-Type\": \"application/xml\"\n })\n .then(response => {\n this.props.clearSelectedRows();\n this.hideFlyout();\n this.props.refreshOpenInvoices();\n });\n }\n\n render() {\n const { selectedInvoices = [], columns = [] } = this.props;\n\n let totalAmount = this.state.invoices.reduce((accum, curr, index) => {\n if (!includes(this.state.selectedRows, index)) {\n return accum;\n }\n return accum + (Number.parseFloat(curr.paymentAmount) || 0);\n }, 0);\n totalAmount = Math.round(totalAmount * 1e12) / 1e12;\n return (\n \n
\n
{Resources.PromiseToPay}
\n
\n \n
\n
\n
\n \n {Resources.ExpectedPaymentDate}\n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n shouldCloseOnSelect\n minDate={new Date()}\n selected={this.state.expectedPaymentDate && new Date(this.state.expectedPaymentDate)}\n onChange={d =>\n this.setState({\n expectedPaymentDate: moment(d)\n .startOf(\"day\")\n .format(\"YYYY-MM-DD HH:mm:ss\")\n })\n }\n onFocus={() => this.setState({ focusedField: \"expectedDate\" })}\n onBlur={e => onBlurCheckFocusable(() => this.setState({ focusedField: null }))}\n />\n
\n {Resources.Message}\n
\n this.setState({ focusedField: \"message\" })}\n onBlur={e => onBlurCheckFocusable(() => this.setState({ focusedField: null }))}\n hideToolbar={this.state.focusedField !== \"message\"}\n htmlContent={this.state.htmlBody}\n updateHtmlContent={htmlBody => this.setState({ htmlBody })}\n updateTextContent={textBody => this.setState({ textBody })}\n />\n
\n {Resources.InvoicesSelectedFor(this.state.selectedRows.length)}\n
\n
\n this.toggleSelectRow(i)}\n noSort\n useRedux\n />\n
\n
\n {Resources.TotalPromisedAmount(formatCurrency(totalAmount))}\n
\n \n {Resources.Submit}\n \n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal,\n conversationsStore: store.conversations,\n ledgerStore: store.ledger,\n accountsStore: store.accounts\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(PromiseToPayFlyout));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport Modal from \"react-modal\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as manDP } from \"../../../store/manage-actions\";\n\nimport Resources from \"../../../lib/resources\";\nimport IconClose from \"../../library/icons/iconClose\";\nimport { isEmpty } from \"../../../lib/utils\";\nimport TextInput from \"../../library/textInput\";\nimport TextAreaInput from \"../../library/textAreaInput\";\nimport Checkbox from \"../../library/checkbox\";\nimport RadioInput from \"../../library/radioInput\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...manDP(dispatch)\n});\n\nclass ContactFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n contactAddressBookId: null,\n\n fullName: \"\",\n title: \"\",\n email: \"\",\n phone: \"\",\n fax: \"\",\n address: {\n line1: \"\",\n line2: \"\",\n line3: \"\",\n city: \"\",\n region: \"\",\n postalCode: \"\",\n country: \"\"\n },\n type: \"person\",\n notes: \"\",\n isPrimary: false,\n showFlyout: true\n };\n\n this.submitContact = this.submitContact.bind(this);\n this.hideFlyout = this.hideFlyout.bind(this);\n }\n\n componentDidMount() {\n if (!isEmpty(this.props.contact)) {\n this.setState(this.props.contact);\n }\n }\n\n hideFlyout() {\n this.setState({ showFlyout: false });\n }\n\n submitContact() {\n let { companyId } = this.props;\n\n if (isEmpty(this.state.addressBookContactId)) {\n this.props.displayNotification(\"contactSubmittingNotification\", { isNew: true });\n this.props\n .putAddressBookContact(companyId, this.state)\n .then(response => {\n this.hideFlyout();\n })\n .catch(error => {});\n } else {\n this.props.displayNotification(\"contactSubmittingNotification\", { isNew: false });\n this.props\n .postAddressBookContact(companyId, this.state.addressBookContactId, this.state)\n .then(response => {\n this.hideFlyout();\n })\n .catch(error => {});\n }\n }\n\n render() {\n const disableSend =\n isEmpty(this.state.fullName) ||\n isEmpty(this.state.email) ||\n this.props.manageStore.postingAddressBookContact ||\n this.props.manageStore.puttingAddressBookContact;\n\n return (\n \n
\n
{Resources.AddNewContact}
\n
\n \n
\n
\n
\n
\n {\n this.setState({ fullName: e.target.value });\n }}\n />\n {\n this.setState({ title: e.target.value });\n }}\n />\n
\n\n {\n this.setState({ email: e.target.value });\n }}\n />\n {\n this.setState({ phone: e.target.value });\n }}\n />\n {\n this.setState({ fax: e.target.value });\n }}\n />\n
\n {\n this.setState({ address: { ...this.state.address, line1: e.target.value } });\n }}\n />\n {\n this.setState({ address: { ...this.state.address, country: e.target.value } });\n }}\n />\n
\n {\n this.setState({ address: { ...this.state.address, city: e.target.value } });\n }}\n />\n {\n this.setState({ address: { ...this.state.address, region: e.target.value } });\n }}\n />\n {\n this.setState({ address: { ...this.state.address, postalCode: e.target.value } });\n }}\n />\n
\n
\n {\n this.setState({\n type: item.value\n });\n }}\n />\n
\n {\n this.setState({ notes: e.target.value });\n }}\n rows={8}\n />\n
\n {\n this.setState({ isPrimary: !this.state.isPrimary });\n }}\n style={{ paddingBottom: \"4rem\" }}\n />\n
\n \n {Resources.Save}\n \n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal,\n conversationsStore: store.conversations,\n ledgerStore: store.ledger,\n accountsStore: store.accounts,\n manageStore: store.manage\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ContactFlyout));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as ledgDP } from \"../../../store/ledger-actions\";\nimport { dispatchToProps as statDP } from \"../../../store/statements-actions\";\n\nimport Resources from \"../../../lib/resources\";\nimport IconClose from \"../../library/icons/iconClose\";\nimport IconAttachment from \"../../library/icons/iconAttachment\";\nimport IconAlert from \"../../library/icons/iconAlert\";\nimport TableData from \"../../library/tableData\";\nimport Card from \"../../library/card\";\nimport TableDataSortableHeader from \"../../library/tableDataSortableHeader\";\n\nimport moment from \"moment\";\nimport Modal from \"react-modal\";\nimport { isEmpty, updateSelectedRows, formatDate, formatCurrency, find } from \"../../../lib/utils\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...ledgDP(dispatch),\n ...statDP(dispatch)\n});\n\nclass ApplyPaymentFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n selectedRows: [],\n\n showFlyout: true\n };\n\n this.applyPayment = this.applyPayment.bind(this);\n this.hideFlyout = this.hideFlyout.bind(this);\n }\n\n componentDidMount() {}\n\n toggleSelectRow(i) {\n let newSelectedRows = updateSelectedRows(\n i,\n this.state.selectedRows,\n this.props.statementsStore.openInvoices.length\n );\n\n this.setState({ selectedRows: newSelectedRows });\n }\n\n hideFlyout() {\n this.setState({ showFlyout: false });\n }\n\n applyPayment() {\n console.log(\"apply the payment now\");\n }\n\n getColumns() {\n const { statementsStore } = this.props;\n\n const selectCol = {\n type: \"rowSelect\",\n width: \"9%\"\n };\n\n const invoiceDateCol = {\n header: noSort =>\n noSort ? (\n Resources.InvoiceDate.toLocaleUpperCase()\n ) : (\n {\n this.onSortChange();\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={Resources.InvoiceDate.toLocaleUpperCase()}\n sortKey={\"IssueDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {formatDate(row.issueDate, true, false)},\n width: \"17%\"\n };\n const invoiceNumCol = {\n header: noSort =>\n noSort ? (\n Resources.InvoiceNumber.toLocaleUpperCase()\n ) : (\n {\n this.onSortChange();\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={Resources.InvoiceNumber.toLocaleUpperCase()}\n sortKey={\"Id\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {\n let hasAttachment = true || !isEmpty(row.attachments);\n\n return (\n
\n
\n {hasAttachment ? (\n \n {\n this.downloadAttachments(row.attachments, Resources.InvoiceNAttachments(row.id) + \".zip\");\n }}\n >\n \n {row.id}\n \n \n \n \n ) : (\n \n {row.id}\n \n )}\n
\n {(row.isDisputed || row.hasPromissoryNote) && (\n
\n {row.isDisputed && (\n
\n this.displayRelatedConversation(row.activeDispute)}\n style={{ marginBottom: row.hasPromissoryNote ? \"0.4rem\" : \"\" }}\n >\n {Resources.Disputed}\n \n
\n )}\n {row.hasPromissoryNote && (\n
\n \n this.displayRelatedConversation(\n find(row.payments, payment => payment.paymentType === \"Promise to Pay\")\n )\n }\n >\n {Resources.Promised}\n \n
\n )}\n
\n )}\n
\n );\n },\n width: \"22%\"\n };\n\n const amountDueCol = {\n header: noSort =>\n noSort ? (\n Resources.AmountDue.toLocaleUpperCase()\n ) : (\n {\n this.onSortChange();\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={Resources.AmountDue.toLocaleUpperCase()}\n sortKey={\"Amount\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n
\n $\n {formatCurrency(row.amount, \"\")}\n
\n ),\n width: \"9rem\"\n };\n\n const fillerCol = { width: \"8%\", content: row => null };\n\n const dueDateCol = {\n header: noSort =>\n noSort ? (\n Resources.Due_Date.toLocaleUpperCase()\n ) : (\n {\n this.onSortChange();\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={Resources.Due_Date.toLocaleUpperCase()}\n sortKey={\"DueDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {formatDate(row.dueDate, true, false)},\n width: \"14%\"\n };\n\n const statusCol = {\n header: noSort =>\n noSort ? (\n Resources.Status.toLocaleUpperCase()\n ) : (\n {\n this.onSortChange();\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={Resources.Status.toLocaleUpperCase()}\n sortKey={\"DueDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {\n let isPastDue = moment(row.dueDate).isBefore();\n return (\n \n {isPastDue ? Resources.PastDue : row.status}\n {isPastDue ? : \"\"}\n \n );\n },\n width: \"18%\"\n };\n\n return [selectCol, invoiceDateCol, invoiceNumCol, amountDueCol, fillerCol, dueDateCol, statusCol];\n }\n\n handleLoadMore(pageToLoad) {\n let { companyId, perspectiveId, withCompanyId, pageRowCount } = this.props;\n let top = pageRowCount;\n let skip = pageToLoad * pageRowCount - pageRowCount;\n this.props.fetchOpenInvoices(companyId, perspectiveId, withCompanyId, null, null, top, skip);\n }\n\n render() {\n const columns = this.getColumns();\n const { payment, statementsStore } = this.props;\n\n const data = statementsStore.openInvoices;\n\n return (\n \n
\n
{Resources.SelectInvoicesForPaymentApplication(payment.id)}
\n
\n \n
\n
\n
\n
\n \n this.handleLoadMore(pageSelected)}\n rowClassName=\"statements-view-row no-hover\"\n localSelectedRows={this.state.selectedRows}\n onRowSelectToggle={i => this.toggleSelectRow(i)}\n />\n \n
\n\n \n {Resources.Apply}\n \n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal,\n statementsStore: store.statements\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ApplyPaymentFlyout));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport moment from \"moment\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as statDP } from \"../../../store/statements-actions\";\n\nimport { isEmpty, find, includes, formatDate } from \"../../../lib/utils\";\nimport Resources from \"../../../lib/resources\";\nimport ToggleSwitch from \"../../library/toggleSwitch\";\n\nimport Modal from \"react-modal\";\nimport TableData from \"../../library/tableData\";\nimport Checkbox from \"../../library/checkbox\";\nimport MainLoader from \"../../mainLoader\";\n\nimport IconClose from \"../../library/icons/iconClose\";\nimport IconAngleDown from \"../../library/icons/iconAngleDown\";\nimport IconAngleLeft from \"../../library/icons/iconAngleLeft\";\nimport IconStar from \"../../library/icons/iconStar\";\nimport IconEdit from \"../../library/icons/iconEdit\";\nimport IconTrash from \"../../library/icons/iconTrash\";\nimport IconPlusCircle from \"../../library/icons/iconPlusCircle\";\nimport RadioInput from \"../../library/radioInput\";\nimport TextInput from \"../../library/textInput\";\nimport { isInt } from \"../../../lib/validation\";\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...statDP(dispatch)\n});\n\nclass ManageAutoPayFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n automaticPaymentEnabled: true,\n emailNotification: true,\n portalMessageNotification: true,\n view: \"manageAutoPay\",\n\n selectedPaymentMethod: null,\n selectedAutoPayOption: \"\",\n payAllInvoicesOnDayOfMonth: null,\n\n showFlyout: true\n };\n\n this.saveAutoPaySettings = this.saveAutoPaySettings.bind(this);\n this.addNewPaymentMethod = this.addNewPaymentMethod.bind(this);\n this.hideFlyout = this.hideFlyout.bind(this);\n }\n\n componentDidMount() {\n const { withCompanyId, statementsStore } = this.props;\n\n let stateUpdate = {};\n\n const paymentInfo = statementsStore.paymentInfo[withCompanyId];\n const autoPayConfig = paymentInfo.automaticPaymentConfiguration || {};\n\n let autoPayMethod;\n autoPayMethod = find(\n paymentInfo.paymentMethods,\n pMethod => pMethod.paymentMethodId.toString() === (autoPayConfig.pmtMethodKey || \"\").toString()\n );\n if (isEmpty(autoPayMethod)) {\n autoPayMethod =\n find(paymentInfo.paymentMethods, pMethod => pMethod.isDefault === true) ||\n paymentInfo.paymentMethods[paymentInfo.paymentMethods.length - 1] ||\n {};\n }\n\n stateUpdate.selectedPaymentMethod = autoPayMethod;\n stateUpdate.automaticPaymentEnabled = autoPayConfig.automaticPaymentEnabled;\n stateUpdate.emailNotification = autoPayConfig.emailNotification;\n stateUpdate.portalMessageNotification = autoPayConfig.portalMessageNotification;\n stateUpdate.payAllInvoicesOnDayOfMonth = autoPayConfig.payAllInvoicesOnDayOfMonth;\n\n if (!isEmpty(autoPayConfig.payAllInvoicesOnDayOfMonth) && autoPayConfig.payAllInvoicesOnDayOfMonth !== 0) {\n stateUpdate.selectedAutoPayOption = \"customDaysBefore\";\n } else {\n stateUpdate.selectedAutoPayOption = \"dueDate\";\n }\n\n this.setState(stateUpdate);\n }\n\n hideFlyout() {\n this.setState({ showFlyout: false });\n }\n\n confirmAutoPayCallback(passedPmtMethodKey) {\n const { withCompanyId, statementsStore } = this.props;\n const paymentInfo = statementsStore.paymentInfo[withCompanyId];\n const autoPayConfig = paymentInfo.automaticPaymentConfiguration || {};\n autoPayConfig.automaticPaymentConfiguration = null;\n autoPayConfig.automaticPaymentEnabled = false;\n\n this.props.deletePaymentMethod(this.props.companyId, this.props.withCompanyId, passedPmtMethodKey);\n this.props.hideModal();\n }\n\n checkForAutoPayRecord(passedPmtMethodKey) {\n const { withCompanyId, statementsStore } = this.props;\n const paymentInfo = statementsStore.paymentInfo[withCompanyId];\n const autoPayConfig = paymentInfo.automaticPaymentConfiguration || {};\n\n let autoPayMethod;\n autoPayMethod = find(\n paymentInfo.paymentMethods,\n pMethod => pMethod.paymentMethodId.toString() === (autoPayConfig.pmtMethodKey || \"\").toString()\n );\n if (!isEmpty(autoPayMethod) && autoPayMethod.paymentMethodId === passedPmtMethodKey) {\n this.props.displayModal(\"confirmModal\", {\n confirmMessage: Resources.DeleteAutoPayMethodConfirm,\n onConfirm: () => this.confirmAutoPayCallback(passedPmtMethodKey)\n });\n } else {\n this.props.deletePaymentMethod(this.props.companyId, this.props.withCompanyId, passedPmtMethodKey);\n }\n }\n\n saveAutoPaySettings() {\n let { companyId, withCompanyId } = this.props;\n\n let config = {\n automaticPaymentEnabled: this.state.automaticPaymentEnabled,\n pmtMethodKey: this.state.selectedPaymentMethod.paymentMethodId,\n emailNotification: this.state.emailNotification,\n portalMessageNotification: this.state.portalMessageNotification\n };\n\n if (isEmpty(this.state.selectedPaymentMethod)) {\n let dialogMessage = Resources.MissingPaymentMethod;\n this.props.displayModal(\"missingPaymentMethodModal\", { dialogMessage }); \n return;\n }\n\n if (this.props.flags.setAutoPayDate) {\n config.payAllInvoicesOnDayOfMonth =\n this.state.selectedAutoPayOption === \"customDaysBefore\" ? this.state.payAllInvoicesOnDayOfMonth : 0;\n }\n\n this.props\n .postAutoPayConfig(companyId, withCompanyId, config)\n .then(response => {\n return this.props.fetchPaymentInfo(companyId, withCompanyId);\n })\n .then(response => {\n this.hideFlyout();\n })\n .catch(() => null);\n }\n\n addNewPaymentMethod() {\n const { companyId, withCompanyId } = this.props;\n this.setState({ view: \"addPaymentMethod\" });\n\n this.props\n .addOrUpdatePaymentMethod(companyId, withCompanyId, { name: \"\", isDefault: false })\n .then(res => {\n this.setState({ iframeUrl: res.redirectUrl });\n })\n .catch(err => null);\n }\n\n renderPayFrom() {\n let { withCompanyId, statementsStore } = this.props;\n const paymentInfo = statementsStore.paymentInfo[withCompanyId] || {};\n\n return (\n
\n
{Resources.PayFrom}
\n
\n \n {!isEmpty(this.state.selectedPaymentMethod) ? (\n \n {isEmpty(this.state.selectedPaymentMethod.name)\n ? `${\n this.state.selectedPaymentMethod.paymentType === \"ACH\"\n ? Resources.BankAccount\n : Resources.CreditCard\n } ...${this.state.selectedPaymentMethod.lastFourDigits}`\n : this.state.selectedPaymentMethod.name}\n \n ) : (\n \n )}\n \n \n \n {(paymentInfo.paymentMethods || []).map((pMethod, i) => (\n {\n this.setState({ selectedPaymentMethod: pMethod });\n }}\n >\n {isEmpty(pMethod.name)\n ? `${pMethod.paymentType === \"ACH\" ? Resources.BankAccount : Resources.CreditCard} ...${\n pMethod.lastFourDigits\n }`\n : pMethod.name}\n \n ))}\n \n {Resources.AddNewPaymentMethod}\n \n \n
\n
\n );\n }\n\n renderAddOrEditMethodContent() {\n if (isEmpty(this.state.iframeUrl)) {\n return (\n
\n \n
\n );\n }\n\n const hostname = window.location.hostname;\n\n return (\n {\n const iframe = document.getElementById(\"newPaymentIframe\");\n try {\n if (includes(iframe.contentWindow.location.href, hostname)) {\n this.props.displayNotification(\"addingPaymentMethodNotification\");\n this.setState({ view: \"main\", iframeUrl: null });\n this.props.fetchPaymentInfo(this.props.companyId, this.props.withCompanyId).then(res => {\n const paymentInfo = this.props.statementsStore.paymentInfo[this.props.withCompanyId].paymentMethods;\n if (paymentInfo.length > 0) {\n this.setState({\n selectedPaymentMethod: paymentInfo[paymentInfo.length - 1]\n });\n }\n });\n }\n } catch {\n return;\n }\n }}\n >\n );\n }\n\n renderManagePaymentMethodsContent() {\n const paymentMethods = (this.props.statementsStore.paymentInfo[this.props.withCompanyId] || {}).paymentMethods;\n const columns = [\n {\n header: Resources.PaymentMethod,\n content: row => (\n \n {`${row.paymentType === \"ACH\" ? Resources.BankAccount : Resources.CreditCard} ...${\n row.lastFourDigits\n }${row.name ? ` (${row.name})` : \"\"}`}\n {moment(row.expirationDate, \"MM/YY\").isBefore() && (\n {Resources.Expired.toLocaleUpperCase()}\n )}\n \n ),\n width: \"35%\"\n },\n {\n header: Resources.DateAdded,\n content: row => formatDate(new Date(), false, false),\n width: \"18%\"\n },\n {\n header: Resources.Type,\n content: row => (row.paymentType === \"ACH\" ? Resources.ACH : Resources.CreditCard),\n width: \"18%\"\n },\n {\n width: \"30%\",\n content: row => (\n
\n \n this.props\n .addOrUpdatePaymentMethod(this.props.companyId, this.props.withCompanyId, {\n paymentMethodId: row.paymentMethodId,\n isDefault: true\n })\n .then(res => {\n this.props.fetchPaymentInfo(this.props.companyId, this.props.withCompanyId);\n })\n .catch(err => {\n console.log(\"Making default payment method error\");\n })\n }\n >\n \n \n {\n this.setState({ view: \"editPaymentMethod\" });\n this.props\n .addOrUpdatePaymentMethod(this.props.companyId, this.props.withCompanyId, {\n paymentMethodId: row.paymentMethodId\n })\n .then(res => {\n this.setState({ iframeUrl: res.redirectUrl });\n })\n .catch(err => null);\n }}\n >\n \n \n this.checkForAutoPayRecord(row.paymentMethodId)}\n >\n \n \n
\n )\n }\n ];\n\n const tableHeight = paymentMethods.length > 6 ? \"28rem\" : `${4 * paymentMethods.length + 2}rem`;\n return (\n
\n \n \n {Resources.AddNewPaymentMethod}\n \n\n {!isEmpty(paymentMethods) && (\n \n )}\n this.setState({ view: \"main\" })}\n >\n {Resources.Done}\n \n
\n );\n }\n\n render() {\n let header;\n let content;\n const goBackButton = (\n this.setState({ view: \"manageAutoPay\" })}\n >\n \n \n );\n\n switch (this.state.view) {\n case \"managePaymentMethods\":\n header = (\n
\n {goBackButton}\n {Resources.ManagePaymentMethods}\n
\n );\n content = this.renderManagePaymentMethodsContent();\n break;\n case \"addPaymentMethod\":\n header = (\n
\n {goBackButton}\n {Resources.AddNewPaymentMethod}\n
\n );\n content = this.renderAddOrEditMethodContent();\n break;\n case \"editPaymentMethod\":\n header = (\n
\n {goBackButton}\n {Resources.EditPaymentMethod}\n
\n );\n content = this.renderAddOrEditMethodContent();\n break;\n case \"manageAutoPay\":\n default:\n header =
{Resources.ManageAutomaticPayments}
;\n if (this.props.statementsStore.postingAutoPayConfig || this.props.statementsStore.isFetchingPaymentInfo) {\n content = ;\n } else {\n content = (\n \n
\n

{Resources.AutomaticPayments}

\n this.setState({ automaticPaymentEnabled: !this.state.automaticPaymentEnabled })}\n />\n
\n {this.renderPayFrom()}\n {this.props.flags.setAutoPayDate && (\n \n

{Resources.SelectAnAutoPayOption}

\n \n {Resources.PayTheTotalOpenBalanceOnThe}\n {\n if (isInt(e.target.value) && e.target.value <= 28 && e.target.value >= 0) {\n this.setState({ payAllInvoicesOnDayOfMonth: e.target.value });\n }\n }}\n centerText\n inline\n width=\"3rem\"\n className=\"px-2\"\n />\n {Resources.DayOfEveryMonth.toLocaleLowerCase()}\n \n ),\n value: \"customDaysBefore\"\n }\n ]}\n radioName=\"testing\"\n className=\"manage-auto-pay-flyout__pay-on-radio\"\n value={this.state.selectedAutoPayOption}\n onChange={item => {\n this.setState({\n selectedAutoPayOption: item.value\n });\n }}\n />\n
\n )}\n

{Resources.WhenPaymentIsMadeHowWouldYouLikeToBeNotified}

\n this.setState({ portalMessageNotification: !this.state.portalMessageNotification })}\n style={{ marginBottom: \"0.66rem\" }}\n />\n
\n this.setState({ emailNotification: !this.state.emailNotification })}\n style={{ marginBottom: \"2.66rem\" }}\n />\n

\n {Resources.WeWillPayAllOpenInvoicesOnTheirGivenDueDateUsingThePaymentMethodSelectedAbove}\n

\n \n {Resources.Save}\n \n
\n );\n }\n\n break;\n }\n\n return (\n \n
\n {header}\n
\n \n
\n
\n
\n {content}\n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal,\n statementsStore: store.statements\n };\n};\n\nexport default withLDConsumer()(withRouter(connect(storeToProps, dispatchToProps)(ManageAutoPayFlyout)));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport Icons from \"../../../lib/icons\";\nimport Resources from \"../../../lib/resources\";\nimport IconClose from \"../../library/icons/iconClose\";\nimport TableData from \"../../library/tableData\";\n\nimport { formatDate, formatCurrency, isEmpty, getCurrencySymbol } from \"../../../lib/utils\";\n\nimport Modal from \"react-modal\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch)\n});\n\nclass PaymentsFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n showFlyout: true\n };\n\n this.hideFlyout = this.hideFlyout.bind(this);\n }\n\n hideFlyout() {\n this.setState({ showFlyout: false });\n }\n\n render() {\n const transactionDateCol = {\n header: Resources.TransactionDate.toLocaleUpperCase(),\n content: row => (\n \n {formatDate(row.processedDate, row.paymentName.toLowerCase() !== \"pending payment\", false)}\n \n )\n };\n\n const transactionIdCol = {\n header: Resources.TransactionId.toLocaleUpperCase(),\n content: row => {\n let hasAttachment = !isEmpty(row.attachments);\n return (\n
\n
{row.id}
\n {hasAttachment && }\n
\n );\n }\n };\n\n const amountCol = {\n header: Resources.PaymentAmt.toLocaleUpperCase(),\n content: row => (\n
\n {getCurrencySymbol(row.currencyId)}\n {formatCurrency(row.amount, \"\")}\n
\n )\n };\n\n const transactionTypeCol = {\n header: Resources.TransactionType.toLocaleUpperCase(),\n content: row => (\n {row.paymentName.toLowerCase() === \"pending payment\" ? Resources.PendingPayment : row.paymentType}\n )\n };\n const invoicesCol = {\n header: Resources.Invoices.toLocaleUpperCase(),\n content: row => {\n let invoicesApplicationContent;\n if (row.invoiceIds.length === 1) {\n invoicesApplicationContent = Resources.OneApplication;\n } else {\n invoicesApplicationContent = Resources.NApplications(row.invoiceIds.length);\n }\n return {invoicesApplicationContent};\n }\n };\n\n const unappliedAmountCol = {\n header: Resources.UnappliedAmt.toLocaleUpperCase(),\n content: row => (\n
\n {getCurrencySymbol(row.currencyId)}\n {formatCurrency(row.unappliedAmount, \"\")}\n
\n )\n };\n\n const columns = [\n transactionDateCol,\n transactionIdCol,\n amountCol,\n unappliedAmountCol,\n invoicesCol,\n transactionTypeCol\n ];\n\n const { invoice = {} } = this.props;\n\n return (\n \n
\n
{Resources.TransactionsAppliedToInvoice(invoice.id)}
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(PaymentsFlyout));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport Resources from \"../../../lib/resources\";\nimport IconClose from \"../../library/icons/iconClose\";\nimport IconAttachment from \"../../library/icons/iconAttachment\";\nimport TableData from \"../../library/tableData\";\n\nimport { formatDate, formatCurrency, isEmpty, openUrlForDownload, find, getCurrencySymbol } from \"../../../lib/utils\";\n\nimport Modal from \"react-modal\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as ledgDP } from \"../../../store/ledger-actions\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...ledgDP(dispatch)\n});\n\nclass InvoicesFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n showFlyout: true\n };\n\n this.hideFlyout = this.hideFlyout.bind(this);\n }\n\n hideFlyout() {\n this.setState({ showFlyout: false });\n }\n\n downloadAttachments(attachments, fileName) {\n if (attachments.length === 1) {\n openUrlForDownload(attachments[0].downloadUrl);\n } else if (attachments.length > 1) {\n this.props.displayNotification(\"downloadNotification\");\n this.props.fetchAttachmentsZip(\n attachments.map(attachment => attachment.attachmentId),\n fileName\n );\n }\n }\n\n render() {\n const invoiceDateCol = {\n header: Resources.InvoiceDate.toLocaleUpperCase(),\n content: row => {formatDate(row.issueDate, true, false)}\n };\n\n const invoiceNumCol = {\n header: Resources.InvoiceNumber.toLocaleUpperCase(),\n content: row => {\n let hasAttachment = true || !isEmpty(row.attachments);\n\n return (\n
\n
\n {hasAttachment ? (\n \n {\n this.downloadAttachments(row.attachments, Resources.InvoiceNAttachments(row.id) + \".zip\");\n }}\n >\n \n {row.id}\n \n \n \n \n ) : (\n \n {row.id}\n \n )}\n
\n {(row.isDisputed || row.hasPromissoryNote) && (\n
\n {row.isDisputed && (\n
\n this.displayRelatedConversation(row.activeDispute)}\n style={{ marginBottom: row.hasPromissoryNote ? \"0.4rem\" : \"\" }}\n >\n {Resources.Disputed}\n \n
\n )}\n {row.hasPromissoryNote && (\n
\n \n this.displayRelatedConversation(\n find(row.payments, payment => payment.paymentType === \"Promise to Pay\")\n )\n }\n >\n {Resources.Promised}\n \n
\n )}\n
\n )}\n
\n );\n }\n };\n\n const amountPaidCol = {\n header: Resources.AmountPaid.toLocaleUpperCase(),\n content: row => (\n
\n {getCurrencySymbol(row.currencyId)}\n {formatCurrency(row.amountPaid, \"\")}\n
\n )\n };\n\n const datePaidCol = {\n header: Resources.DatePaid.toLocaleUpperCase(),\n content: row => {!isEmpty(row.paidDate) ? formatDate(row.paidDate, true, false) : \"\"}\n };\n\n let columns = [invoiceDateCol, invoiceNumCol, amountPaidCol, datePaidCol];\n\n const { payment = {} } = this.props;\n\n return (\n \n
\n
{Resources.InvoicesAppliedToPayment(payment.id)}
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal,\n ledgerStore: store.ledger\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(InvoicesFlyout));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport AutoCompleteInput from \"../../library/autoCompleteInput\";\nimport { updateSelectedRows, find, formatDate, isEmpty } from \"../../../lib/utils\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as ledgDP } from \"../../../store/ledger-actions\";\nimport { dispatchToProps as statDP } from \"../../../store/statements-actions\";\nimport { dispatchToProps as manDP } from \"../../../store/manage-actions\";\nimport { dispatchToProps as networkDP } from \"../../../store/network-actions\";\n\nimport Resources from \"../../../lib/resources\";\nimport IconClose from \"../../library/icons/iconClose\";\nimport TableData from \"../../library/tableData\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n// import IconFilter from \"../../library/icons/iconFilter\";\n\nimport Modal from \"react-modal\";\nimport RadioInput from \"../../library/radioInput\";\nimport { Card } from \"reactstrap\";\nimport MainLoader from \"../../mainLoader\";\nimport IconLeftArrow from \"../../library/icons/iconLeftArrow\";\nimport ContactsTable from \"../contactsTable\";\nimport Avatar from \"../../library/avatar\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...ledgDP(dispatch),\n ...statDP(dispatch),\n ...manDP(dispatch),\n ...networkDP(dispatch)\n});\n\nclass ProfileUpdateRequestFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n selectedAction: \"all\",\n tableView: \"ACCOUNTS\",\n nextPage: false,\n searchTerm: \"\",\n displayAccountSearchResults: false,\n\n contactSearchTerm: \"\",\n displayContactSearchResults: false,\n\n selectedAccountKeys: [],\n selectedAccountRows: [],\n\n selectedContactKeys: [],\n selectedContactRows: []\n };\n\n this.goToNextPage = this.goToNextPage.bind(this);\n this.goToPrevPage = this.goToPrevPage.bind(this);\n this.sendRequests = this.sendRequests.bind(this);\n this.switchTableView = this.switchTableView.bind(this);\n }\n\n handleSelect(input) {\n input.defaultChecked = true;\n }\n\n switchTableView(e) {\n if (this.state.tableView === \"ACCOUNTS\") {\n this.setState({ tableView: \"CONTACTS\" });\n } else {\n this.setState({ tableView: \"ACCOUNTS\" });\n }\n }\n\n componentDidMount() {\n let accountingGroupId = this.props.accountingGroupId;\n this.props.getCommunicationTemplates(this.props.companyId);\n this.props.fetchAccountList(accountingGroupId, this.props.pageRowCount, 0);\n this.props.fetchContactList(accountingGroupId, this.props.pageRowCount, 0);\n }\n\n goToNextPage() {\n this.setState({ nextPage: true });\n }\n\n goToPrevPage() {\n this.setState({ nextPage: false });\n }\n\n renderEmailTemplate() {\n if (this.props.manageStore.gettingCommunicationTemplates) {\n return (\n
\n \n
\n );\n } else {\n let template = this.props.manageStore.communicationTemplates.filter(\n i => i.emailTemplateID === \"ProfileUpdateRequest\"\n );\n return (\n
\n );\n }\n }\n\n sendRequests() {\n let { accountingGroupId } = this.props;\n\n let accountKeys = [];\n if (this.state.selectedAction === \"all\") {\n this.props.accountList.value.map(row => accountKeys.push(row.entityGlobalKey));\n } else {\n accountKeys = this.state.selectedAccountKeys;\n }\n let contactKeys = [];\n if (this.state.selectedAction === \"all\") {\n this.props.contactList.value.map(row => contactKeys.push(row.entityGlobalKey));\n } else {\n contactKeys = this.state.selectedContactKeys;\n }\n\n const sendRequestsFlyout = Promise.all([\n this.props.sendAccountProfileUpdateRequest(accountKeys),\n this.props.sendContactProfileUpdateRequest(contactKeys)\n ]);\n sendRequestsFlyout.then(responses => {\n this.props.fetchOpenProfileUpdateRequests(accountingGroupId);\n this.props.fetchOpenOnboardingRequests(accountingGroupId);\n this.props.fetchActivityList(accountingGroupId, {\n top: 100,\n skip: 0\n });\n });\n this.props.displayNotification(\"profileUpdateRequestSentNotification\");\n this.props.hideFlyout();\n }\n\n toggleSelectRowContacts(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedContactKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedContactRows);\n this.setState({ selectedContactKeys: newSelectedKeys, selectedContactRows: newSelectedRows });\n }\n\n toggleSelectRowAccounts(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedAccountKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedAccountRows);\n this.setState({ selectedAccountKeys: newSelectedKeys, selectedAccountRows: newSelectedRows });\n }\n\n render() {\n const {\n accountList,\n gettingNetworkAccountList,\n gotNetworkAccountSearchResults,\n contactList,\n gettingNetworkContactList,\n pageRowCount,\n modalStore,\n accountSearchResults,\n gettingNetworkAccountSearchResults,\n accountSearchTerm,\n gettingNetworkContactSearchResults,\n gotNetworkContactSearchResults,\n contactSearchTerm,\n contactSearchResults,\n networkStore,\n perspectiveId,\n selectedPerspectiveType\n } = this.props;\n let profileamount = contactList.totalCount + accountList.totalCount;\n\n let columns = [\n {\n type: \"rowSelect\",\n justify: \"center\",\n header: \"\",\n content: row => (\n \n ),\n width: \"5.2rem\"\n },\n {\n header: Resources.Name.toLocaleUpperCase(),\n content: row => row.displayName || row.custName || row.vendorName,\n width: \"27%\"\n },\n { header: Resources.EmailAddress.toLocaleUpperCase(), content: row => row.Email || row.emailAddr, width: \"25%\" },\n { header: Resources.PhoneNumber.toLocaleUpperCase(), content: row => row.phone, width: \"25%\" },\n {\n header: Resources.LastUpdated.toLocaleUpperCase(),\n content: row => formatDate(row.profileUpdateDate),\n width: \"15%\"\n }\n ];\n\n let links = [\n { subView: \"accounts\", display: Resources.Accounts.toLocaleUpperCase() },\n { subView: \"contacts\", display: Resources.Contacts.toLocaleUpperCase() }\n ];\n\n return (\n \n {(!isEmpty(accountList) || !isEmpty(contactList)) &&\n (this.props.networkStore.gotNetworkContactList || this.props.networkStore.gotNetworkAccountList) ? (\n \n
\n
\n {this.state.nextPage ? (\n \n ) : null}\n

{Resources.RequestProfileUpdate}

\n
\n
\n \n
\n
\n
\n {this.state.nextPage === true ? (\n
\n

\n {Resources.ProfileUpdateRequestFlyoutPreview(\n this.state.selectedAction === \"all\"\n ? profileamount\n : this.state.selectedAccountRows.length + this.state.selectedContactRows.length\n )}\n

\n {this.renderEmailTemplate()}\n
\n \n
\n
\n ) : (\n
\n \n

{Resources.AboutSendRequests}

\n

{Resources.JustStartingOutMessage}

\n \n
\n {\n this.setState({\n selectedAction: item.value\n });\n }}\n />\n
\n {this.state.selectedAction === \"all\" ? (\n

{Resources.ProfileUpdateToAll(profileamount)}

\n ) : (\n
\n

{Resources.ProfileUpdateToSome}

\n {links && (\n
\n {links.map(link => (\n \n {link.display}\n \n ))}\n
\n )}\n
\n\n \n
\n {this.state.tableView === \"ACCOUNTS\" ? (\n {\n const searchTerm = e.target.value;\n this.setState({ searchTerm });\n this.props.debouncedFetchAccountSearchResults(this.props.accountingGroupId, {\n searchTerm\n });\n }}\n callToActionButton={\n this.setState({ displayAccountSearchResults: true })}\n >\n {Resources.SeeAllResultsFor(accountSearchTerm)}\n
\n }\n isShowingSearchResult={this.state.displayAccountSearchResults}\n handleClearResult={() => {\n this.setState({ searchTerm: \"\", displayAccountSearchResults: false });\n }}\n text={this.state.searchTerm}\n noResultsMessage={Resources.NoResultsFound}\n showNoResultsMessage={gotNetworkAccountSearchResults}\n maxOptions={7}\n handleSelectOption={option => {\n this.setState({\n searchTerm:\n selectedPerspectiveType === \"vendors\" ? option.custName : option.vendorName,\n displayAccountSearchResults: true\n });\n this.props.fetchAccountSearchResults(this.props.accountingGroupId, {\n searchTerm:\n selectedPerspectiveType === \"customers\" ? option.custName : option.vendorName\n });\n }}\n renderOption={option =>\n `${\n selectedPerspectiveType === \"vendors\"\n ? option.displayName || option.custName\n : option.displayName || option.vendorName\n }`\n }\n options={accountSearchResults.value}\n width=\"300px\"\n />\n ) : (\n {\n const contactsSearchTerm = e.target.value;\n this.setState({ contactsSearchTerm });\n this.props.debouncedFetchContactSearchResults(this.props.accountingGroupId, {\n searchTerm: contactsSearchTerm\n });\n }}\n callToActionButton={\n this.setState({ displayContactSearchResults: true })}\n >\n {Resources.SeeAllResultsFor(contactSearchTerm)}\n
\n }\n isShowingSearchResult={this.state.displayContactSearchResults}\n handleClearResult={() => {\n this.setState({ contactsSearchTerm: \"\", displayContactSearchResults: false });\n }}\n text={this.state.contactsSearchTerm}\n noResultsMessage={Resources.NoResultsFound}\n showNoResultsMessage={gotNetworkContactSearchResults}\n maxOptions={7}\n handleSelectOption={option => {\n this.setState({\n contactsSearchTerm: option.contactName,\n displayContactSearchResults: true\n });\n this.props.fetchContactSearchResults(this.props.accountingGroupId, {\n searchTerm: option.contactName\n });\n }}\n renderOption={option => `${option.contactName}`}\n options={contactSearchResults.value}\n width=\"300px\"\n />\n )}\n
{/* */}
\n
\n
\n {this.state.tableView === \"ACCOUNTS\" ? (\n {\n // this.props.history.push(match.url + \"/\" + row.entityGlobalKey);\n // }}\n onLoadMore={pageToLoad =>\n this.state.displayAccountSearchResults\n ? this.props.fetchAccountSearchResults(this.props.accountingGroupId, {\n searchTerm: this.state.searchTerm,\n skip: (pageToLoad - 1) * pageRowCount\n })\n : this.props.fetchAccountList(\n this.props.accountingGroupId,\n pageRowCount,\n (pageToLoad - 1) * pageRowCount\n )\n }\n localSelectedKeys={this.state.selectedAccountKeys}\n rowKey=\"entityGlobalKey\"\n onRowSelectToggle={key =>\n this.toggleSelectRowAccounts(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k =>\n find(accountList.value, row => row.entityGlobalKey === k)\n )\n )\n }\n rowHeight={\"5rem\"}\n />\n ) : (\n \n this.state.displayAccountSearchResults\n ? this.props.fetchContactSearchResults(this.props.accountingGroupId, {\n searchTerm: this.state.contactsSearchTerm,\n skip: (pageToLoad - 1) * pageRowCount\n })\n : this.props.selectContactListPage(perspectiveId, pageToLoad)\n }\n selectedKeys={this.state.selectedContactKeys}\n rowKey=\"entityGlobalKey\"\n onRowSelectToggle={key =>\n this.toggleSelectRowContacts(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k =>\n find(contactList.value, row => row.entityGlobalKey === k)\n )\n )\n }\n />\n )}\n
\n \n
\n )}\n
\n \n
\n
\n )}\n \n \n ) : (\n \n )}\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal,\n manageStore: store.manage,\n contactList: store.network.contactList,\n accountList: store.network.accountList,\n pageRowCount: store.general.pageRowCount,\n networkStore: store.network,\n accountSearchResults: store.network.accountSearchResults,\n gotNetworkAccountSearchResults: store.network.gotNetworkAccountSearchResults,\n gettingNetworkAccountList: store.network.gettingNetworkAccountList,\n gettingNetworkContactList: store.network.gettingNetworkContactList,\n gettingNetworkAccountSearchResults: store.network.gettingNetworkAccountSearchResults,\n accountSearchTerm: store.network.accountSearchTerm,\n gettingNetworkContactSearchResults: store.network.gettingNetworkContactSearchResults,\n gotNetworkContactSearchResults: store.network.gotNetworkContactSearchResults,\n contactSearchTerm: store.network.contactSearchTerm,\n contactSearchResults: store.network.contactSearchResults,\n selectedPerspectiveType: store.perspectives.selectedPerspectiveType\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ProfileUpdateRequestFlyout));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport Modal from \"react-modal\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as ledgDP } from \"../../../store/ledger-actions\";\nimport { dispatchToProps as statDP } from \"../../../store/statements-actions\";\nimport { dispatchToProps as manDP } from \"../../../store/manage-actions\";\nimport { dispatchToProps as networkDP } from \"../../../store/network-actions\";\nimport { dispatchToProps as caDP } from \"../../../store/company-actions\";\n\nimport { isEmpty } from \"../../../lib/utils\";\n\nimport Resources from \"../../../lib/resources\";\nimport IconClose from \"../../library/icons/iconClose\";\nimport MainLoader from \"../../mainLoader\";\n\nimport TextInput from \"../../library/textInput\";\nimport HtmlEditor from \"../../htmlEditor\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...ledgDP(dispatch),\n ...statDP(dispatch),\n ...caDP(dispatch),\n ...manDP(dispatch),\n ...networkDP(dispatch)\n});\n\nclass ShareFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n subject: \"\",\n to: \"\",\n htmlBody: \"\",\n showFlyout: true\n };\n }\n\n handleSelect = (input) => {\n input.defaultChecked = true;\n }\n\n hideFlyout = () => {\n this.setState({ showFlyout: false });\n }\n\n sendMessage = () => {\n const companyInfo = this.props.getCompanyInfo(this.props.companyId);\n const cAddress = (((companyInfo || {}).connectorEmail || {}).synthetic || {})[this.props.perspectiveId];\n const companyEmail = isEmpty(cAddress) ? undefined : { name: companyInfo.companyName, address: cAddress };\n\n // For some reason an extra paragraph tag with a line break tag inside it is being added to the HTML editor when it's populated with content\n // from the sharing API response. Since it causes unnecessary blank lines in messages, we simply remove that combination of markup. If we ever\n // upgrade the version of react-quill we are using, this logic may need to change.\n let request = {\n from: [{ address: companyEmail.address, name: this.props.myProfile.contactName }],\n to: [{ address: this.state.to, name: \"\" }],\n cc: [],\n bcc: [],\n subject: this.state.subject,\n textBody: \"\",\n htmlBody: this.state.htmlBody.replace(/


<\\/p>/g, \"\")\n };\n\n this.props.displayNotification(\"sendingMessageNotification\");\n\n this.props.sendShareFlyout(this.props.perspectiveId, this.props.companyId, request).finally(() => {\n this.hideFlyout();\n });\n }\n\n componentDidMount = () => {\n let mode = this.props.mode === \"1\" ? \"ap\" : \"ar\";\n\n this.props.getShareFlyoutMessage(mode, this.props.entityGlobalKey).then(response => {\n this.setState({ subject: response.subject });\n this.setState({ htmlBody: response.htmlBody });\n });\n\n this.props.getCompanyInfo(this.props.companyId);\n }\n\n render() {\n const disableSend = isEmpty(this.state.to);\n\n return (\n \n {this.props.networkStore.gettingShareFlyoutMessage ? (\n \n ) : (\n \n

\n

{Resources.SendAMessage}

\n
\n \n
\n
\n
\n {\n let value = e.target.value;\n this.setState({ to: value });\n }}\n />\n {\n let value = e.target.value;\n this.setState({ subject: value });\n }}\n />\n this.setState({ focusedField: \"message\" })}\n hideToolbar={true}\n htmlContent={this.state.htmlBody}\n defaultHtmlContent={this.state.htmlBody}\n updateHtmlContent={htmlBody => this.setState({ htmlBody })}\n updateTextContent={textBody => this.setState({ textBody })}\n />\n this.sendMessage()}\n disabled={disableSend}\n className=\"portal-button-green\"\n >\n {Resources.Send}\n \n
\n \n )}\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal,\n manageStore: store.manage,\n contactList: store.network.contactList,\n accountList: store.network.accountList,\n pageRowCount: store.general.pageRowCount,\n networkStore: store.network,\n searchResults: store.network.searchResults,\n isShowingSearchResult: store.gotNetworkAccountSearchResults,\n gettingNetworkAccountList: store.network.gettingNetworkAccountList,\n gettingNetworkContactList: store.network.gettingNetworkContactList\n };\n};\n\nexport default withRouter(\n connect(\n storeToProps,\n dispatchToProps\n )(ShareFlyout)\n);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as networkDP } from \"../../../store/network-actions\";\n\nimport Resources from \"../../../lib/resources\";\nimport IconClose from \"../../library/icons/iconClose\";\nimport Conversation from \"../../activities/conversation\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport Modal from \"react-modal\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...networkDP(dispatch)\n});\n\nclass NewActivityFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n showFlyout: true\n };\n\n this.hideFlyout = this.hideFlyout.bind(this);\n }\n\n hideFlyout() {\n this.setState({ showFlyout: false });\n }\n\n render() {\n const { sendToAccountId, sendToContactId } = this.props;\n\n return (\n \n \n
\n

{Resources.SendAMessage}

\n
\n \n
\n
\n
\n this.hideFlyout()}\n onClosed={() => this.hideFlyout()}\n />\n
\n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {};\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(NewActivityFlyout));\n","import React, { Component } from \"react\";\n\nclass IconPhone extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n );\n }\n}\n\nIconPhone.defaultProps = {\n height: 24\n};\n\nexport default IconPhone;\n","import React, { Component } from \"react\";\n\nclass IconMapPin extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n );\n }\n}\n\nIconMapPin.defaultProps = {\n height: 24\n};\n\nexport default IconMapPin;\n","import React, { Component } from \"react\";\n\nclass IconLinkedIn extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n );\n }\n}\n\nIconLinkedIn.defaultProps = {\n height: 24\n};\n\nexport default IconLinkedIn;\n","import React, { Component } from \"react\";\n\nclass IconClipboard extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n );\n }\n}\n\nIconClipboard.defaultProps = {\n height: 24\n};\n\nexport default IconClipboard;\n","import React, { Component } from \"react\";\n\nclass IconMail extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n );\n }\n}\n\nIconMail.defaultProps = {\n height: 24\n};\n\nexport default IconMail;\n","import React, { Component } from \"react\";\n\nclass IconShare extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n \n \n );\n }\n}\n\nIconShare.defaultProps = {\n height: 22\n};\n\nexport default IconShare;\n","import { Component } from \"react\";\nimport { generatePath, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport React from \"react\";\nimport Card from \"../../../library/card\";\nimport IconUpload from \"../../../library/icons/iconUpload\";\nimport UserAvatar from \"../../../library/userAvatar\";\nimport AutoCompleteInput from \"../../../library/autoCompleteInput\";\n\n// import IconHelp from \"../../../library/icons/iconHelp\";\nimport IconInfo from \"../../../library/icons/iconHelp\";\n\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\nimport { dispatchToProps as moDP } from \"../../../../store/modal-actions\";\nimport { dispatchToProps as persDP } from \"../../../../store/perspectives-actions\";\n\nimport MainLoader from \"../../../mainLoader\";\nimport Dropdown from \"../../../library/dropdown\";\nimport SelectInput from \"../../../library/selectInput\";\nimport Resources from \"../../../../lib/resources\";\nimport TextInput from \"../../../library/textInput\";\nimport TextArea from \"../../../library/textAreaInput\";\nimport Avatar from \"../../../library/avatar\";\nimport moment from \"moment\";\nimport { isEmail, isLongerThan } from \"../../../../lib/validation\";\nimport { find } from \"../../../../lib/utils\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch),\n ...moDP(dispatch),\n ...persDP(dispatch)\n});\n\nclass ContactUpdateForm extends Component {\n constructor(props) {\n super(props);\n this.state = {\n custContact: {},\n dropdownActive: false,\n updatedPicture: false,\n searchTerm: this.props.selectedCompany\n };\n this.submitForm = this.submitForm.bind(this);\n this.uploadFile = this.uploadFile.bind(this);\n }\n\n componentDidMount() {\n if (this.props.small || this.props.empty) {\n } else {\n let accessId = this.props.match.params.accessId;\n this.props.fetchCustContact(accessId);\n }\n }\n\n uploadFile() {\n window.document.getElementById(\"uploadFile\").click();\n }\n\n checkForInvalidInputs(postRequest) {\n let value = isEmail(postRequest.emailAddr);\n return value;\n }\n\n submitForm() {\n let custContact = this.props.edit\n ? { ...this.props.networkStore.contactsMap[this.props.match.params.contactId], ...this.state.custContact }\n : { ...this.props.networkStore.custContact, ...this.state.custContact };\n let postRequest = {\n accountKey: custContact.accountKey,\n accountRole: custContact.accountRole,\n accountRoleId: custContact.accountRoleId,\n addrLn1: custContact.addrLn1,\n city: custContact.city,\n contactName: custContact.contactName,\n contactRole: custContact.contactRole,\n contactRoleId: custContact.contactRoleId,\n country: custContact.country,\n emailAddr: custContact.emailAddr,\n insertDate: custContact.insertDate,\n isLockstepVerified: true,\n linkedInProfile: custContact.linkedInProfile,\n lockstepContactKey: custContact.lockstepContactKey,\n phone: custContact.phone,\n fax: custContact.fax,\n phoneExt: custContact.phoneExt,\n postalcode: custContact.postalcode,\n profilePictureURL: !!this.props.networkStore.myProfilePicture\n ? this.props.networkStore.myProfilePicture\n : custContact.profilePictureURL,\n state: custContact.state,\n title: custContact.title,\n updateByuserId: custContact.updateByuserId,\n updateDate: moment().format(),\n notes: custContact.notes\n };\n let essentialForms = [\n { property: custContact.contactName, form: \"Name\" },\n { property: custContact.emailAddr, form: \"Email\" }\n ];\n let empty = essentialForms.filter(i => i.property === undefined || i.property === \"\");\n if (empty.length !== 0) {\n let formText = \"\";\n formText = empty.map(i => (formText = \" \" + i.form));\n let errorMessage =\n empty.length === 1\n ? Resources.PleaseEnsureFormFilledOut(formText)\n : Resources.PleaseEnsureFormsFilledOut(formText);\n this.props.displayModal(\"errorModal\", { errorMessage });\n } else {\n if (this.props.edit) {\n this.props\n .updateCustContact(\n this.props.match.params.perspectiveId,\n this.props.match.params.contactId,\n this.props.mode,\n postRequest\n )\n .then(response => {\n this.props.toggleEditMode();\n });\n } else if (this.props.small) {\n this.props.postMyProfile(postRequest).then(response => {\n this.props.toggleEditMode();\n this.props.fetchActivityList(this.props.perspectiveId, {\n top: 100,\n skip: 0\n });\n });\n } else {\n let accessId = this.props.match.params.accessId;\n this.props.postCustContact(accessId, postRequest).then(response => {\n this.props.history.push(\n generatePath(this.props.route, {\n accessId: this.props.match.params.accessId,\n view: this.props.view,\n type: \"success\",\n accountingGroupKey: this.props.match.params.accountingGroupKey,\n companyGlobalKey: this.props.match.params.companyGlobalKey,\n mode: this.props.match.params.mode\n })\n );\n });\n }\n }\n }\n\n handleDropdown() {\n this.setState({ dropdownActive: !this.state.dropdownActive });\n }\n\n render() {\n let custContact = this.props.edit\n ? { ...this.props.networkStore.contactsMap[this.props.match.params.contactId], ...this.state.custContact }\n : { ...this.props.networkStore.custContact, ...this.state.custContact };\n\n if (this.props.empty && this.props.signup) {\n custContact = this.props.currentContact;\n }\n\n let roles = [\n { value: 1, role: Resources.CFO },\n { value: 2, role: Resources.Controller },\n {\n value: 3,\n role:\n this.props.match.params.mode === \"ar\" || this.props.perspectivesStore.selectedPerspectiveType !== \"vendors\"\n ? Resources.AR + \" \" + Resources.Manager\n : Resources.AP + \" \" + Resources.Manager\n },\n {\n value: 4,\n role:\n this.props.match.params.mode === \"ar\" || this.props.perspectivesStore.selectedPerspectiveType !== \"vendors\"\n ? Resources.AR + \" \" + Resources.Specialist\n : Resources.AP + \" \" + Resources.Specialist\n },\n { value: 5, role: Resources.SalesRepresentitive },\n { value: 6, role: Resources.Other }\n ];\n\n let selectedPerspectiveType = this.props.mode === \"ap\" ? \"customers\" : \"vendors\";\n\n if (this.props.networkStore.gotCustContact || this.props.empty) {\n return (\n
\n
\n {this.props.small || this.props.empty ? null : (\n

{Resources.ProfileUpdateWelcome}

\n )}\n \n {/* {this.props.small ? null : (\n \n \n {Resources.HowIsMyDataUsed}\n \n }\n buttonClassName=\"button-secondary contact-form-dropdown\"\n >\n
Don't worry about it
\n \n )} */}\n
\n
\n {this.props.small || this.props.empty ? (\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"contactName\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, contactName: value } };\n });\n }}\n />\n
\n ) : (\n
\n
\n \n \n \n \n }\n buttonClassName=\"profile-update-invariant-button\"\n >\n
\n {Resources.IfYourVARIABLEIsDifferentContactUsAtEMAIL(\n \"email address\",\n \"NEED A FETCH FOR THIS EMAIL\"\n )}\n
\n \n
\n

{custContact.emailAddr}

\n
\n )}\n
\n
\n
\n {this.props.small || this.props.empty ? (\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"emailAddr\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, emailAddr: value } };\n });\n }}\n />\n ) : (\n {\n let value = e.target.value;\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, contactName: value } };\n });\n }}\n />\n )}\n
\n {this.props.add ? (\n
\n
\n \n {\n const searchTerm = e.target.value;\n this.setState({ searchTerm });\n this.props.debouncedFetchAccountSearchResults(this.props.perspectiveId, {\n searchTerm\n });\n }}\n callToActionButton={\n this.setState({ displayAccountSearchResults: true })}\n >\n {Resources.SeeAllResultsFor(this.props.networkStore.accountSearchTerm)}\n
\n }\n isShowingSearchResult={this.state.displayAccountSearchResults}\n handleClearResult={() => {\n this.setState({ searchTerm: \"\", displayAccountSearchResults: false });\n }}\n label={Resources.Company}\n text={this.state.searchTerm}\n noResultsMessage={Resources.NoResultsFound}\n showNoResultsMessage={this.props.networkStore.gotNetworkAccountSearchResults}\n maxOptions={7}\n handleSelectOption={option => {\n if (this.props.empty) {\n this.props.contactFormOnChange(\"companyKey\", option.entityGlobalKey);\n }\n this.setState({\n searchTerm: selectedPerspectiveType === \"vendors\" ? option.custName : option.vendorName,\n displayAccountSearchResults: true\n });\n this.props.fetchAccountSearchResults(this.props.perspectiveId, {\n searchTerm: selectedPerspectiveType === \"customers\" ? option.custName : option.vendorName\n });\n }}\n renderOption={option =>\n `${\n selectedPerspectiveType === \"vendors\"\n ? option.displayName || option.custName\n : option.displayName || option.vendorName\n }`\n }\n options={this.props.networkStore.accountSearchResults.value}\n width=\"300px\"\n />\n
\n
\n ) : null}\n
\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"phone\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, phone: value } };\n });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"fax\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, fax: value } };\n });\n }}\n />\n
\n
\n
\n
\n role.value === custContact.contactRoleId) === undefined\n ? null\n : custContact.contactRoleId\n }\n displayValue={(find(roles, role => role.value === custContact.contactRoleId) || {}).role}\n optionValueKey=\"value\"\n optionDisplayKey=\"role\"\n options={roles}\n labelInline={false}\n label={Resources.Role}\n width={\"23.2rem\"}\n onSelectOption={option => {\n let custContactUpdate = { ...custContact, contactRoleId: option.value };\n if (this.props.empty) {\n this.props.contactFormOnChange(\"contactRoleId\", option.value);\n }\n this.setState({ custContact: custContactUpdate });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"title\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, title: value } };\n });\n }}\n />\n
\n
\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"linkedInProfile\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, linkedInProfile: value } };\n });\n }}\n />\n
\n
\n
\n {this.props.add || this.props.empty ? null : (\n
\n

{Resources.ProfilePicture}

\n
\n
\n {!!custContact.profilePictureURL ? (\n \n ) : (\n \n )}\n
\n \n {\n let accessId = this.props.match.params.accessId;\n let lockstepcontactKey = custContact.LockstepContactKey;\n this.props.edit\n ? this.props.uploadDocument(custContact.entityGlobalKey, e.target.files[0]).then(response => {\n this.setState({\n custContact: { ...this.state.custContact, profilePictureURL: response }\n });\n })\n : this.props.small\n ? this.props.postMyProfilePicture(e.target.files[0])\n : this.props\n .postCustContactPicture(accessId, lockstepcontactKey, e.target.files[0])\n .then(response => {\n this.setState({\n custContact: { ...this.state.custContact, profilePictureURL: response }\n });\n });\n this.props.displayNotification(\"uploadingImageNotification\");\n this.setState({ updatedPicture: false });\n }}\n />\n
\n
\n )}\n {this.props.edit && this.props.add ?
: null}\n {this.props.small ? (\n
\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"addrLn1\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, addrLn1: value } };\n });\n }}\n />\n
\n
\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"country\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, country: value } };\n });\n }}\n />\n
\n
\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"city\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, city: value } };\n });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"state\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, state: value } };\n });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"postalcode\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, postalcode: value } };\n });\n }}\n />\n
\n
\n
\n ) : null}\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.contactFormOnChange(\"notes\", value);\n }\n this.setState(prevState => {\n return { custContact: { ...prevState.custContact, notes: value } };\n });\n }}\n >\n
\n {this.props.edit && !this.props.add ?
: null}\n {this.props.add ? (\n
\n \n \n
\n ) : this.props.small ? (\n \n \n {Resources.Cancel}\n \n \n {Resources.Save}\n \n
\n ) : null}\n \n {this.props.small || this.props.empty ? null : (\n
\n \n
\n )}\n \n \n );\n } else {\n return (\n
\n \n
\n );\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network,\n modalStore: store.modal,\n perspectivesStore: store.perspectives\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ContactUpdateForm));\n","import React, { Component } from \"react\";\n\nclass IconBriefcase extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n );\n }\n}\n\nIconBriefcase.defaultProps = {\n height: 24\n};\n\nexport default IconBriefcase;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport Resources from \"../../../../lib/resources\";\nimport { formatDate, isEmpty, copyToClipboard } from \"../../../../lib/utils\";\n\nimport Card from \"../../../library/card\";\nimport IconArchive from \"../../../library/icons/iconArchive\";\nimport IconPhone from \"../../../library/icons/iconPhone\";\nimport IconMapPin from \"../../../library/icons/iconMapPin\";\nimport IconLinkedIn from \"../../../library/icons/iconLinkedIn\";\nimport IconClipboard from \"../../../library/icons/iconClipboard\";\nimport IconMail from \"../../../library/icons/iconMail\";\nimport IconEdit from \"../../../library/icons/iconEdit\";\nimport IconShare from \"../../../library/icons/iconShare\";\nimport IconClose from \"../../../library/icons/iconClose\";\n\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\nimport { dispatchToProps as modDP } from \"../../../../store/modal-actions\";\nimport { dispatchToProps as accountDP } from \"../../../../store/accounts-actions\";\n\nimport ContactUpdateForm from \"../profileUpdate/contactUpdateForm\";\nimport MainLoader from \"../../../mainLoader\";\nimport Modal from \"react-modal\";\nimport Dropdown from \"../../../library/dropdown\";\n\nimport Avatar from \"../../../library/avatar\";\nimport IconCheckCircle from \"../../../library/icons/iconCheckCircle\";\nimport IconBriefcase from \"../../../library/icons/iconBriefcase\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch),\n ...modDP(dispatch),\n ...accountDP(dispatch)\n});\n\nclass MyProfileView extends Component {\n constructor(props) {\n super(props);\n this.state = {\n editMode: false,\n showFlyout: true\n };\n this.toggleEditMode = this.toggleEditMode.bind(this);\n this.hideFlyout = this.hideFlyout.bind(this);\n }\n\n componentDidMount() {\n this.props.fetchMyProfile();\n }\n\n toggleEditMode() {\n this.setState({ editMode: !this.state.editMode });\n if (!this.state.editMode) {\n this.props.fetchMyProfile();\n }\n }\n\n hideFlyout() {\n this.setState({ showFlyout: false });\n }\n\n render() {\n let selectedAccount = { ...this.props.networkStore.custContact, ...this.state.custContact };\n return (\n \n {this.props.networkStore.gettingCustContact ? (\n \n ) : (\n \n {/* */}\n
\n \n \n \n

{selectedAccount.contactName}

\n {selectedAccount.isLockstepVerified ? (\n
\n \n \n \n }\n >\n
{Resources.LockstepVerifiedInformation}
\n \n
\n ) : null}\n
this.hideFlyout()} className=\"flyout-heading-close\">\n \n
\n
\n\n {this.state.editMode ? (\n \n ) : (\n
\n
\n \n \n {Resources.ShareProfile}\n \n }\n buttonClassName=\"button-primary-large-dropdown\"\n >\n {\n this.props.displayFlyout(\"shareFlyout\", {\n myProfile: selectedAccount,\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n entityGlobalKey: selectedAccount.entityGlobalKey\n });\n }}\n >\n {Resources.SendInMessage}\n \n {\n this.props.fetchShareLink(\"ar\", selectedAccount.entityGlobalKey).then(response => {\n copyToClipboard(this.props.networkStore.shareLink);\n });\n this.props.displayNotification(\"copyToClipboardNotification\");\n }}\n >\n {Resources.CopyLink}\n \n \n \n
\n
\n
\n \n
\n {Resources.UpdatedDate(formatDate(selectedAccount.updateDate))}\n
\n
\n {!isEmpty(selectedAccount.title) && (\n
\n
\n \n
\n
\n {selectedAccount.title}, {this.props.accountsStore.selectedCompany.companyName}\n
\n
\n )}\n
\n
\n \n
\n
{selectedAccount.emailAddr}
\n
\n {!isEmpty(selectedAccount.phone) && (\n
\n
\n \n
\n
{selectedAccount.phone}
\n
\n )}\n {!isEmpty(selectedAccount.fax) && (\n
\n
\n \n
\n
{selectedAccount.fax}
\n
\n )}\n {!isEmpty(\n [\n selectedAccount.addrLn1,\n selectedAccount.city,\n selectedAccount.state,\n selectedAccount.postalcode,\n selectedAccount.country\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n
\n
{selectedAccount.addrLn1}
\n
\n {selectedAccount.city}, {selectedAccount.state} {selectedAccount.postalcode}\n
\n
{selectedAccount.country}
\n
\n
\n )}\n {!isEmpty(\n [\n selectedAccount.ShipToAddrLn1,\n selectedAccount.ShipToCity,\n selectedAccount.ShipToState,\n selectedAccount.ShipToPostalcode,\n selectedAccount.ShipToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n
\n
Ship-to
\n
{selectedAccount.ShipToAddrLn1}
\n
\n {selectedAccount.ShipToCity}, {selectedAccount.ShipToState}{\" \"}\n {selectedAccount.ShipToPostalcode}\n
\n
{selectedAccount.ShipToCountry}
\n
\n
\n )}\n {!isEmpty(selectedAccount.linkedInProfile) && (\n \n )}\n {!isEmpty(selectedAccount.notes) && (\n
\n
\n \n
\n
{selectedAccount.notes}
\n
\n )}\n
\n
\n
\n
\n
\n )}\n
\n )}\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network,\n modalStore: store.modal,\n accountsStore: store.accounts\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(MyProfileView));\n","import { Card } from \"reactstrap\";\nimport { generatePath, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport UserAvatar from \"../../../library/userAvatar\";\nimport Avatar from \"../../../library/avatar\";\nimport IconUpload from \"../../../library/icons/iconUpload\";\nimport React, { Component } from \"react\";\nimport IconInfo from \"../../../library/icons/iconInfo\";\nimport IconMail from \"../../../library/icons/iconMail\";\nimport IconPhone from \"../../../library/icons/iconPhone\";\nimport IconArchive from \"../../../library/icons/iconArchive\";\nimport IconMapPin from \"../../../library/icons/iconMapPin\";\nimport IconLinkedIn from \"../../../library/icons/iconLinkedIn\";\nimport IconClipboard from \"../../../library/icons/iconClipboard\";\nimport IconBriefcase from \"../../../library/icons/iconBriefcase\";\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\nimport { dispatchToProps as moDP } from \"../../../../store/modal-actions\";\nimport Dropdown from \"../../../library/dropdown\";\nimport Checkbox from \"../../../library/checkbox\";\nimport MainLoader from \"../../../mainLoader\";\nimport Resources from \"../../../../lib/resources\";\nimport TextInput from \"../../../library/textInput\";\nimport TextArea from \"../../../library/textAreaInput\";\nimport SelectInput from \"../../../library/selectInput\";\nimport moment from \"moment\";\nimport { find, isEmpty, formatDate } from \"../../../../lib/utils\";\nimport { BlockPicker } from \"react-color\";\nimport { isEmail, isLongerThan } from \"../../../../lib/validation\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...networkDP(dispatch)\n});\n\nclass ProfileUpdateForm extends Component {\n constructor(props) {\n super(props);\n this.state = {\n ...this.props.profileInfo,\n accountData: {},\n settings: {},\n sameAsBilling: false,\n dropdownActive: false,\n updatedPicture: false,\n activeColor: \"#1fb6c1\",\n editMode: true\n };\n this.submitForm = this.submitForm.bind(this);\n this.uploadFile = this.uploadFile.bind(this);\n }\n\n componentDidMount() {\n if (this.props.admin) {\n let accountingGroupKey = this.props.match.params.accountingGroupKey;\n let companyGlobalKey = this.props.match.params.companyGlobalKey;\n let mode = this.props.match.params.mode;\n this.props.fetchAccountingGroupProfile(accountingGroupKey, companyGlobalKey, mode);\n this.props.fetchAccountSettings(accountingGroupKey);\n } else if (this.props.small || this.props.edit) {\n //custContact is already loaded\n } else {\n let accessId = this.props.match.params.accessId;\n let mode = this.props.match.params.mode;\n if (!this.props.signup) {\n this.props.fetchCustAccount(accessId, mode).then(response => {\n this.setState({ editMode: !this.props.networkStore.custAccount.isLockstepVerified });\n });\n }\n }\n }\n\n handleDropdown() {\n this.setState({ dropdownActive: !this.state.dropdownActive });\n }\n\n checkForInvalidInputs(postRequest) {\n let value = isEmail(postRequest.emailAddr);\n return value;\n }\n\n submitForm() {\n let accountData = this.props.edit\n ? {\n ...(this.props.getAccountProfile(this.props.match.params.perspectiveId, this.props.match.params.accountId) ||\n {}),\n ...this.state.accountData\n }\n : {\n ...(this.props.networkStore.custAccount.companyAPDetails ||\n this.props.networkStore.custAccount.companyARDetails),\n ...this.state.accountData\n };\n let accountingGroupDetails = {\n ...(this.props.networkStore.custAccount.accountingGroupAPDetails ||\n this.props.networkStore.custAccount.accountingGroupARDetails),\n ...this.state.accountingGroupDetails\n };\n let accessId = this.props.match.params.accessId;\n let companyGlobalKey = this.props.edit\n ? this.props.match.params.accountId\n : this.props.match.params.companyGlobalKey;\n let accountingGroupKey = this.props.edit\n ? this.props.match.params.perspectiveId\n : this.props.match.params.accountingGroupKey;\n let mode = this.props.edit ? this.props.mode : this.props.match.params.mode;\n let companyDetailToggle =\n this.props.match.params.mode === \"ap\" || this.props.mode === \"ap\" ? \"companyAPDetails\" : \"companyARDetails\";\n\n let companyDetails = {\n accountProfileKey: accountData.accountProfileKey,\n accountKey: accountData.accountKey,\n aPProfileKey: accountData.ProfileKey,\n companyName: !this.props.edit\n ? this.props.networkStore.custAccount[companyDetailToggle].companyName\n : accountData.companyName,\n taxId: accountData.taxId,\n entityClassificationId: accountData.entityClassificationId,\n entityClassification: accountData.entityClassification,\n dateOfIncoporation: accountData.dateOfIncoporation,\n stateOfIncoporation: accountData.stateOfIncoporation,\n countryOfIncoporation: accountData.countryOfIncoporation,\n emailAddr: accountData.emailAddr,\n phone: accountData.phone,\n phoneExt: accountData.phoneExt,\n fax: accountData.fax,\n faxExt: accountData.faxExt,\n billToAddrLn1: accountData.billToAddrLn1,\n billToCity: accountData.billToCity,\n billToState: accountData.billToState,\n billToCountry: accountData.billToCountry,\n billToPostalcode: accountData.billToPostalcode,\n shipToAddrLn1: this.state.sameAsBilling ? accountData.billToAddrLn1 : accountData.shipToAddrLn1,\n shipToAddrLn2: accountData.shipToAddrLn2,\n shipToCity: this.state.sameAsBilling ? accountData.billToCity : accountData.shipToCity,\n shipToState: this.state.sameAsBilling ? accountData.billToState : accountData.shipToState,\n shipToCountry: this.state.sameAsBilling ? accountData.billToCountry : accountData.shipToCountry,\n shipToPostalcode: this.state.sameAsBilling ? accountData.billToPostalcode : accountData.shipToPostalcode,\n mailToAddrLn1: accountData.mailToAddrLn1,\n mailToCity: accountData.mailToCity,\n mailToCountry: accountData.mailToCountry,\n mailToPostalcode: accountData.mailToPostalcode,\n mailToState: accountData.mailToState,\n isLockstepVerified: true,\n notes: accountData.notes,\n linkedInProfile: accountData.linkedInProfile,\n logoURL: accountData.logoURL,\n profileUpdateDate: moment().format()\n };\n\n let accountingGroupToggle =\n this.props.match.params.mode === \"ap\" || this.props.mode === \"ap\"\n ? \"accountingGroupAPDetails\"\n : \"accountingGroupARDetails\";\n\n let postRequest = {\n [companyDetailToggle]: companyDetails,\n [accountingGroupToggle]: {\n emailAddr: this.props.edit ? accountData.emailAddr : accountingGroupDetails.emailAddr\n },\n isLockstepVerified: true\n };\n\n if (this.props.edit) {\n // let settings = { ...this.props.networkStore.custAccountSettings, ...this.state.settings };\n // let settingsRequest = {\n // accountingGroupKey: accountingGroupKey,\n // buttonColor: settings.buttonColor\n // };\n // this.props.postAccountSettings(accountingGroupKey, settingsRequest);\n if (!!postRequest[accountingGroupToggle].emailAddr) {\n this.props\n .updateAccountingGroupProfile(accountingGroupKey, companyGlobalKey, mode, postRequest)\n .then(response => {\n this.props.toggleEditMode();\n });\n } else {\n let errorMessage = Resources.EmailFieldIsEmpty;\n this.props.displayModal(\"errorModal\", { errorMessage });\n }\n } else {\n this.props.postCustAccount(accessId, mode, postRequest).then(response => {\n this.props.history.push(\n generatePath(\"/v2/profileupdate/:type(account)/:mode(ar|ap)/addcontact/:accessId\", {\n accessId: this.props.match.params.accessId,\n type: this.props.match.params.type,\n mode: this.props.match.params.mode\n })\n );\n });\n }\n }\n\n uploadFile() {\n window.document.getElementById(\"uploadFile\").click();\n }\n\n handleChangeComplete = color => {\n this.setState({ settings: { ...this.state.settings, buttonColor: color.hex } });\n };\n\n render() {\n let classifications = [\n { value: 1, classification: \"Corporation\" },\n { value: 2, classification: \"Partnership\" },\n { value: 3, classification: \"Sole-proprietor\" }\n ];\n let accountData = this.props.edit\n ? {\n ...(this.props.getAccountProfile(this.props.match.params.perspectiveId, this.props.match.params.accountId) ||\n {}),\n ...this.state.accountData\n }\n : {\n ...(this.props.networkStore.custAccount.companyAPDetails ||\n this.props.networkStore.custAccount.companyARDetails),\n ...this.state.accountData\n };\n let accountingGroupDetails = {\n ...(this.props.networkStore.custAccount.accountingGroupAPDetails ||\n this.props.networkStore.custAccount.accountingGroupARDetails),\n ...this.state.accountingGroupDetails\n };\n\n let settings = { ...this.props.networkStore.custAccountSettings, ...this.state.settings };\n\n if (this.props.networkStore.gettingCustAccount && !this.props.networkStore.postedCustAccount) {\n return ;\n } else {\n return this.state.editMode ? (\n \n {this.props.small || this.props.edit ? null : (\n

\n {this.props.networkStore.custAccount.isLockstepVerified\n ? Resources.ProfileUpdateThanks\n : Resources.ProfileUpdateWelcome}\n

\n )}\n \n {/* {this.props.small ? null : (\n \n \n {Resources.HowIsMyDataUsed}\n
\n }\n buttonClassName=\"button-secondary contact-form-dropdown\"\n >\n
Don't worry about it
\n \n )} */}\n
\n
\n
\n {this.props.edit || this.props.empty ? (\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"companyName\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, companyName: value } };\n });\n }}\n />\n ) : this.props.small ? (\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"emailAddr\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, emailAddr: value } };\n });\n }}\n />\n ) : (\n \n
\n \n \n \n \n }\n buttonClassName=\"profile-update-invariant-button\"\n >\n
\n {Resources.IfYourVARIABLEIsDifferentContactUsAtEMAIL(\n \"company name\",\n \"NEED A FETCH FOR THIS EMAIL\"\n )}\n
\n \n
\n

\n {this.props.small ? this.props.editedAccount.companyName : accountData.companyName}\n

\n
\n )}\n
\n {this.props.small && !this.props.empty ? null : (\n
\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"taxId\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, taxId: value } };\n });\n }}\n />\n
\n )}\n
\n
\n
\n {this.props.small && !this.props.empty ? (\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"taxId\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, taxId: value } };\n });\n }}\n />\n ) : (\n {\n let value = e.target.value;\n this.props.small && !this.props.edit\n ? this.props.formOnChange(\"emailAddr\", value)\n : this.props.edit\n ? this.setState(prevState => {\n return {\n accountData: { ...prevState.accountData, emailAddr: value }\n };\n })\n : this.setState(prevState => {\n return {\n accountingGroupDetails: { ...prevState.accountingGroupDetails, emailAddr: value }\n };\n });\n }}\n />\n )}\n
\n
\n classification.value === accountData.entityClassificationId\n ) === undefined\n ? null\n : accountData.entityClassificationId\n }\n displayValue={\n (\n find(\n classifications,\n classification =>\n classification.value ===\n (this.props.small\n ? this.props.editedAccount.entityClassificationId\n : accountData.entityClassificationId)\n ) || {}\n ).classification\n }\n optionValueKey=\"value\"\n optionDisplayKey=\"classification\"\n options={classifications}\n labelInline={false}\n label={Resources.EntityClassification}\n width={\"23.2rem\"}\n onSelectOption={option => {\n this.props.small\n ? this.props.formOnChange(\"entityClassificationId\", option.value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, entityClassificationId: option.value } };\n });\n }}\n />\n
\n
\n
\n
\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"phone\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, phone: value } };\n });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"fax\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, fax: value } };\n });\n }}\n />\n
\n
\n
\n
\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"linkedInProfile\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, linkedInProfile: value } };\n });\n }}\n />\n
\n
\n
\n {this.props.empty ? null : (\n
\n

{Resources.CompanyLogo}

\n
\n
\n {!!accountData.logoURL ? (\n \n ) : (\n \n )}\n
\n \n {\n let accessId = this.props.match.params.accessId;\n let mode = this.props.match.params.mode;\n let accountingGroupKey = this.props.match.params.accountingGroupKey;\n let companyGlobalKey = this.props.match.params.companyGlobalKey;\n if (this.props.admin) {\n this.props.uploadAccountingGroupDocument(\n accountingGroupKey,\n companyGlobalKey,\n mode,\n e.target.files[0]\n );\n this.props.displayNotification(\"uploadingImageNotification\");\n } else if (this.props.edit || this.props.empty) {\n this.props.uploadDocument(accountData.entityGlobalKey, e.target.files[0]).then(response => {\n this.setState({\n accountData: { ...this.state.accountData, logoURL: response }\n });\n });\n this.props.displayNotification(\"uploadingImageNotification\");\n } else if (this.props.small) {\n this.props\n .uploadAccountingGroupDocument(\n this.props.perspectiveId,\n this.props.companyId,\n this.props.mode,\n e.target.files[0]\n )\n .then(response => {\n this.setState({ accountData: { ...this.state.accountData, logoURL: response } });\n this.props.formOnChange(\"logoURL\", response);\n });\n this.props.displayNotification(\"uploadingImageNotification\");\n } else if (this.props.edit) {\n this.props\n .uploadAccountingGroupDocument(\n this.props.match.params.perspectiveId,\n this.props.match.params.accountId,\n this.props.mode,\n e.target.files[0]\n )\n .then(response => {\n this.setState({ accountData: { ...this.state.accountData, logoURL: response } });\n this.props.formOnChange(\"logoURL\", response);\n });\n this.props.displayNotification(\"uploadingImageNotification\");\n } else {\n this.props.postCustAccountPicture(accessId, mode, e.target.files[0]).then(response => {\n this.setState({ accountData: { ...this.state.accountData, logoURL: response } });\n });\n this.props.displayNotification(\"uploadingImageNotification\");\n }\n }}\n />\n {this.props.admin ? (\n
\n

{Resources.PrimaryButtonColor}

\n

This is used in communication templates

\n this.setState({ showColorPicker: !this.state.showColorPicker })}\n >
\n {this.state.showColorPicker ? (\n
\n \n
\n ) : null}\n
\n ) : null}\n
\n \n )}\n
\n
\n
\n
\n {\n let value = e.target.value;\n this.props.admin || this.props.mode === \"ar\" || this.props.match.params.mode === \"ar\"\n ? this.props.small\n ? this.props.formOnChange(\"mailToAddrLn1\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, mailToAddrLn1: value } };\n })\n : this.props.small\n ? this.props.formOnChange(\"billToAddrLn1\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, billToAddrLn1: value } };\n });\n }}\n />\n
\n
\n
\n
\n {\n let value = e.target.value;\n this.props.admin || this.props.mode === \"ar\" || this.props.match.params.mode === \"ar\"\n ? this.props.small\n ? this.props.formOnChange(\"mailToCountry\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, mailToCountry: value } };\n })\n : this.props.small\n ? this.props.formOnChange(\"billToCountry\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, billToCountry: value } };\n });\n }}\n />\n
\n
\n
\n
\n {\n let value = e.target.value;\n this.props.admin || this.props.mode === \"ar\" || this.props.match.params.mode === \"ar\"\n ? this.props.small\n ? this.props.formOnChange(\"mailToCity\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, mailToCity: value } };\n })\n : this.props.small\n ? this.props.formOnChange(\"billToCity\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, billToCity: value } };\n });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n this.props.admin || this.props.mode === \"ar\" || this.props.match.params.mode === \"ar\"\n ? this.props.small\n ? this.props.formOnChange(\"mailToState\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, mailToState: value } };\n })\n : this.props.small\n ? this.props.formOnChange(\"billToState\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, billToState: value } };\n });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n this.props.admin || this.props.match.params.mode === \"ar\" || this.props.mode === \"ar\"\n ? this.props.small\n ? this.props.formOnChange(\"mailToPostalcode\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, mailToPostalcode: value } };\n })\n : this.props.small\n ? this.props.formOnChange(\"billToPostalcode\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, billToPostalcode: value } };\n });\n }}\n />\n
\n
\n {this.props.admin || this.props.mode === \"ar\" || this.props.match.params.mode === \"ar\" ? null : (\n
\n {\n this.props.toggleSameAsBilling();\n this.setState({ sameAsBilling: !this.state.sameAsBilling });\n }\n : () => this.setState({ sameAsBilling: !this.state.sameAsBilling })\n }\n />\n \n
\n )}\n {this.props.admin || this.props.mode === \"ar\" || this.props.match.params.mode === \"ar\" ? null : this.state\n .sameAsBilling === true ? null : (\n
\n
\n
\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"shipToAddrLn1\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, shipToAddrLn1: value } };\n });\n }}\n />\n
\n
\n
\n
\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"shipToCountry\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, shipToCountry: value } };\n });\n }}\n />\n
\n
\n
\n
\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"shipToCity\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, shipToCity: value } };\n });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"shipToState\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, shipToState: value } };\n });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n this.props.small\n ? this.props.formOnChange(\"shipToPostalcode\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, shipToPostalcode: value } };\n });\n }}\n />\n
\n
\n
\n )}\n
\n
\n
\n {\n let value = e.target.value;\n this.props.small || this.props.empty\n ? this.props.formOnChange(\"notes\", value)\n : this.setState(prevState => {\n return { accountData: { ...prevState.accountData, notes: value } };\n });\n }}\n >\n
\n {this.props.edit ? (\n \n
\n
\n \n \n
\n
\n ) : null}\n \n {this.props.small || this.props.edit ? null : (\n
\n {this.props.networkStore.custAccount.isLockstepVerified || this.props.showCancelButton ? (\n {\n this.setState({ editMode: false });\n if (this.props.toggleEditMode !== undefined) {\n this.props.toggleEditMode();\n }\n }}\n >\n {Resources.Cancel}\n \n ) : null}\n \n
\n )}\n \n ) : (\n \n {this.props.small ? null :

{Resources.ProfileUpdateThanks}

}\n
\n \n
\n {Resources.UpdatedDate(formatDate(accountData.profileUpdateDate))}\n
\n
\n \n

{accountData.companyName}

\n
\n
\n
\n
\n \n
\n
{accountingGroupDetails.emailAddr}
\n
\n {!isEmpty(accountData.phone) && (\n
\n
\n \n
\n
{accountData.phone}
\n
\n )}\n {!isEmpty(accountData.fax) && (\n
\n
\n \n
\n
{accountData.fax}
\n
\n )}\n {!isEmpty(\n [\n accountData.mailToAddrLn1,\n accountData.mailToCity,\n accountData.mailToState,\n accountData.mailToPostalcode,\n accountData.mailToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n
\n
{accountData.mailToAddrLn1}
\n
\n {accountData.mailToCity}, {accountData.mailToState} {accountData.mailToPostalcode}\n
\n
{accountData.mailToCountry}
\n
\n
\n )}\n {!isEmpty(\n [\n accountData.billToAddrLn1,\n accountData.billToCity,\n accountData.billToState,\n accountData.billToPostalcode,\n accountData.billToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n
\n
{Resources.BillTo}
\n
{accountData.billToAddrLn1}
\n
\n {accountData.billToCity}, {accountData.billToState} {accountData.billToPostalcode}\n
\n
{accountData.billToCountry}
\n
\n
\n )}\n {!isEmpty(\n [\n accountData.shipToAddrLn1,\n accountData.shipToCity,\n accountData.shipToState,\n accountData.shipToPostalcode,\n accountData.shipToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n
\n
{Resources.ShipTo}
\n
{accountData.shipToAddrLn1}
\n
\n {accountData.shipToCity}, {accountData.shipToState} {accountData.shipToPostalcode}\n
\n
{accountData.shipToCountry}
\n
\n
\n )}\n {!isEmpty([accountData.taxId, accountData.entityClassification].filter(value => !isEmpty(value))) && (\n
\n
\n \n
\n
\n
\n {Resources.ein}: {accountData.taxId}\n
\n
\n {Resources.EntityClassification}:{\" \"}\n {\n (classifications.filter(i => i.value === accountData.entityClassificationId)[0] || {})\n .classification\n }\n
\n
\n
\n )}\n {!isEmpty(accountData.linkedInProfile) && (\n \n )}\n {!isEmpty(accountData.notes) && (\n
\n
\n \n
\n
{accountData.notes}
\n
\n )}\n
\n
\n
\n
\n \n \n
\n
\n );\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network,\n modalStore: store.modal\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ProfileUpdateForm));\n","import { Card } from \"reactstrap\";\nimport { generatePath, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport React, { Component } from \"react\";\nimport { dispatchToProps as networkDP } from \"../../../store/network-actions\";\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\n\nimport TableData from \"../../library/tableData\";\nimport IconUpload from \"../../library/icons/iconUpload\";\nimport Resources from \"../../../lib/resources\";\nimport IconTrash from \"../../library/icons/iconTrash\";\nimport MainLoader from \"../../mainLoader\";\nimport { formatDate } from \"../../../lib/utils\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch),\n ...moDP(dispatch)\n});\n\nclass DocumentUploadForm extends Component {\n constructor(props) {\n super(props);\n this.state = {\n currentDocumentType: \"\",\n loadedTable: false,\n updated: true,\n editMode: true,\n documents: [\n {\n type: 1,\n typeTitle: \"\",\n files: [],\n lastUpdated: \"N/A\"\n },\n {\n type: 2,\n files: [],\n lastUpdated: \"N/A\"\n },\n {\n type: 3,\n files: [],\n lastUpdated: \"N/A\"\n }\n ]\n };\n this.uploadFile = this.uploadFile.bind(this);\n this.updateDocuments = this.updateDocuments.bind(this);\n this.renderDocumentName = this.renderDocumentName.bind(this);\n this.submitDocuments = this.submitDocuments.bind(this);\n this.getCurrentDocs = this.getCurrentDocs.bind(this);\n }\n\n renderUploadButton(row) {\n return (\n
\n \n {\n let accessId = this.props.match.params.accessId;\n let accountKey = \"23e31d6e-3f46-4b25-a038-ce96ef5a43da\";\n if (this.props.admin) {\n let accountingGroupKey = this.props.match.params.accountingGroupKey;\n let companyGlobalKey = this.props.match.params.companyGlobalKey;\n let mode = this.props.match.params.mode;\n this.props\n .uploadAccountingGroupDocument(accountingGroupKey, companyGlobalKey, mode, e.target.files[0])\n .then(response => {\n this.updateDocuments(response);\n });\n this.props.displayNotification(\"uploadingDocumentNotification\");\n } else if (this.props.small) {\n let perspectiveId = this.props.perspectiveId;\n let companyId = this.props.companyId;\n let mode = this.props.mode;\n this.props\n .uploadAccountingGroupDocuments(perspectiveId, companyId, mode, e.target.files[0])\n .then(response => {\n this.updateDocuments(response);\n this.props.documentsOnChange(response);\n });\n this.props.displayNotification(\"uploadingDocumentNotification\");\n } else {\n this.props.postCustAccountPicture(accessId, accountKey, e.target.files[0]).then(response => {\n this.updateDocuments(response);\n });\n this.props.displayNotification(\"uploadingDocumentNotification\");\n }\n this.setState({ updated: false });\n this.setState({ currentDocumentType: row.type });\n if (this.props.small && this.props.editMode) {\n this.props.updateCurrentDocType(row.type);\n }\n }}\n />\n
\n );\n }\n\n componentDidMount() {\n if (this.props.admin) {\n let mode = this.props.match.params.mode;\n let accountingGroupKey = this.props.match.params.accountingGroupKey;\n let companyGlobalKey = this.props.match.params.companyGlobalKey;\n this.props.fetchAccountingGroupProfileDocuments(accountingGroupKey, companyGlobalKey, mode);\n } else if (this.props.small) {\n } else {\n let accessId = this.props.match.params.accessId;\n let mode = this.props.match.params.mode;\n this.props.fetchCustAccountDocuments(accessId, mode);\n }\n }\n\n uploadFile(type) {\n window.document.getElementById(type).click();\n }\n\n updateDocuments(response) {\n let document = response;\n let filePath = document;\n let fileName = document.split(\"/\");\n let currentDate = moment().format();\n let currentDoc = {\n fileName: fileName[fileName.length - 1],\n documentURL: filePath,\n documentTypeId: this.state.currentDocumentType,\n updateDate: currentDate\n };\n const documentToAmendIndex = this.state.documents.findIndex(i => i.type === this.state.currentDocumentType);\n const documentToAmend = this.state.documents[documentToAmendIndex];\n const updatedDocument = { ...documentToAmend, files: [...documentToAmend.files, currentDoc] } || {};\n this.setState({\n documents: [\n ...this.state.documents.slice(0, documentToAmendIndex),\n updatedDocument,\n ...this.state.documents.slice(documentToAmendIndex + 1)\n ]\n });\n }\n\n renderDocumentName(fileName, row, index) {\n return (\n

\n {fileName}\n {this.props.viewOnly || !this.state.editMode ? null : (\n {\n this.props.removeFile(fileName, row.type);\n this.removeFile(fileName, row.type);\n }\n : () => this.removeFile(fileName, row.type)\n }\n >\n \n \n )}\n

\n );\n }\n\n removeFile(fileName, type) {\n const documentToAmendIndex = this.state.documents.findIndex(i => i.type === type);\n const documentToAmend = this.state.documents[documentToAmendIndex];\n const updatedDocument = {\n ...documentToAmend,\n files: [...documentToAmend.files.filter(f => f.fileName !== fileName)]\n };\n this.setState({\n documents: [\n ...this.state.documents.slice(0, documentToAmendIndex),\n updatedDocument,\n ...this.state.documents.slice(documentToAmendIndex + 1)\n ]\n });\n }\n\n submitDocuments() {\n let accountData = { ...this.props.networkStore.custAccount, ...this.state.accountData };\n let accessId = this.props.match.params.accessId;\n let mode = this.props.match.params.mode;\n let accountingGroupKey = this.props.match.params.accountingGroupKey;\n let companyGlobalKey = this.props.match.params.companyGlobalKey;\n let documentsArray = [];\n this.state.documents.map(i => i.files.map(j => documentsArray.push(j)));\n let postRequest = {\n companyName: accountData.AccountName,\n emailAddr: accountData.Email,\n Documents: documentsArray\n };\n let valid = true;\n postRequest.Documents.forEach(i => {\n if (i.fileName.length >= 100) {\n valid = false;\n let errorMessage = Resources.PleaseEnsureAllFileNamesShorterThanOneHundred;\n this.props.displayModal(\"errorModal\", { errorMessage });\n }\n });\n if (valid) {\n if (this.props.admin) {\n this.props\n .postAccountingGroupProfileDocuments(accountingGroupKey, companyGlobalKey, mode, postRequest)\n .then(response => {\n this.props.history.push(\n generatePath(this.props.route, {\n accountingGroupKey: this.props.match.params.accountingGroupKey,\n companyGlobalKey: this.props.match.params.companyGlobalKey,\n mode: this.props.match.params.mode\n })\n );\n });\n } else {\n this.props.postCustAccountKeyDocuments(accessId, mode, postRequest).then(response => {\n this.props.history.push(\n generatePath(this.props.route, {\n accessId: this.props.match.params.accessId,\n mode: this.props.match.params.mode,\n type: \"success\"\n })\n );\n });\n }\n }\n }\n\n getCurrentDocs() {\n if (!this.state.loadedTable) {\n const docs = (this.props.networkStore.custAccountDocuments || {}).documents || [];\n let docsArray = [[], [], []];\n docs.map(currentDoc => {\n let currentType = currentDoc.documentTypeId;\n docsArray[currentType - 1].push(currentDoc);\n return null;\n });\n let newDocuments = [\n {\n type: 1,\n typeTitle:\n this.props.match.params.mode === \"ar\" || this.props.mode === \"ar\"\n ? \"Bank verification documents\"\n : \"Credit application\",\n files: docsArray[0],\n lastUpdated: \"N/A\"\n },\n {\n type: 2,\n typeTitle: this.props.match.params.mode === \"ar\" || this.props.mode === \"ar\" ? \"W9\" : \"Proof of insurance\",\n files: docsArray[1],\n lastUpdated: \"N/A\"\n },\n {\n type: 3,\n typeTitle:\n this.props.match.params.mode === \"ar\" || this.props.mode === \"ar\" ? \"Other\" : \"Tax exemption certificate\",\n files: docsArray[2],\n lastUpdated: \"N/A\"\n }\n ];\n this.setState({ documents: newDocuments });\n if (this.props.profileUpdate) {\n this.setState({ editMode: !this.props.networkStore.custAccount.isLockstepVerified });\n }\n this.setState({ loadedTable: true });\n }\n }\n\n handleLastUpdated(row) {\n if (row.files.length === 0) {\n return \"N/A\";\n } else {\n return formatDate(row.files[row.files.length - 1].updateDate);\n }\n }\n\n render() {\n if (this.props.networkStore.gettingCustAccountDocuments || this.props.networkStore.gettingCustAccount) {\n return ;\n } else if (this.props.networkStore.gotCustAccountDocuments) {\n this.getCurrentDocs();\n if (this.props.small && this.props.editMode) {\n this.props.documentsUpdate();\n }\n let documentColumns = [\n {\n header: Resources.DocumentType.toLocaleUpperCase(),\n content: row => (\n
\n {row.typeTitle}\n
\n ),\n width: \"30%\"\n },\n {\n header: Resources.File.toLocaleUpperCase(),\n content: row => row.files.map((file, index) => this.renderDocumentName(file.fileName, row, index)),\n width: \"30%\"\n },\n this.props.viewOnly || !this.state.editMode\n ? {\n header: Resources.LastUpdated.toLocaleUpperCase(),\n content: row => this.handleLastUpdated(row),\n width: \"10%\"\n }\n : {\n header: Resources.LastUpdated.toLocaleUpperCase(),\n content: row => this.handleLastUpdated(row),\n width: \"25%\"\n },\n this.props.viewOnly || !this.state.editMode\n ? { content: row => null, width: \"0%\" }\n : { content: row => this.renderUploadButton(row), width: \"12%\" }\n ];\n\n return (\n \n {this.props.small ? null : (\n

\n {this.props.networkStore.custAccount.isLockstepVerified\n ? Resources.LastQuestionDocumentsOnFileUpToDate\n : Resources.DocumentUploadForm}\n

\n )}\n
\n \n \n \n
\n {this.props.small ? null : !this.state.editMode ? (\n
\n \n \n
\n ) : (\n
\n {this.props.networkStore.custAccount.isLockstepVerified ? (\n \n ) : null}\n \n
\n )}\n
\n );\n } else {\n return null;\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network,\n modalStore: store.modal\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(DocumentUploadForm));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport Modal from \"react-modal\";\nimport moment from \"moment\";\n\nimport Resources from \"../../../../lib/resources\";\nimport { formatDate, isEmpty, find, copyToClipboard } from \"../../../../lib/utils\";\n\nimport Card from \"../../../library/card\";\nimport ProfileUpdateForm from \"../profileUpdate/profileUpdateForm\";\nimport MainLoader from \"../../../mainLoader\";\nimport Dropdown from \"../../../library/dropdown\";\n\nimport IconClose from \"../../../library/icons/iconClose\";\nimport IconArchive from \"../../../library/icons/iconArchive\";\nimport IconPhone from \"../../../library/icons/iconPhone\";\nimport IconMapPin from \"../../../library/icons/iconMapPin\";\nimport IconLinkedIn from \"../../../library/icons/iconLinkedIn\";\nimport IconClipboard from \"../../../library/icons/iconClipboard\";\nimport IconMail from \"../../../library/icons/iconMail\";\nimport IconEdit from \"../../../library/icons/iconEdit\";\nimport IconShare from \"../../../library/icons/iconShare\";\n\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\nimport { dispatchToProps as modDP } from \"../../../../store/modal-actions\";\nimport { dispatchToProps as persDP } from \"../../../../store/perspectives-actions\";\nimport DocumentUploadForm from \"../documentUploadForm\";\nimport SelectInput from \"../../../library/selectInput\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch),\n ...persDP(dispatch),\n ...modDP(dispatch)\n});\n\nclass CompanyProfileView extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n showFlyout: true,\n editMode: false,\n selectedAccount: {},\n editedAccount: {},\n currentDocumentType: \"\",\n loadedTable: false,\n selectedAccountDocumets: {},\n view: props.selectedPerspectiveType === \"vendors\" ? \"1\" : \"2\",\n perspectiveId: \"\",\n sameAsBilling: false,\n currentSubsidiary: \"\",\n subsidiaries: [],\n emailAddr: \"\",\n documents: [\n {\n type: 1,\n typeTitle: \"\",\n files: [],\n lastUpdated: \"N/A\"\n },\n {\n type: 2,\n files: [],\n lastUpdated: \"N/A\"\n },\n {\n type: 3,\n files: [],\n lastUpdated: \"N/A\"\n }\n ]\n };\n }\n\n toggleEditMode = () => {\n this.setState({ editMode: !this.state.editMode });\n }\n\n hideFlyout = () => {\n this.setState({ showFlyout: false });\n }\n\n componentDidMount = () => {\n let modeMap = {\n 1: \"ap\",\n 2: \"ar\"\n };\n let companyPerspectives = ((this.props.myProfile || {}).companies || [])\n .map(company => this.props.getCompanyPerspectives(company.companyId))\n .flat()\n .filter(i => !!i);\n\n let companyDetailToggle = this.state.view === \"1\" ? \"companyAPDetails\" : \"companyARDetails\";\n let accountingGroupToggle = this.state.view === \"1\" ? \"accountingGroupAPDetails\" : \"accountingGroupARDetails\";\n\n this.props\n .fetchSubsidiaryList(\n find(companyPerspectives, i => i.parentPerspectiveId === String(this.state.view)).perspectiveId\n ).then(() => {\n if (isEmpty(this.props.networkStore.subsidiaryList)) {\n this.hideFlyout();\n let errorMessage = Resources.NoSubsidiariesErrorMessage;\n this.props.displayModal(\"errorModal\", { errorMessage });\n } else {\n this.setState({\n subsidiaries: this.props.networkStore.subsidiaryList,\n currentSubsidiary: this.props.networkStore.subsidiaryList[0].companyName\n });\n this.props\n .fetchAccountingGroupProfile(\n find(companyPerspectives, i => i.parentPerspectiveId === String(this.state.view)).perspectiveId,\n this.props.networkStore.subsidiaryList[0].companyGlobalKey,\n modeMap[this.state.view]\n )\n .then(() => {\n this.setState({\n selectedAccount: this.props.networkStore.custAccount[companyDetailToggle],\n editedAccount: this.props.networkStore.custAccount[companyDetailToggle],\n perspectiveId: find(companyPerspectives, i => i.parentPerspectiveId === this.state.view).perspectiveId,\n emailAddr: this.props.networkStore.custAccount[accountingGroupToggle].emailAddr\n });\n });\n this.props\n .fetchAccountingGroupProfileDocuments(\n find(companyPerspectives, i => i.parentPerspectiveId === String(this.state.view)).perspectiveId,\n this.props.networkStore.subsidiaryList[0].companyGlobalKey,\n modeMap[this.state.view]\n )\n .then(() => {\n this.setState({ selectedAccountDocumets: this.props.networkStore.custAccountDocuments });\n });\n }\n });\n }\n\n formOnChange = (field, value) => {\n if (field === \"emailAddr\") {\n this.setState({ emailAddr: value });\n } else {\n this.setState(prevState => {\n return { editedAccount: { ...prevState.editedAccount, [field]: value } };\n });\n }\n }\n\n documentsOnChange = (response) => {\n let document = response;\n let filePath = document;\n let fileName = document.split(\"/\");\n let currentDate = moment().format();\n let currentDoc = {\n fileName: fileName[fileName.length - 1],\n documentURL: filePath,\n documentTypeId: this.state.currentDocumentType,\n updateDate: currentDate\n };\n const documentToAmendIndex = this.state.documents.findIndex(i => i.type === this.state.currentDocumentType);\n const documentToAmend = this.state.documents[documentToAmendIndex];\n const updatedDocument = { ...documentToAmend, files: [...documentToAmend.files, currentDoc] } || {};\n this.setState({\n documents: [\n ...this.state.documents.slice(0, documentToAmendIndex),\n updatedDocument,\n ...this.state.documents.slice(documentToAmendIndex + 1)\n ]\n });\n }\n\n documentsUpdate = () => {\n if (!this.state.loadedTable) {\n const docs = (this.props.networkStore.custAccountDocuments || {}).documents || [];\n let docsArray = [[], [], []];\n docs.map(currentDoc => {\n let currentType = currentDoc.documentTypeId;\n docsArray[currentType - 1].push(currentDoc);\n return null;\n });\n let newDocuments = [\n {\n type: 1,\n typeTitle: this.props.match.params.mode === \"ar\" ? \"Bank verification documents\" : \"Credit application\",\n files: docsArray[0],\n lastUpdated: \"N/A\"\n },\n {\n type: 2,\n typeTitle: this.props.match.params.mode === \"ar\" ? \"W9\" : \"Proof of insurance\",\n files: docsArray[1],\n lastUpdated: \"N/A\"\n },\n {\n type: 3,\n typeTitle: this.props.match.params.mode === \"ar\" ? \"Other\" : \"Tax exemption certificate\",\n files: docsArray[2],\n lastUpdated: \"N/A\"\n }\n ];\n this.setState({ documents: newDocuments });\n this.setState({ loadedTable: true });\n }\n }\n\n updateCurrentDocType = (newDocType) => {\n this.setState({ currentDocumentType: newDocType });\n }\n\n removeFile = (fileName, type) => {\n const documentToAmendIndex = this.state.documents.findIndex(i => i.type === type);\n const documentToAmend = this.state.documents[documentToAmendIndex];\n const updatedDocument = {\n ...documentToAmend,\n files: [...documentToAmend.files.filter(f => f.fileName !== fileName)]\n };\n this.setState({\n documents: [\n ...this.state.documents.slice(0, documentToAmendIndex),\n updatedDocument,\n ...this.state.documents.slice(documentToAmendIndex + 1)\n ]\n });\n }\n\n formSubmit = () => {\n let modeMap = {\n 1: \"ap\",\n 2: \"ar\"\n };\n let documentsArray = [];\n this.state.documents.map(i => i.files.map(j => documentsArray.push(j)));\n let documentRequest = {\n companyName: this.state.editedAccount.companyName,\n emailAddr: this.state.editedAccount.emailAddr,\n Documents: documentsArray\n };\n this.props\n .postAccountingGroupProfileDocuments(\n this.state.perspectiveId,\n find(this.state.subsidiaries, i => i.companyName === this.state.currentSubsidiary).companyGlobalKey,\n modeMap[this.state.view],\n documentRequest\n )\n .then(() => {\n this.props.fetchAccountingGroupProfileDocuments(\n this.state.perspectiveId,\n this.props.companyId,\n modeMap[this.state.view]\n );\n });\n\n let companyDetails = {\n accountProfileKey: this.state.selectedAccount.accountProfileKey,\n accountKey: this.state.selectedAccount.accountKey,\n aPProfileKey: this.state.editedAccount.ProfileKey,\n companyName: this.state.editedAccount.companyName,\n taxId: this.state.editedAccount.taxId,\n entityClassificationId: this.state.editedAccount.entityClassificationId,\n entityClassification: this.state.editedAccount.entityClassification,\n dateOfIncoporation: this.state.editedAccount.dateOfIncoporation,\n stateOfIncoporation: this.state.editedAccount.stateOfIncoporation,\n countryOfIncoporation: this.state.editedAccount.countryOfIncoporation,\n emailAddr: this.state.editedAccount.emailAddr,\n phone: this.state.editedAccount.phone,\n phoneExt: this.state.editedAccount.phoneExt,\n fax: this.state.editedAccount.fax,\n faxExt: this.state.editedAccount.faxExt,\n billToAddrLn1: this.state.editedAccount.billToAddrLn1,\n billToCity: this.state.editedAccount.billToCity,\n billToState: this.state.editedAccount.billToState,\n billToCountry: this.state.editedAccount.billToCountry,\n billToPostalcode: this.state.editedAccount.billToPostalcode,\n shipToAddrLn1: this.state.sameAsBilling\n ? this.state.editedAccount.billToAddrLn1\n : this.state.editedAccount.shipToAddrLn1,\n shipToAddrLn2: this.state.editedAccount.shipToAddrLn2,\n shipToCity: this.state.sameAsBilling ? this.state.editedAccount.billToCity : this.state.editedAccount.shipToCity,\n shipToState: this.state.sameAsBilling\n ? this.state.editedAccount.billToState\n : this.state.editedAccount.shipToState,\n shipToCountry: this.state.sameAsBilling\n ? this.state.editedAccount.billToCountry\n : this.state.editedAccount.shipToCountry,\n shipToPostalcode: this.state.sameAsBilling\n ? this.state.editedAccount.billToPostalcode\n : this.state.editedAccount.shipToPostalcode,\n mailToAddrLn1: this.state.editedAccount.mailToAddrLn1,\n mailToCity: this.state.editedAccount.mailToCity,\n mailToCountry: this.state.editedAccount.mailToCountry,\n mailToPostalcode: this.state.editedAccount.mailToPostalcode,\n mailToState: this.state.editedAccount.mailToState,\n isLockstepVerified: true,\n notes: this.state.editedAccount.notes,\n linkedInProfile: this.state.editedAccount.linkedInProfile,\n logoURL: this.state.editedAccount.logoURL,\n profileUpdateDate: moment().format()\n };\n\n let companyDetailToggle = this.state.view === \"1\" ? \"companyAPDetails\" : \"companyARDetails\";\n let accountingGroupToggle = this.state.view === \"1\" ? \"accountingGroupAPDetails\" : \"accountingGroupARDetails\";\n\n let postRequest = {\n [companyDetailToggle]: companyDetails,\n [accountingGroupToggle]: {\n emailAddr: this.state.emailAddr\n },\n isLockstepVerified: true\n };\n\n this.props\n .postAccountingGroupProfile(\n this.state.perspectiveId,\n find(this.state.subsidiaries, i => i.companyName === this.state.currentSubsidiary).companyGlobalKey,\n modeMap[this.state.view],\n postRequest\n )\n .then(response => {\n this.props\n .fetchAccountingGroupProfile(\n this.state.perspectiveId,\n find(this.state.subsidiaries, i => i.companyName === this.state.currentSubsidiary).companyGlobalKey,\n modeMap[this.state.view]\n )\n .then(response => {\n this.setState({ selectedAccount: this.props.networkStore.custAccount[companyDetailToggle] });\n this.props.fetchActivityList(this.state.perspectiveId, {\n top: 100,\n skip: 0\n });\n this.toggleEditMode();\n });\n });\n }\n\n toggleSameAsBilling = () => {\n this.setState({ sameAsBilling: !this.state.sameAsBilling });\n }\n\n render() {\n let companyPerspectives = ((this.props.myProfile || {}).companies || [])\n .map(company => this.props.getCompanyPerspectives(company.companyId))\n .flat()\n .filter(i => !!i);\n let perspectivesMap = {\n 1: Resources.AccountsPayable.toLocaleUpperCase(),\n 2: Resources.AccountsReceivable.toLocaleUpperCase()\n };\n let modeMap = {\n 1: \"ap\",\n 2: \"ar\"\n };\n let links = [];\n companyPerspectives.forEach(i => {\n if (!find(links, link => link.perspectiveId === i.perspectiveId)) {\n let currentLink = {\n subView: i.parentPerspectiveId,\n display: perspectivesMap[i.parentPerspectiveId],\n perspectiveId: i.perspectiveId\n };\n links.push(currentLink);\n }\n });\n\n return (\n \n \n {this.props.networkStore.gettingCustAccount || this.props.networkStore.gettingSubsidiaryList ? null : (\n
\n

{links.length > 1 ? Resources.CompanyProfiles : Resources.CompanyProfile}

\n
this.hideFlyout()} className=\"flyout-heading-close\">\n \n
\n
\n )}\n {this.props.networkStore.gettingCustAccount || this.props.networkStore.gettingSubsidiaryList\n ? null\n : links && (\n \n {links.length > 1 ? (\n \n
\n {links.map((link, index) => (\n {\n this.props\n .fetchSubsidiaryList(\n find(companyPerspectives, i => i.parentPerspectiveId === String(this.state.view))\n .perspectiveId\n )\n .then(response => {\n this.setState({\n subsidiaries: this.props.networkStore.subsidiaryList,\n currentSubsidiary: this.props.networkStore.subsidiaryList[0].companyName\n });\n this.props\n .fetchAccountingGroupProfile(\n link.perspectiveId,\n this.props.networkStore.subsidiaryList[0].companyGlobalKey,\n modeMap[link.subView]\n )\n .then(response => {\n let accountingGroupToggle =\n link.subView === \"1\" ? \"accountingGroupAPDetails\" : \"accountingGroupARDetails\";\n this.setState({\n view: link.subView,\n selectedAccount:\n this.props.networkStore.custAccount.companyARDetails ||\n this.props.networkStore.custAccount.companyAPDetails,\n editedAccount:\n this.props.networkStore.custAccount.companyARDetails ||\n this.props.networkStore.custAccount.companyAPDetails,\n perspectiveId: link.perspectiveId,\n emailAddr: this.props.networkStore.custAccount[accountingGroupToggle].emailAddr\n });\n this.props\n .fetchAccountingGroupProfileDocuments(\n link.perspectiveId,\n this.props.networkStore.subsidiaryList[0].companyGlobalKey,\n modeMap[link.subView]\n )\n .then(response => {\n this.setState({\n selectedAccountDocumets: this.props.networkStore.custAccountDocuments\n });\n });\n });\n });\n }}\n >\n {link.display}\n \n ))}\n
\n
\n
\n ) : null}\n
\n )}\n {this.props.networkStore.gettingCustAccount ||\n this.props.networkStore.gettingSubsidiaryList ||\n this.props.networkStore.gettingCustAccountDocuments ? (\n
\n \n
\n ) : (\n \n {this.state.subsidiaries.length <= 1 ? null : (\n {\n let accountingGroupToggle =\n this.state.view === \"1\" ? \"accountingGroupAPDetails\" : \"accountingGroupARDetails\";\n this.props\n .fetchAccountingGroupProfile(\n this.state.perspectiveId,\n find(this.state.subsidiaries, i => i.companyName === option.companyName).companyGlobalKey,\n modeMap[this.state.view]\n )\n .then(response => {\n this.setState({\n selectedAccount:\n this.props.networkStore.custAccount.companyARDetails ||\n this.props.networkStore.custAccount.companyAPDetails,\n editedAccount:\n this.props.networkStore.custAccount.companyARDetails ||\n this.props.networkStore.custAccount.companyAPDetails,\n perspectiveId: this.state.perspectiveId,\n emailAddr: this.props.networkStore.custAccount[accountingGroupToggle].emailAddr\n });\n });\n this.props\n .fetchAccountingGroupProfileDocuments(\n this.state.perspectiveId,\n find(this.state.subsidiaries, i => i.companyName === option.companyName).companyGlobalKey,\n modeMap[this.state.view]\n )\n .then(response => {\n this.setState({ selectedAccountDocumets: this.props.networkStore.custAccountDocuments });\n });\n this.setState({ currentSubsidiary: option.companyName });\n }}\n />\n )}\n\n {this.state.editMode ? (\n \n

{Resources.Profile}

\n \n

{Resources.Documents}

\n \n
\n \n \n
\n
\n ) : (\n
\n
\n \n \n {Resources.ShareProfile}\n \n }\n buttonClassName=\"button-primary-large-dropdown\"\n >\n {\n this.props.displayFlyout(\"shareFlyout\", {\n myProfile: this.state.selectedAccount,\n entityGlobalKey: this.props.networkStore.custAccount.entityGlobalKey,\n companyId: find(\n this.props.networkStore.subsidiaryList,\n i => i.companyName === this.state.currentSubsidiary\n ).companyGlobalKey,\n groupKey:\n this.state.view === \"1\"\n ? this.props.networkStore.custAccount.accountingGroupAPDetails.apAccountingGroupKey\n : this.props.networkStore.custAccount.accountingGroupARDetails.arAccountingGroupKey,\n perspectiveId: this.state.perspectiveId,\n isCompany: true,\n mode: this.state.view\n });\n }}\n >\n {Resources.SendInMessage}\n \n {\n this.props\n .fetchShareLink(\n this.state.view === \"1\" ? \"ap\" : \"ar\",\n this.props.networkStore.custAccount.entityGlobalKey\n )\n .then(() => {\n copyToClipboard(this.props.networkStore.shareLink);\n });\n this.props.displayNotification(\"copyToClipboardNotification\");\n }}\n >\n {Resources.CopyLink}\n \n \n \n
\n

{Resources.Profile}

\n
\n
\n \n
\n {Resources.UpdatedDate(formatDate(this.state.selectedAccount.profileUpdateDate))}\n
\n
\n
\n
\n \n
\n
\n {\n (\n this.props.networkStore.custAccount.accountingGroupARDetails ||\n this.props.networkStore.custAccount.accountingGroupAPDetails ||\n {}\n ).emailAddr\n }\n
\n
\n {!isEmpty(this.state.selectedAccount.phone) && (\n
\n
\n \n
\n
{this.state.selectedAccount.phone}
\n
\n )}\n {!isEmpty(this.state.selectedAccount.fax) && (\n
\n
\n \n
\n
{this.state.selectedAccount.fax}
\n
\n )}\n {!isEmpty(\n [\n this.state.selectedAccount.mailToAddrLn1,\n this.state.selectedAccount.mailToCity,\n this.state.selectedAccount.mailToState,\n this.state.selectedAccount.mailToPostalcode,\n this.state.selectedAccount.mailToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n
\n
Remit-to
\n
{this.state.selectedAccount.mailToAddrLn1}
\n
\n {this.state.selectedAccount.mailToCity}, {this.state.selectedAccount.mailToState}{\" \"}\n {this.state.selectedAccount.mailToPostalcode}\n
\n
{this.state.selectedAccount.mailToCountry}
\n
\n
\n )}\n {!isEmpty(\n [\n this.state.selectedAccount.billToAddrLn1,\n this.state.selectedAccount.billToCity,\n this.state.selectedAccount.billToState,\n this.state.selectedAccount.billToPostalcode,\n this.state.selectedAccount.billToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n
\n
Bill-to
\n
{this.state.selectedAccount.billToAddrLn1}
\n
\n {this.state.selectedAccount.billToCity}, {this.state.selectedAccount.billToState}{\" \"}\n {this.state.selectedAccount.billToPostalcode}\n
\n
{this.state.selectedAccount.billToCountry}
\n
\n
\n )}\n {!isEmpty(\n [\n this.state.selectedAccount.shipToAddrLn1,\n this.state.selectedAccount.shipToCity,\n this.state.selectedAccount.shipToState,\n this.state.selectedAccount.shipToPostalcode,\n this.state.selectedAccount.shipToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n
\n
Ship-to
\n
{this.state.selectedAccount.shipToAddrLn1}
\n
\n {this.state.selectedAccount.shipToCity}, {this.state.selectedAccount.shipToState}{\" \"}\n {this.state.selectedAccount.shipToPostalcode}\n
\n
{this.state.selectedAccount.shipToCountry}
\n
\n
\n )}\n {!isEmpty(this.state.selectedAccount.linkedInProfile) && (\n \n )}\n {!isEmpty(this.state.selectedAccount.notes) && (\n
\n
\n \n
\n
{this.state.selectedAccount.notes}
\n
\n )}\n
\n \n
\n
\n

{Resources.Documents}

\n {this.props.networkStore.gotCustAccountDocuments && this.props.networkStore.gotCustAccount ? (\n \n ) : null}\n
\n )}\n \n )}\n \n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal,\n networkStore: store.network,\n selectedPerspectiveType: store.perspectives.selectedPerspectiveType\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(CompanyProfileView));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { dispatchToProps as moDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as ledgDP } from \"../../../store/ledger-actions\";\nimport { dispatchToProps as statDP } from \"../../../store/statements-actions\";\nimport { dispatchToProps as manDP } from \"../../../store/manage-actions\";\nimport { dispatchToProps as networkDP } from \"../../../store/network-actions\";\nimport { dispatchToProps as caDP } from \"../../../store/company-actions\";\nimport { dispatchToProps as perDP } from \"../../../store/perspectives-actions\";\n\nimport Resources from \"../../../lib/resources\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport IconClose from \"../../library/icons/iconClose\";\n\nimport Modal from \"react-modal\";\nimport ContactUpdateForm from \"../views/profileUpdate/contactUpdateForm\";\n\nconst dispatchToProps = dispatch => ({\n ...moDP(dispatch),\n ...ledgDP(dispatch),\n ...statDP(dispatch),\n ...caDP(dispatch),\n ...manDP(dispatch),\n ...networkDP(dispatch),\n ...perDP(dispatch)\n});\n\nclass AddContactFlyout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n showFlyout: true,\n contactInfo: {\n companyKey: this.props.accountId\n }\n };\n\n this.hideFlyout = this.hideFlyout.bind(this);\n this.formOnChange = this.formOnChange.bind(this);\n this.addContactFunction = this.addContactFunction.bind(this);\n }\n\n formOnChange(field, value) {\n this.setState(prevState => {\n return { contactInfo: { ...prevState.contactInfo, [field]: value } };\n });\n }\n\n hideFlyout() {\n this.setState({ showFlyout: false });\n }\n\n addContactFunction(sendUpdate) {\n let mode = this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\";\n let postRequest = {\n ...this.state.contactInfo,\n isLockstepVerified: false\n };\n this.props\n .addContact(this.props.perspectiveId, this.state.contactInfo.companyKey, mode, postRequest)\n .then(response => {\n if (sendUpdate) {\n this.props.sendContactProfileUpdateRequest([response.entityGlobalKey]);\n }\n this.props\n .updateCustContact(this.props.perspectiveId, response.entityGlobalKey, mode, postRequest)\n .then(response => {\n this.props.fetchContactList(this.props.perspectiveId);\n if (this.props.accountId) {\n this.props.fetchAccountContacts(this.props.perspectiveId, this.props.accountId);\n }\n this.hideFlyout();\n });\n });\n sendUpdate\n ? this.props.displayNotification(\"addingContactSendingUpdateRequestNotification\")\n : this.props.displayNotification(\"addingContactNotification\");\n }\n\n render() {\n return (\n \n
\n
this.hideFlyout()} className=\"flyout-heading-close\">\n \n
\n

{Resources.AddANewContact}

\n \n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n modalStore: store.modal,\n manageStore: store.manage,\n contactList: store.network.contactList,\n accountList: store.network.accountList,\n pageRowCount: store.general.pageRowCount,\n networkStore: store.network,\n perspectiveStore: store.perspectives,\n searchResults: store.network.searchResults,\n isShowingSearchResult: store.gotNetworkAccountSearchResults,\n gettingNetworkAccountList: store.network.gettingNetworkAccountList,\n gettingNetworkContactList: store.network.gettingNetworkContactList\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(AddContactFlyout));\n","import React, { Component } from \"react\";\n\nclass IconInbox extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n \n );\n }\n}\n\nIconInbox.defaultProps = {\n height: 24\n};\n\nexport default IconInbox;\n","import React, { Component } from \"react\";\n\nclass IconList extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n );\n }\n}\n\nIconList.defaultProps = {\n height: 22\n};\n\nexport default IconList;\n","import React from \"react\";\n\nimport Card from \"../../../library/card\";\nimport IconInbox from \"../../../library/icons/iconInbox\";\nimport IconList from \"../../../library/icons/iconList\";\nimport IconLock from \"../../../library/icons/iconLock\";\nimport IconApps from \"../../../library/icons/iconApps\";\nimport IconMail from \"../../../library/icons/iconMail\";\nimport IconClose from \"../../../library/icons/iconClose\";\nimport IconFile from \"../../../library/icons/iconFile\";\nimport IconUsers from \"../../../library/icons/iconUsers\";\nimport { SettingsViews } from \"./settingsControllerFlyout\";\nimport Resources from \"../../../../lib/resources\";\nimport { useFlags } from \"launchdarkly-react-client-sdk\";\n\nconst SettingsNavigator = ({ setSettingsView, hideFlyout, flags }) => {\n const { teamInboxTemplates } = useFlags();\n\n return (\n \n
\n

{Resources.Settings}

\n
\n \n
\n
\n\n setSettingsView(SettingsViews.SIGN_IN_SECURITY)} className=\"settings-flyout__card\">\n
\n \n
\n
\n
{Resources.SignInAndSecurity}
\n
{Resources.ChangeYourPassword}
\n
\n
\n\n setSettingsView(SettingsViews.SUMMARY_EMAIL_PREFERENCES)} className=\"settings-flyout__card\">\n
\n \n
\n
\n
{Resources.ActivitySummaryEmails}
\n
{Resources.ChooseActivitySummmaryEmailsFrequency}
\n
\n
\n\n setSettingsView(SettingsViews.WORKSPACE_PREFERENCES)} className=\"settings-flyout__card\">\n
\n \n
\n
\n
{Resources.WorkspacePreferences}
\n
{Resources.CustomizeWorkspaceNames}
\n
\n
\n\n setSettingsView(SettingsViews.EMAIL_SETTINGS)} className=\"settings-flyout__card\">\n
\n \n
\n
\n
{Resources.EmailSettingsV2}
\n
{Resources.ManageEmailSetupAndDelivery}
\n
\n
\n\n {teamInboxTemplates && (\n setSettingsView(SettingsViews.TEMPLATES)} className=\"settings-flyout__card\">\n
\n \n
\n
\n
{Resources.Templates}
\n
{Resources.ManageEmailSetupAndDelivery}
\n
\n
\n )}\n\n setSettingsView(SettingsViews.USER_PERMISSION_SETTINGS)} className=\"settings-flyout__card\">\n
\n \n
\n
\n
{Resources.CompanyUsersAndPermissions}
\n
{Resources.ManageUsersAndPermissions}
\n
\n
\n\n {/* \n // TODO: Implement connector settings\n setSettingsView(SettingsViews.ACCOUNTING_SOFTWARE_SETTINGS)}\n className=\"settings-flyout__card\"\n >\n
\n \n
\n
\n
{Resources.AccountingSoftwareSettings}
\n
{Resources.ManageConnectionsToAccountingSoftware}
\n
\n */}\n
\n );\n};\n\nexport default SettingsNavigator;\n","import React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport RadioInput from \"../../../library/radioInput\";\nimport { dispatchToProps as paDP } from \"../../../../store/perspectives-actions\";\nimport { dispatchToProps as uaDP } from \"../../../../store/user-actions\";\nimport { dispatchToProps as gaDP } from \"../../../../store/general-actions\";\nimport { dispatchToProps as moDP } from \"../../../../store/modal-actions\";\nimport EditableField from \"./editableField\";\nimport Resources from \"../../../../lib/resources\";\nimport IconClose from \"../../../library/icons/iconClose\";\nimport IconAngleLeft from \"../../../library/icons/iconAngleLeft\";\nimport TableData from \"../../../library/tableData\";\nimport { SettingsViews } from \"./settingsControllerFlyout\";\nimport Card from \"../../../library/card\";\n\nconst getPerspectiveType = perspective => {\n const parentPerspectiveName = perspective.parentPerspective && perspective.parentPerspective.perspectiveName;\n\n switch (parentPerspectiveName) {\n case \"vendors\":\n return Resources.AccountsPayable;\n case \"customers\":\n return Resources.AccountsReceivable;\n default:\n return perspective.perspectiveName;\n }\n};\n\nconst dispatchToProps = dispatch => {\n return {\n ...paDP(dispatch),\n ...uaDP(dispatch),\n ...gaDP(dispatch),\n ...moDP(dispatch)\n };\n};\n\nconst WorkspacePreferences = ({\n persistedPerspectives,\n getUserConfig,\n updateUserConfig,\n persistedDefaultPerspective,\n updateCompanyPerspective,\n hideFlyout,\n displayNotification,\n setSettingsView\n}) => {\n useEffect(() => {\n getUserConfig();\n }, [getUserConfig]);\n\n useEffect(() => {\n setDefaultPerspective(persistedDefaultPerspective);\n }, [persistedDefaultPerspective]);\n\n const [perspectives, setPerspectives] = useState(persistedPerspectives);\n const [defaultPerspective, setDefaultPerspective] = useState(persistedDefaultPerspective);\n\n const onDefaultPerspectiveChange = perspectiveId => () => setDefaultPerspective(perspectiveId);\n\n const onPerspectiveNameChange = perspectiveId => event => {\n event.preventDefault();\n\n const updated = { ...perspectives[perspectiveId], current: event.target.value };\n setPerspectives({\n ...perspectives,\n [perspectiveId]: updated\n });\n };\n\n const onSaveButtonClick = event => {\n event.preventDefault();\n\n const perspectiveNamesToUpdate = Object.entries(perspectives).filter(\n ([, { initial, current }]) => initial !== current\n );\n\n perspectiveNamesToUpdate.forEach(([perspectiveId, { current }]) => {\n updateCompanyPerspective(perspectiveId, { perspectiveName: current });\n });\n\n if (defaultPerspective !== persistedDefaultPerspective) {\n displayNotification(\"updatingUserConfigNotification\");\n updateUserConfig({ defaultPerspective: defaultPerspective }).then(getUserConfig);\n }\n };\n\n return (\n \n
\n setSettingsView(SettingsViews.SETTINGS)} className=\"settings-flyout__back\" />\n

{Resources.WorkspacePreferences}

\n
\n \n
\n
\n\n \n \n content: ([, { current }]) => current\n },\n { header: Resources.Type.toLocaleUpperCase(), content: ([, { type }]) => type, width: \"40%\" },\n {\n header: Resources.Default.toLocaleUpperCase(),\n content: ([id]) => (\n \n ),\n width: \"10%\"\n }\n ]}\n rowHeight=\"4rem\"\n />\n \n\n \n
\n );\n};\n\nconst storeToProps = store => {\n return {\n persistedDefaultPerspective: store.user.userConfig.defaultPerspective,\n persistedPerspectives: store.perspectives.companyPerspectives.reduce(\n (acc, perspective) => ({\n ...acc,\n [perspective.perspectiveId]: {\n // We'll keep `initial` values to only trigger updates for perspectives which actually changed\n initial: perspective.perspectiveName,\n current: perspective.perspectiveName,\n type: getPerspectiveType(perspective),\n id: perspective.perspectiveId\n }\n }),\n {}\n )\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(WorkspacePreferences));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport Resources from \"../../../../lib/resources\";\n\nimport RadioInput from \"./../../../library/radioInput\";\n\nimport { dispatchToProps as uaDP } from \"../../../../store/user-actions\";\nimport { dispatchToProps as gaDP } from \"../../../../store/general-actions\";\nimport { isEmpty } from \"../../../../lib/utils\";\nimport MainLoader from \"./../../../mainLoader\";\nimport IconAngleLeft from \"../../../library/icons/iconAngleLeft\";\nimport { SettingsViews } from \"./settingsControllerFlyout\";\nimport IconClose from \"../../../library/icons/iconClose\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...uaDP(dispatch),\n ...gaDP(dispatch)\n };\n};\n\nclass NotificationSettings extends Component {\n constructor(props) {\n super(props);\n this.state = {\n notificationFrequency: \"daily\",\n readOnly: true\n };\n\n this.save = this.save.bind(this);\n }\n\n componentDidMount() {\n if (!isEmpty(this.props.userStore.userConfig)) {\n this.setState({ notificationFrequency: this.props.userStore.userConfig.notificationFrequency || \"daily\" });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.userStore.userConfig !== prevProps.userStore.userConfig) {\n this.setState({\n notificationFrequency: this.props.userStore.userConfig.notificationFrequency || \"daily\"\n });\n }\n }\n\n save() {\n this.props.updateUserConfig({ notificationFrequency: this.state.notificationFrequency });\n }\n\n render() {\n const notificationFrequencyRadios = [\n { label: Resources.DailyWeekdays, value: \"daily\" },\n { label: Resources.WeeklyMondays, value: \"weekly\" },\n { label: Resources.Never, value: \"never\" }\n ];\n\n return (\n \n
\n this.props.setSettingsView(SettingsViews.SETTINGS)}\n className=\"settings-flyout__back\"\n />\n

{Resources.ActivitySummaryEmails}

\n
\n \n
\n
\n {this.props.userStore.gettingUserConfig || this.props.userStore.updatingUserConfig ? (\n \n ) : (\n
\n
\n \n this.setState({ notificationFrequency: item.value })}\n />\n\n
\n \n {this.state.readOnly === false && (\n \n this.setState({\n notificationFrequency: (this.props.userStore.userConfig || {}).notificationFrequency || \"daily\",\n readOnly: true\n })\n }\n >\n {Resources.Cancel}\n \n )}\n
\n
\n
\n )}\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n userStore: store.user\n };\n};\n\nexport default connect(storeToProps, dispatchToProps)(NotificationSettings);\n","import React, { useState } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport icons from \"../../../../../lib/icons\";\nimport { getPartnerType } from \"../../../../../lib/perspectives\";\nimport Resources from \"../../../../../lib/resources\";\nimport { find } from \"../../../../../lib/utils\";\nimport AutoCompleteDropdown from \"../../../../library/autoCompleteDropdown\";\nimport SPFDKIMEmailSettings from \"../../../../SPFDKIMEmailSettings\";\nimport SMTPEmailSettings from \"../../../../SMTPEmailSettings\";\nimport { dispatchToProps as modDP } from \"../../../../../store/modal-actions\";\n\nexport const EmailTypes = {\n LOCKSTEP: \"Lockstep\",\n GMAIL: \"Gmail\",\n DKIMSPF: \"DKIM/SPF\",\n SMTP: \"SMTP\"\n};\n\nexport const getOutgoingEmailOptionDisplayName = type => {\n switch (type) {\n case EmailTypes.LOCKSTEP:\n return Resources.StandardLockstepDelivery;\n case EmailTypes.GMAIL:\n return Resources.ConnectedGmailAccount;\n case EmailTypes.DKIMSPF:\n return Resources.ImproveDeliveryRatesSPFDKIM;\n case EmailTypes.SMTP:\n return Resources.CustomSMTP;\n default:\n return null;\n }\n};\n\nconst outgoingMailOptions = [\n { value: EmailTypes.LOCKSTEP, displayName: getOutgoingEmailOptionDisplayName(EmailTypes.LOCKSTEP) },\n { value: EmailTypes.DKIMSPF, displayName: getOutgoingEmailOptionDisplayName(EmailTypes.DKIMSPF) },\n { value: EmailTypes.SMTP, displayName: getOutgoingEmailOptionDisplayName(EmailTypes.SMTP) }\n];\n\nconst dispatchToProps = dispatch => ({\n ...modDP(dispatch)\n});\n\nconst OutgoingEmailSettings = ({\n perspectiveId,\n perspectiveName,\n companyId,\n companyName,\n isCurrentEmailConfigVerified,\n selectedConfig,\n configData,\n onCancel,\n setCompanyEmailConfig,\n allEmailConfigTypes,\n displayModal\n}) => {\n const workspaceName = getPartnerType(perspectiveName, true);\n const [selectedOption, setSelectedOption] = useState(\n find(outgoingMailOptions, ({ value }) => value === selectedConfig)\n );\n\n const onCompanyEmailConfigSelected = selectedType => {\n const selectedConfigTypeId =\n find(allEmailConfigTypes, ({ emailConfigurationTypeName }) => emailConfigurationTypeName === selectedType) || {};\n const selectedEmailConfigurationTypeId = selectedConfigTypeId.emailConfigurationTypeId;\n\n switch (selectedType) {\n case EmailTypes.LOCKSTEP:\n setCompanyEmailConfig(companyId, {\n emailConfigurationTypeId: selectedEmailConfigurationTypeId,\n perspectiveId: perspectiveId,\n configurationData: null\n });\n break;\n case EmailTypes.DKIMSPF:\n case EmailTypes.SMTP:\n default:\n break;\n }\n };\n\n return (\n \n
\n
\n
{Resources.DeliveryPreference}
\n
\n {\n onCompanyEmailConfigSelected(option.value);\n setSelectedOption(outgoingMailOptions.find(({ value }) => value === option.value));\n }}\n icon={icons.angleDown + \" solid\"}\n readOnly\n />\n \n displayModal(\"testEmailConfigModal\", {\n companyId: companyId,\n accountingGroupId: perspectiveId,\n accountingGroupName: workspaceName\n })\n }\n >\n {Resources.TestOutgoingEmail}\n \n
\n
\n
\n
\n\n {}}\n onCancel={onCancel}\n />\n\n {}}\n onCancel={onCancel}\n />\n \n );\n};\n\nexport default connect(null, dispatchToProps)(OutgoingEmailSettings);\n","import React, { useEffect, useState } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { dispatchToProps as maDP } from \"../../../../../store/manage-actions\";\nimport { dispatchToProps as caDP } from \"../../../../../store/connector-actions\";\nimport { dispatchToProps as coaDP } from \"../../../../../store/company-actions\";\nimport { dispatchToProps as eaDP } from \"../../../../../store/error-actions\";\nimport { dispatchToProps as raDP } from \"../../../../../store/registration-actions\";\nimport Resources from \"../../../../../lib/resources\";\nimport Card from \"../../../../library/card\";\nimport TextInput from \"../../../../library/textInput\";\nimport IconEdit from \"../../../../library/icons/iconEdit\";\nimport { isEmpty, find, isEmailValid } from \"../../../../../lib/utils\";\nimport IncomingSettings from \"../../../../incomingSettings\";\nimport OutgoingEmailSettings, { getOutgoingEmailOptionDisplayName } from \"./outgoingEmailSettings\";\nimport FlexibleScrollContainer from \"../../../../flexibleScrollContainer\";\n\nconst getCompanyForwardingAddress = (companyId, perspectiveId) => store => {\n const companyInfo = store.companies.companyInfo[companyId];\n const connectorEmail = companyInfo && find(companyInfo.connectorEmails, p => p.perspectiveId === perspectiveId);\n\n return connectorEmail && connectorEmail.companyForwardingAddress;\n};\n\nconst getPerspectiveEmailConfigurationType = (companyId, perspectiveId) => store => {\n const config = store.manage.companiesEmailConfigType[companyId];\n return config && config[perspectiveId] && config[perspectiveId].emailConfigurationTypeName;\n};\n\nconst getImapConnectorId = store => {\n let imapConnector = store.connector.allSupportedConnectors.find(({ connectorName }) => connectorName === \"Email\");\n return imapConnector && imapConnector.connectorId;\n};\n\nconst getImapConnectorVersionId = connectorId => store => {\n let imapConnectorVersion = store.connector.connectorVersionData[connectorId];\n return imapConnectorVersion && imapConnectorVersion[0].connectorVersionId;\n};\n\nconst getImapConfig = (imapConnectorVersionId, perspectiveId) => store => {\n if (imapConnectorVersionId && perspectiveId && !isEmpty(store.connector.connectorConfigs)) {\n const configs = store.connector.connectorConfigs[imapConnectorVersionId].connectorConfiguration;\n return find(configs, config => config.perspectiveId === perspectiveId);\n }\n};\n\nconst IncomingEmailOptions = [\n { type: \"imap\", displayName: Resources.ImapServer },\n { type: \"forwarding\", displayName: Resources.EmailForwarding }\n];\n\nexport const PerspectiveEmailSettingsViews = {\n PREFERENCES_OVERVIEW: \"preferences_overview\",\n EDIT_INCOMING_MAIL: \"edit_incoming_mail\",\n EDIT_OUTGOING_MAIL: \"edit_outgoing_mail\"\n};\n\nconst EmailFormComponent = ({\n perspective,\n companyId,\n fetchCompanyEmailConfigType,\n getCompanyEmailConfigVerification,\n fetchCompanyEmailConfigData,\n fetchAllConnectors,\n fetchConnectorVersionData,\n fetchConnectorConfiguration,\n getCompanyInfo,\n raiseError,\n fetchCompanyInfo,\n setEmailForwardingAddress,\n setCompanyEmailConfig\n}) => {\n const imapConnectorId = useSelector(getImapConnectorId);\n const imapConnectorVersionId = useSelector(getImapConnectorVersionId(imapConnectorId));\n const imapConfiguration = useSelector(getImapConfig(imapConnectorVersionId, perspective.perspectiveId));\n const configType = useSelector(getPerspectiveEmailConfigurationType(companyId, perspective.perspectiveId));\n const companyForwardingAddress = useSelector(getCompanyForwardingAddress(companyId, perspective.perspectiveId));\n const configData = useSelector(store => store.manage.companiesEmailConfigData[companyId]);\n const isCurrentEmailConfigVerified = useSelector(store => store.manage.isCurrentEmailConfigVerified);\n const allEmailConfigTypes = useSelector(store => store.manage.allEmailConfigTypes);\n const companyName = useSelector(store => store.accounts.selectedCompany.companyName);\n\n const [emailSettingsView, setEmailSettingsView] = useState(PerspectiveEmailSettingsViews.PREFERENCES_OVERVIEW);\n const [remoteEmail, setRemoteEmail] = useState(companyForwardingAddress);\n\n const incomingEmailOption = isEmpty(imapConfiguration)\n ? { type: \"forwarding\", displayName: Resources.EmailForwarding }\n : { type: \"imap\", displayName: Resources.ImapServer, config: imapConfiguration };\n\n useEffect(() => {\n fetchAllConnectors();\n }, [fetchAllConnectors]);\n\n useEffect(() => {\n if (imapConnectorId) {\n fetchConnectorVersionData(imapConnectorId);\n }\n }, [fetchConnectorVersionData, imapConnectorId]);\n\n useEffect(() => {\n if (companyId) {\n fetchCompanyEmailConfigType(companyId);\n fetchCompanyEmailConfigData(companyId);\n getCompanyEmailConfigVerification(companyId);\n getCompanyInfo(companyId);\n }\n }, [\n fetchCompanyEmailConfigType,\n fetchCompanyEmailConfigData,\n getCompanyEmailConfigVerification,\n getCompanyInfo,\n companyId\n ]);\n\n useEffect(() => {\n if (imapConnectorVersionId) {\n fetchConnectorConfiguration(companyId, imapConnectorVersionId);\n }\n }, [fetchConnectorConfiguration, companyId, imapConnectorVersionId]);\n\n useEffect(() => {\n setRemoteEmail(companyForwardingAddress);\n }, [companyForwardingAddress]);\n\n useEffect(() => {\n setEmailSettingsView(PerspectiveEmailSettingsViews.PREFERENCES_OVERVIEW);\n }, [perspective.perspectiveId]);\n\n const saveEmailSettings = () => {\n if (isEmailValid(remoteEmail) !== true) {\n raiseError(Resources.ValidEmailError);\n return;\n }\n\n setEmailForwardingAddress(companyId, perspective.perspectiveId, remoteEmail).then(() => {\n if (companyForwardingAddress !== remoteEmail) {\n fetchCompanyInfo(companyId);\n }\n });\n };\n\n return (\n \n
{Resources.ConnectEmailAccountToSendAndReceiveMailFromWorkspace}
\n\n setRemoteEmail(e.target.value)}\n />\n\n \n\n
\n\n {emailSettingsView === PerspectiveEmailSettingsViews.PREFERENCES_OVERVIEW && (\n \n

{Resources.DeliveryPreferences}

\n\n \n \n \n \n \n \n \n \n \n \n \n
{Resources.IncomingMail.toLocaleUpperCase()}\n {incomingEmailOption.displayName}\n setEmailSettingsView(PerspectiveEmailSettingsViews.EDIT_INCOMING_MAIL)}\n height={18}\n className=\"email-types__edit\"\n />\n
{Resources.OutgoingMail.toLocaleUpperCase()}\n {getOutgoingEmailOptionDisplayName(configType)}\n setEmailSettingsView(PerspectiveEmailSettingsViews.EDIT_OUTGOING_MAIL)}\n height={18}\n className=\"email-types__edit\"\n />\n
\n
\n )}\n\n {emailSettingsView === PerspectiveEmailSettingsViews.EDIT_INCOMING_MAIL && (\n \n

{Resources.EditIncomingEmailDelivery}

\n {}}\n onCancel={() => setEmailSettingsView(PerspectiveEmailSettingsViews.PREFERENCES_OVERVIEW)}\n />\n
\n )}\n\n {emailSettingsView === PerspectiveEmailSettingsViews.EDIT_OUTGOING_MAIL && (\n \n setEmailSettingsView(PerspectiveEmailSettingsViews.PREFERENCES_OVERVIEW)}\n allEmailConfigTypes={allEmailConfigTypes}\n setCompanyEmailConfig={setCompanyEmailConfig}\n />\n \n )}\n \n );\n};\n\nconst EmailForm = connect(null, dispatch => ({\n ...maDP(dispatch),\n ...caDP(dispatch),\n ...coaDP(dispatch),\n ...eaDP(dispatch),\n ...raDP(dispatch)\n}))(EmailFormComponent);\n\nexport default EmailForm;\n","import React, { useEffect, useState } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { dispatchToProps as paDP } from \"../../../../../store/perspectives-actions\";\nimport { dispatchToProps as uaDP } from \"../../../../../store/user-actions\";\nimport { dispatchToProps as gaDP } from \"../../../../../store/general-actions\";\nimport Resources from \"../../../../../lib/resources\";\nimport IconClose from \"../../../../library/icons/iconClose\";\nimport IconAngleLeft from \"../../../../library/icons/iconAngleLeft\";\nimport { SettingsViews } from \"../settingsControllerFlyout\";\nimport PerspectiveEmailSettings from \"./perspectiveEmailSettings\";\nimport { getPartnerType } from \"../../../../../lib/perspectives\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...paDP(dispatch),\n ...uaDP(dispatch),\n ...gaDP(dispatch)\n };\n};\n\nconst getDefaultPerspective = store => {\n const perspectives = store.perspectives.companyPerspectives;\n\n return (\n perspectives.find(({ perspectiveId }) => perspectiveId === store.user.userConfig.defaultPerspective) ||\n perspectives[0]\n );\n};\n\nconst EmailSettings = ({ hideFlyout, setSettingsView, getUserConfig }) => {\n const companyId = useSelector(store => store.accounts.selectedCompany.companyId);\n const perspectives = useSelector(store => store.perspectives.companyPerspectives);\n const defaultPerspective = useSelector(getDefaultPerspective);\n\n useEffect(() => {\n getUserConfig();\n }, [getUserConfig]);\n\n const [selectedPerspective, setSelectedPerspective] = useState(defaultPerspective);\n\n return (\n \n
\n setSettingsView(SettingsViews.SETTINGS)} className=\"settings-flyout__back\" />\n

{Resources.EmailSettings}

\n
\n \n
\n
\n\n
\n {perspectives.map((perspective, i) => (\n setSelectedPerspective(perspective)}\n key={i}\n >\n {getPartnerType(perspective.perspectiveName, true)}\n
\n ))}\n
\n
\n \n \n );\n};\n\nexport default withRouter(connect(null, dispatchToProps)(EmailSettings));\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { getUserConfig } from \"../../../../store/user-actions\";\nimport { deleteCommunicationTemplate } from \"../../../../store/manage-actions\";\nimport Resources from \"../../../../lib/resources\";\nimport IconClose from \"../../../library/icons/iconClose\";\nimport IconAngleLeft from \"../../../library/icons/iconAngleLeft\";\nimport IconPlusCircle from \"../../../library/icons/iconPlusCircle\";\nimport { SettingsViews } from \"./settingsControllerFlyout\";\nimport { getPartnerType } from \"../../../../lib/perspectives\";\nimport TableData from \"../../../library/tableData\";\nimport ReplyTemplateForm from \"../../../replyTemplateForm\";\nimport { displayNotification } from \"../../../../store/modal-actions\";\nimport useSWR, { mutate } from \"swr\";\nimport { swrFetcher } from \"../../../../lib/data\";\nimport Card from \"../../../library/card\";\n\nconst getDefaultPerspective = store => {\n const perspectives = store.perspectives.companyPerspectives;\n\n return (\n perspectives.find(({ perspectiveId }) => perspectiveId === store.user.userConfig.defaultPerspective) ||\n perspectives[0]\n );\n};\n\nconst TemplateViews = {\n LIST: \"list\",\n EDIT: \"edit\",\n NEW: \"new\"\n};\n\nconst Templates = ({ hideFlyout, setSettingsView }) => {\n const companyId = useSelector(store => store.accounts.selectedCompany.companyId);\n const perspectives = useSelector(store => store.perspectives.companyPerspectives);\n const defaultPerspective = useSelector(getDefaultPerspective);\n const dispatch = useDispatch();\n\n const [[templatesView, currentTemplate], setTemplatesView] = useState([TemplateViews.LIST, null]);\n const [selectedPerspective, setSelectedPerspective] = useState(defaultPerspective);\n\n const perspectiveId = selectedPerspective.perspectiveId;\n\n const templateDataKey = `v2/api/sequence/templates/${companyId}/${perspectiveId}`;\n const templates = useSWR(templateDataKey, swrFetcher);\n const gettingTemplates = templates.data === undefined;\n\n useEffect(() => {\n dispatch(getUserConfig());\n }, [dispatch]);\n\n switch (templatesView) {\n case TemplateViews.LIST:\n return (\n \n
\n setSettingsView(SettingsViews.SETTINGS)} className=\"settings-flyout__back\" />\n

{Resources.Templates}

\n
\n \n
\n
\n\n
\n {perspectives.map((perspective, i) => (\n setSelectedPerspective(perspective)}\n key={i}\n >\n {getPartnerType(perspective.perspectiveName, true)}\n
\n ))}\n
\n
\n\n
{Resources.CreateTemplateToSendReplies}
\n setTemplatesView([TemplateViews.NEW, null])}\n className=\"button-primary bg-white\"\n style={{ marginBottom: \"2rem\" }}\n >\n \n {Resources.AddTemplate}\n \n\n \n setTemplatesView([TemplateViews.EDIT, template])}\n columns={[\n {\n header: Resources.TemplateName.toLocaleUpperCase(),\n width: \"75%\",\n content: template => template.emailTemplateDesc\n },\n {\n header: Resources.LastEdited.toLocaleUpperCase(),\n content: ({ updateDate }) => moment(updateDate).format(\"MMM D, YYYY\"),\n width: \"15%\"\n },\n {\n content: ({ emailTemplateKey }) => (\n {\n e.stopPropagation();\n dispatch(deleteCommunicationTemplate(companyId, emailTemplateKey)).then(() =>\n mutate(templateDataKey)\n );\n dispatch(displayNotification(\"deletingTemplate\"));\n }}\n >\n {Resources.Delete}\n \n )\n }\n ]}\n rowHeight=\"4rem\"\n />\n \n \n );\n case TemplateViews.EDIT:\n return (\n \n
\n setTemplatesView([TemplateViews.LIST, null])}\n className=\"settings-flyout__back\"\n />\n

{Resources.EditTemplate}

\n
\n \n
\n
\n setTemplatesView([TemplateViews.LIST, null])}\n />\n
\n );\n case TemplateViews.NEW:\n return (\n \n
\n setTemplatesView([TemplateViews.LIST, null])}\n className=\"settings-flyout__back\"\n />\n

{Resources.AddTemplate}

\n
\n \n
\n
\n {\n setTemplatesView([TemplateViews.LIST, null]);\n mutate(templateDataKey);\n }}\n />\n
\n );\n default:\n break;\n }\n};\n\nexport default Templates;\n","import React, { Component } from \"react\";\nimport { postUserUpdate } from \"../../../../store/user-actions\";\nimport { dispatchToProps as modDP } from \"../../../../store/modal-actions\";\nimport { useDispatch } from \"react-redux\";\nimport Resources from \"../../../../lib/resources\";\nimport { isEmpty } from \"../../../../lib/utils\";\n\nimport TextInput from \"./../../../library/textInput\";\nimport { connect } from \"react-redux\";\n\nimport IconAngleLeft from \"../../../library/icons/iconAngleLeft\";\nimport { SettingsViews } from \"./settingsControllerFlyout\";\nimport IconClose from \"../../../library/icons/iconClose\";\nimport MainLoader from \"../../../mainLoader\";\n\n/*function SignInSecurity(props) {\n const dispatch = useDispatch();\n //return ;\n}\nexport default SignInSecurity;*/\n\nconst dispatchToProps = dispatch => {\n return {\n postUserUpdate: config => dispatch(postUserUpdate(config)),\n ...modDP(dispatch)\n };\n};\n\nclass SignInSecurity extends Component {\n constructor(props) {\n super(props);\n this.state = {\n newPassword: \"\",\n oldPassword: \"\",\n confirmPassword: \"\"\n };\n\n this.save = this.save.bind(this);\n }\n\n save() {\n const { oldPassword, newPassword } = this.state;\n this.props.postUserUpdate({ oldPassword, newPassword, userName: this.props.userName });\n }\n\n render() {\n return (\n \n
\n this.props.setSettingsView(SettingsViews.SETTINGS)}\n className=\"settings-flyout__back\"\n />\n

{Resources.SignInAndSecurity}

\n
\n \n
\n
\n\n
\n
\n \n {this.props.updatingUserStatus === \"fetching\" && }\n {this.props.updatingUserStatus !== \"fetching\" && (\n \n {\n this.setState({ oldPassword: e.target.value });\n }}\n />\n {\n this.setState({ newPassword: e.target.value });\n }}\n />\n {\n this.setState({ confirmPassword: e.target.value });\n }}\n />\n\n
\n \n {Resources.Save}\n \n
\n
\n )}\n
\n
\n
\n );\n }\n}\nconst storeToProps = store => {\n return {\n accountsStore: store.accounts,\n modalStore: store.modal,\n userLoginEmail: store.user.decoded.email,\n userName: store.user.decoded.preferred_username,\n updatingUserStatus: store.user.updatingUserStatus\n };\n};\n\nexport default connect(storeToProps, dispatchToProps)(SignInSecurity);\n","import React, { useEffect, useState } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { dispatchToProps as paDP } from \"../../../../store/perspectives-actions\";\nimport { dispatchToProps as uaDP } from \"../../../../store/user-actions\";\nimport { dispatchToProps as gaDP } from \"../../../../store/general-actions\";\nimport { dispatchToProps as accDP } from \"../../../../store/accounts-actions\";\nimport MainLoader from \"../../../mainLoader\";\nimport Resources from \"../../../../lib/resources\";\nimport IconClose from \"../../../library/icons/iconClose\";\nimport IconAngleLeft from \"../../../library/icons/iconAngleLeft\";\nimport { SettingsViews } from \"./settingsControllerFlyout\";\nimport ManageCompanyUsers from \"../../../manageCompanyUsers\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...paDP(dispatch),\n ...uaDP(dispatch),\n ...gaDP(dispatch),\n ...accDP(dispatch)\n };\n};\n\nconst UserPermissionSettings = ({ hideFlyout, setSettingsView, getUserConfig, fetchCompanyUserRoles, isCompanyAdmin }) => {\n const companyId = useSelector(store => store.accounts.selectedCompany.companyId);\n const gettingCompanyRoles = useSelector(store => store.accounts.gettingCompanyRoles);\n const fetchedUsers = useSelector(store => store.user.fetchedUsers);\n\n useEffect(() => {\n getUserConfig();\n fetchCompanyUserRoles(companyId);\n }, [getUserConfig, fetchCompanyUserRoles, companyId]);\n\n const isLoading = gettingCompanyRoles || !fetchedUsers;\n\n return (\n \n {\n isLoading ? (\n \n ) : (\n
\n
\n setSettingsView(SettingsViews.SETTINGS)} className=\"settings-flyout__back\" />\n

{Resources.CompanyUsersAndPermissions}

\n
\n \n
\n
\n\n \n
\n )\n }\n
\n );\n};\n\nexport default withRouter(connect(null, dispatchToProps)(UserPermissionSettings));\n","import React, { useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\nimport { dispatchToProps as modDP } from \"../../../../store/modal-actions\";\nimport Modal from \"react-modal\";\nimport SettingsNavigator from \"./settingsNavigator\";\nimport WorkspacePreferences from \"./workspacePreferences\";\nimport SummaryEmailPreferences from \"./summaryEmailPreferences\";\nimport EmailSettings from \"./emailSettings/emailSettings\";\nimport Templates from \"./templates\";\nimport SignInSecurity from \"./signInSecurity\";\nimport UserPermissionSettings from \"./userPermissionSettings\";\n\nexport const SettingsViews = {\n SETTINGS: \"settings\",\n SIGN_IN_SECURITY: \"sign_in_security\",\n WORKSPACE_PREFERENCES: \"workspace_preferences\",\n SUMMARY_EMAIL_PREFERENCES: \"summary_email_preferences\",\n EMAIL_SETTINGS: \"email_settings\",\n TEMPLATES: \"templates\",\n ACCOUNTING_SOFTWARE_SETTINGS: \"accounting_software_settings\",\n USER_PERMISSION_SETTINGS: \"user_permission_settings\"\n};\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch),\n ...modDP(dispatch)\n});\n\nconst Settings = ({ hideFlyout, flags }) => {\n const [showFlyout, setShowFlyout] = useState(true);\n const [settingsView, setSettingsView] = useState(\"settings\");\n\n const requestClose = () => setShowFlyout(false);\n\n const renderSettingsView = view => {\n switch (view) {\n case SettingsViews.SETTINGS:\n return ;\n case SettingsViews.SIGN_IN_SECURITY:\n return ;\n case SettingsViews.WORKSPACE_PREFERENCES:\n return ;\n case SettingsViews.SUMMARY_EMAIL_PREFERENCES:\n return ;\n case SettingsViews.EMAIL_SETTINGS:\n return ;\n case SettingsViews.TEMPLATES:\n return ;\n case SettingsViews.USER_PERMISSION_SETTINGS:\n return ;\n default:\n throw new Error(`Unexpected view: ${view}`);\n }\n };\n\n return (\n \n {renderSettingsView(settingsView)}\n \n );\n};\n\nconst storeToProps = store => {\n return {\n networkStore: store.network,\n modalStore: store.modal\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(Settings));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps } from \"../store/general-actions\";\n\nimport MessageFlyout from \"./customer_portal/messageFlyout\";\nimport MakePaymentFlyout from \"./customer_portal/makePaymentFlyout\";\nimport DisputeFlyout from \"./customer_portal/flyouts/disputeFlyout\";\nimport PromiseToPayFlyout from \"./customer_portal/flyouts/promiseToPayFlyout\";\nimport ContactFlyout from \"./customer_portal/flyouts/contactFlyout\";\nimport ApplyPaymentFlyout from \"./customer_portal/flyouts/applyPaymentFlyout\";\nimport ManageAutoPayFlyout from \"./customer_portal/flyouts/manageAutoPayFlyout\";\nimport PaymentsFlyout from \"./customer_portal/flyouts/paymentsFlyout\";\nimport InvoicesFlyout from \"./customer_portal/flyouts/invoicesFlyout\";\nimport ProfileUpdateRequestFlyout from \"./lockstep/flyouts/profileUpdateRequestFlyout\";\n\nimport Modal from \"react-modal\";\nimport ShareFlyout from \"./lockstep/flyouts/shareFlyout\";\nimport NewActivityFlyout from \"./lockstep/flyouts/newActivityFlyout\";\nimport MyProfileView from \"./lockstep/views/profileManagement/myProfileView\";\nimport CompanyProfileView from \"./lockstep/views/profileManagement/companyProfileView\";\nimport AddContactFlyout from \"./lockstep/flyouts/addContactFlyout\";\nimport SettingsFlyout from \"./lockstep/views/settings/settingsControllerFlyout\";\n\nclass FlyoutManager extends Component {\n render() {\n if (this.props.modal.showFlyout === false) {\n return null;\n }\n\n Modal.setAppElement(document.getElementById(\"root\"));\n\n switch (this.props.modal.flyoutType) {\n case \"messageFlyout\":\n return ;\n case \"makePaymentFlyout\":\n return ;\n case \"disputeFlyout\":\n return ;\n case \"promiseToPayFlyout\":\n return ;\n case \"addContactFlyout\":\n return ;\n case \"contactFlyout\":\n return ;\n case \"applyPaymentFlyout\":\n return ;\n case \"manageAutoPayFlyout\":\n return ;\n case \"profileUpdateRequestFlyout\":\n return ;\n case \"shareFlyout\":\n return ;\n case \"myProfileView\":\n return ;\n case \"companyProfileView\":\n return ;\n case \"paymentsFlyout\":\n return ;\n case \"invoicesFlyout\":\n return ;\n case \"newActivityFlyout\":\n return ;\n case \"settingsFlyout\":\n return ;\n default:\n return null;\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n modal: store.modal\n };\n};\n\nexport default connect(storeToProps, dispatchToProps)(FlyoutManager);\n","import React, { Component } from \"react\";\n\nclass IconSpinner extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n
\n );\n }\n}\n\nIconSpinner.defaultProps = {\n height: 24\n};\n\nexport default IconSpinner;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps } from \"../../store/modal-actions\";\nimport Resources from \"../../lib/resources\";\n\nimport IconSpinner from \"../library/icons/iconSpinner\";\nimport IconCheck from \"../library/icons/iconCheck\";\nimport IconAlertCircle from \"../library/icons/iconAlertCircle\";\n\nclass UploadNotification extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n address: \"\",\n isValidAddress: false\n };\n }\n\n componentDidUpdate(prevProps) {\n if (\n (this.props.uploadedDocument === true && prevProps.uploadedDocument === false) ||\n (this.props.uploadDocumentFailed === true && prevProps.uploadDocumentFailed === false)\n ) {\n setTimeout(this.props.hideNotification, 5000);\n }\n }\n\n render() {\n let { uploadingDocument, uploadedDocument, uploadDocumentFailed } = this.props;\n\n let content = \"TEST\";\n if (uploadingDocument) {\n content = (\n \n \n
{Resources.DocumentUploading}
\n
\n );\n }\n if (uploadedDocument) {\n content = (\n \n \n
{Resources.DocumentUploaded}
\n
\n );\n }\n if (uploadDocumentFailed) {\n content = (\n \n \n
{Resources.DocumentFailedToUpload}
\n
\n );\n }\n return
{content}
;\n }\n}\n\nconst storeToProps = store => {\n return {\n uploadingDocument: store.ledger.uploadingDocument,\n uploadedDocument: store.ledger.uploadedDocument,\n uploadDocumentFailed: store.ledger.uploadDocumentFailed\n };\n};\n\nexport default connect(\n storeToProps,\n dispatchToProps\n)(UploadNotification);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps } from \"../../store/modal-actions\";\nimport Resources from \"../../lib/resources\";\n\nimport IconCheck from \"../library/icons/iconCheck\";\nimport IconAlertCircle from \"../library/icons/iconAlertCircle\";\nimport IconSpinner from \"../library/icons/iconSpinner\";\n\nclass ExportNotification extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n address: \"\",\n isValidAddress: false\n };\n }\n\n componentDidUpdate(prevProps) {\n if (\n (this.props.exportedTable === true && prevProps.exportedTable === false) ||\n (this.props.exportTableFailed === true && prevProps.exportTableFailed === false)\n ) {\n setTimeout(this.props.hideNotification, 5000);\n }\n }\n\n render() {\n let { exportingTable, exportedTable, exportTableFailed } = this.props;\n\n let content;\n if (exportingTable) {\n content = (\n \n \n
{Resources.ExportingTable}
\n
\n );\n }\n if (exportedTable) {\n content = (\n \n \n
{Resources.ExportComplete}
\n
\n );\n }\n if (exportTableFailed) {\n content = (\n \n \n
{Resources.ExportTableFailed}
\n
\n );\n }\n return
{content}
;\n }\n}\n\nconst storeToProps = store => {\n return {\n exportingTable: store.statements.fetchingExportTable,\n exportedTable: store.statements.fetchedExportTable,\n exportTableFailed: store.statements.failedFetchExportTable\n };\n};\n\nexport default connect(\n storeToProps,\n dispatchToProps\n)(ExportNotification);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps } from \"../../store/modal-actions\";\nimport Resources from \"../../lib/resources\";\n\nimport IconCheck from \"../library/icons/iconCheck\";\nimport IconAlertCircle from \"../library/icons/iconAlertCircle\";\nimport IconSpinner from \"../library/icons/iconSpinner\";\n\nclass CreatingDisputeNotification extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n address: \"\",\n isValidAddress: false\n };\n }\n\n componentDidUpdate(prevProps) {\n if (\n (this.props.createdDispute === true && prevProps.createdDispute === false) ||\n (this.props.createDisputeFailed === true && prevProps.createDisputeFailed === false)\n ) {\n setTimeout(this.props.hideNotification, 5000);\n }\n }\n\n render() {\n let { creatingDispute, createdDispute, createDisputeFailed } = this.props;\n\n let content;\n if (creatingDispute) {\n content = (\n \n \n
{Resources.SubmittingDispute}
\n
\n );\n }\n if (createdDispute) {\n content = (\n \n \n
{Resources.DisputeSubmitted}
\n
\n );\n }\n if (createDisputeFailed) {\n content = (\n \n \n
{Resources.FailedSubmittingDispute}
\n
\n );\n }\n return
{content}
;\n }\n}\n\nconst storeToProps = store => {\n return {\n creatingDispute: store.ledger.creatingEntry,\n createdDispute: store.ledger.createdEntry,\n createDisputeFailed: store.ledger.createEntryFailed\n };\n};\n\nexport default connect(\n storeToProps,\n dispatchToProps\n)(CreatingDisputeNotification);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps } from \"../../store/modal-actions\";\nimport Resources from \"../../lib/resources\";\n\nimport IconCheck from \"../library/icons/iconCheck\";\nimport IconAlertCircle from \"../library/icons/iconAlertCircle\";\nimport IconSpinner from \"../library/icons/iconSpinner\";\n\nclass CreatingPromiseToPayNotification extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n address: \"\",\n isValidAddress: false\n };\n }\n\n componentDidUpdate(prevProps) {\n if (\n (this.props.createdPromiseToPay === true && prevProps.createdPromiseToPay === false) ||\n (this.props.createPromiseToPayFailed === true && prevProps.createPromiseToPayFailed === false)\n ) {\n setTimeout(this.props.hideNotification, 5000);\n }\n }\n\n render() {\n let { creatingPromiseToPay, createdPromiseToPay, createPromiseToPayFailed } = this.props;\n\n let content;\n if (creatingPromiseToPay) {\n content = (\n \n \n
{Resources.SubmittingPromiseToPay}
\n
\n );\n }\n if (createdPromiseToPay) {\n content = (\n \n \n
{Resources.PromiseToPaySubmitted}
\n
\n );\n }\n if (createPromiseToPayFailed) {\n content = (\n \n \n
{Resources.FailedSubmittingPromiseToPay}
\n
\n );\n }\n return
{content}
;\n }\n}\n\nconst storeToProps = store => {\n return {\n creatingPromiseToPay: store.ledger.creatingEntry,\n createdPromiseToPay: store.ledger.createdEntry,\n createPromiseToPayFailed: store.ledger.createEntryFailed\n };\n};\n\nexport default connect(\n storeToProps,\n dispatchToProps\n)(CreatingPromiseToPayNotification);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps } from \"../../store/modal-actions\";\nimport Resources from \"../../lib/resources\";\n\nimport IconCheck from \"../library/icons/iconCheck\";\nimport IconAlertCircle from \"../library/icons/iconAlertCircle\";\nimport IconSpinner from \"../library/icons/iconSpinner\";\n\nclass DownloadNotification extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n address: \"\",\n isValidAddress: false\n };\n }\n\n componentDidUpdate(prevProps) {\n if (\n (this.props.downloaded === true && prevProps.downloaded === false) ||\n (this.props.failedDownload === true && prevProps.failedDownload === false)\n ) {\n setTimeout(this.props.hideNotification, 5000);\n }\n }\n\n render() {\n let { downloading, downloaded, failedDownload } = this.props;\n\n let content;\n if (downloading) {\n content = (\n \n \n
{Resources.DownloadInProgress}
\n
\n );\n }\n if (downloaded) {\n content = (\n \n \n
{Resources.DownloadComplete}
\n
\n );\n }\n if (failedDownload) {\n content = (\n \n \n
{Resources.DownloadFailed}
\n
\n );\n }\n return
{content}
;\n }\n}\n\nconst storeToProps = store => {\n return {\n downloading: store.ledger.gettingAttachmentsZip,\n downloaded: store.ledger.gotAttachmentsZip,\n failedDownload: store.ledger.getAttachmentsZipFailed\n };\n};\n\nexport default connect(\n storeToProps,\n dispatchToProps\n)(DownloadNotification);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps } from \"../../store/modal-actions\";\nimport Resources from \"../../lib/resources\";\n\nimport IconCheck from \"../library/icons/iconCheck\";\nimport IconAlertCircle from \"../library/icons/iconAlertCircle\";\nimport IconSpinner from \"../library/icons/iconSpinner\";\n\nclass ContactSubmittingNotification extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n address: \"\",\n isValidAddress: false\n };\n }\n\n componentDidUpdate(prevProps) {\n if (\n (this.props.submitted === true && prevProps.submitted === false) ||\n (this.props.failed === true && prevProps.failed === false)\n ) {\n setTimeout(this.props.hideNotification, 5000);\n }\n }\n\n render() {\n let { submitting, submitted, failed } = this.props;\n\n let content;\n if (submitting) {\n content = (\n \n \n
{Resources.ContactSubmitting}
\n
\n );\n }\n if (submitted) {\n content = (\n \n \n
{Resources.ContactSubmitted}
\n
\n );\n }\n if (failed) {\n content = (\n \n \n
{Resources.ContactSubmitFailed}
\n
\n );\n }\n return
{content}
;\n }\n}\n\nconst storeToProps = (store, ownProps) => {\n const { isNew } = ownProps;\n return {\n submitting: isNew ? store.manage.puttingAddressBookContact : store.manage.postingAddressBookContact,\n submitted: isNew ? store.manage.putAddressBookContact : store.manage.postedAddressBookContact,\n failed: isNew ? store.manage.failedPutAddressBookContact : store.manage.failedPostAddressBookContact\n };\n};\n\nexport default connect(\n storeToProps,\n dispatchToProps\n)(ContactSubmittingNotification);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps } from \"../../store/modal-actions\";\n\nimport IconCheck from \"../library/icons/iconCheck\";\nimport IconAlertCircle from \"../library/icons/iconAlertCircle\";\nimport IconSpinner from \"../library/icons/iconSpinner\";\n\nclass ActionNotification extends Component {\n componentDidUpdate(prevProps) {\n const { actionComplete, actionPending, actionFailed } = this.props;\n if (\n (actionComplete === true && prevProps.actionComplete === false) ||\n (actionFailed === true && prevProps.actionFailed === false)\n ) {\n setTimeout(() => this.props.hideNotification(), 5000);\n }\n\n if (actionComplete === false && actionFailed === false && actionPending === false) {\n this.props.hideNotification();\n }\n }\n\n render() {\n let {\n actionPending,\n actionComplete,\n actionFailed,\n actionPendingText,\n actionCompleteText,\n actionFailedText\n } = this.props;\n\n let content;\n if (actionPending) {\n content = (\n \n \n
{actionPendingText}
\n
\n );\n }\n if (actionComplete) {\n content = (\n \n \n
{actionCompleteText}
\n
\n );\n }\n if (actionFailed) {\n content = (\n \n \n
{actionFailedText}
\n
\n );\n }\n return (\n
\n {content}\n
\n );\n }\n}\n\nconst storeToProps = (store, ownProps) => {\n return {};\n};\n\nexport default connect(storeToProps, dispatchToProps)(ActionNotification);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps } from \"../store/general-actions\";\n\nimport UploadNotification from \"./notifications/uploadNotification\";\nimport ExportNotification from \"./notifications/exportNotification\";\nimport CreatingDisputeNotification from \"./notifications/creatingDisputeNotification\";\nimport CreatingPromiseToPayNotification from \"./notifications/creatingPromiseToPayNotification\";\nimport DownloadNotification from \"./notifications/downloadNotification\";\nimport ContactSubmittingNotification from \"./notifications/contactSubmittingNotification\";\nimport ActionNotification from \"./notifications/actionNotification\";\nimport Resources from \"../lib/resources\";\n\nclass NotificationManager extends Component {\n render() {\n let { manageStore, ledgerStore, statementsStore, networkStore, conversationsStore, connectorStore, userStore } = this.props;\n\n // This value is set to false when the HIDE_NOTIFICATION modal action is dispatched, which causes the notification manager to no longer \n // render anything\n if (this.props.modal.showNotification === false) {\n return null;\n }\n\n switch (this.props.modal.notificationType) {\n case \"uploadNotification\":\n return ;\n case \"exportNotification\":\n return ;\n case \"creatingDisputeNotification\":\n return ;\n case \"creatingPromiseToPayNotification\":\n return ;\n case \"downloadNotification\":\n return ;\n case \"contactSubmittingNotification\":\n return ;\n case \"profileUpdateRequestSentNotification\":\n return (\n \n );\n case \"uploadingImageNotification\":\n return (\n \n );\n case \"contactMarkedPrivateNotification\":\n return (\n \n );\n case \"deletingDocumentNotification\":\n return (\n \n );\n case \"uploadingDocumentNotification\":\n return (\n \n );\n case \"addingContactNotification\":\n return (\n \n );\n case \"markingAsPrimaryNotification\":\n return (\n \n );\n case \"addingContactSendingUpdateRequestNotification\":\n return (\n \n );\n case \"copyToClipboardNotification\":\n return (\n \n );\n case \"savingConnectorConfiguration\":\n return (\n \n );\n case \"archiveProfileNotification\":\n return (\n \n );\n case \"unArchiveProfileNotification\":\n return (\n \n );\n case \"archiveContactNotification\":\n return (\n \n );\n case \"unArchiveContactNotification\":\n return (\n \n );\n case \"updatedContactStatusNotification\":\n return (\n \n );\n case \"addingPaymentMethodNotification\":\n return (\n \n );\n case \"sendingMessageNotification\":\n return (\n \n );\n case \"creatingNoteNotification\":\n return (\n \n );\n case \"forwardingMessageNotification\":\n return (\n \n );\n case \"deleteContactNotification\":\n return (\n \n );\n case \"sendProfileUpdateRequestNotifiation\":\n return (\n \n );\n case \"assigningConversation\":\n return (\n \n );\n case \"markingConversationRead\":\n return (\n \n );\n case \"markingConversationUnread\":\n return (\n \n );\n case \"closingConversations\":\n return (\n \n );\n case \"activatingConversations\":\n return (\n \n );\n case \"markingConversationAsSpam\":\n return (\n \n );\n case \"snoozingActivity\":\n return (\n \n );\n case \"deletingTemplate\":\n console.log(manageStore);\n return (\n \n );\n case \"updatingUserConfigNotification\":\n return (\n \n );\n default:\n return null;\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n modal: store.modal,\n manageStore: store.manage,\n ledgerStore: store.ledger,\n statementsStore: store.statements,\n networkStore: store.network,\n conversationsStore: store.conversations,\n connectorStore: store.connector,\n userStore: store.user\n };\n};\n\nexport default connect(storeToProps, dispatchToProps)(NotificationManager);\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport EmailAddress from \"../emailAddress\";\r\nimport { removeAt, isEmpty, isEmailValid, deepCompare, find, includes, compareStrings } from \"../../lib/utils\";\r\nimport Icons from \"../../lib/icons\";\r\n\r\nimport { dispatchToProps } from \"../../store/error-actions\";\r\n\r\nclass PartnerAdder extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n filtering: false,\r\n adding: false,\r\n partnerList: [],\r\n filter: \"\"\r\n };\r\n\r\n this.handleKeyPress = this.handleKeyPress.bind(this);\r\n this.handleKeyDown = this.handleKeyDown.bind(this);\r\n this.validateAndAdd = this.validateAndAdd.bind(this);\r\n this.getFilteredContacts = this.getFilteredContacts.bind(this);\r\n this.handleFocus = this.handleFocus.bind(this);\r\n this.stopAdding = this.stopAdding.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.tryUpdate();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n this.tryUpdate(prevProps, prevState);\r\n }\r\n\r\n tryUpdate(prevProps, prevState) {\r\n let changed = isEmpty(prevProps);\r\n\r\n let state = {};\r\n if (\r\n this.props.startAdding === true &&\r\n (isEmpty(prevProps) ||\r\n prevProps.startAdding !== true ||\r\n (this.props.addedPartners.length === 0 && this.state.adding === false))\r\n ) {\r\n state.adding = true;\r\n changed = true;\r\n }\r\n\r\n let { partnerList } = this.props;\r\n\r\n if (changed || deepCompare(partnerList, prevProps.partnerList) !== 0) {\r\n state = { ...state, partnerList };\r\n changed = true;\r\n }\r\n\r\n if (changed) {\r\n this.setState(state);\r\n }\r\n\r\n if (this.state.adding === true && prevState.adding !== true && this.inputRef) {\r\n this.inputRef.focus();\r\n }\r\n }\r\n\r\n onSelect(selected) {\r\n let addedPartners = [...this.props.addedPartners];\r\n let found = find(this.props.addedPartners, c => {\r\n return c.companyName === selected.companyName;\r\n });\r\n if (!found) {\r\n addedPartners.push(selected);\r\n }\r\n this.setState({ filter: \"\", adding: false, invalidFormat: false });\r\n this.onChanged(addedPartners);\r\n }\r\n\r\n removePartner(index) {\r\n let addedPartners = removeAt(this.props.addedPartners, index);\r\n this.onChanged(addedPartners);\r\n }\r\n\r\n onChanged(addedPartners) {\r\n let { onChanged } = this.props;\r\n if (onChanged) onChanged(addedPartners);\r\n }\r\n\r\n onFilterChanged(e) {\r\n this.setState({ filter: e.target.value });\r\n }\r\n\r\n handleKeyPress(e) {\r\n switch (e.key) {\r\n case \"Enter\":\r\n this.validateAndAdd(e);\r\n break;\r\n default:\r\n this.setState({ invalidFormat: false });\r\n break;\r\n }\r\n }\r\n\r\n validateAndAdd(e) {\r\n let address = e.target.value.trim();\r\n let newEmail = {\r\n name: \"\",\r\n address: address,\r\n isValid: isEmailValid(address),\r\n isEmpty: isEmpty(address)\r\n };\r\n\r\n let hasRequiredEmail =\r\n this.props.startAdding !== true || (this.props.startAdding === true && this.props.addedPartners.length > 0);\r\n\r\n if (this.getFilteredContacts().length === 0) {\r\n if (newEmail.isEmpty) {\r\n if (hasRequiredEmail) {\r\n this.stopAdding();\r\n }\r\n } else {\r\n if (newEmail.isValid) {\r\n this.onSelect(newEmail);\r\n } else {\r\n this.setState({ invalidFormat: true });\r\n }\r\n }\r\n } else {\r\n if (isEmpty(this.interval)) {\r\n this.interval = setInterval(() => {\r\n clearInterval(this.interval);\r\n this.interval = undefined;\r\n if (this.state.filtering === true) {\r\n this.setState({ filtering: false });\r\n }\r\n }, 250);\r\n }\r\n if (newEmail.isValid !== true && newEmail.isEmpty !== true) {\r\n this.setState({ invalidFormat: true });\r\n }\r\n }\r\n }\r\n\r\n stopAdding() {\r\n this.setState({ adding: false, filter: \"\", filtering: false });\r\n }\r\n\r\n handleKeyDown(e) {\r\n switch (e.key) {\r\n case \"Escape\":\r\n this.stopAdding();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n getFilteredContacts() {\r\n let filtered = [];\r\n let partnerList = [...(this.state.partnerList || [])];\r\n\r\n if (this.state.adding) {\r\n if (this.state.filter.trim() === \"\") {\r\n filtered = partnerList;\r\n } else {\r\n filtered = partnerList.filter(p => {\r\n return includes((p.companyName || \"\").toLocaleLowerCase(), this.state.filter.toLocaleLowerCase());\r\n });\r\n }\r\n }\r\n filtered.sort((a, b) => {\r\n let aStart = a.companyName.toLocaleLowerCase().startsWith(this.state.filter.toLocaleLowerCase());\r\n let bStart = b.companyName.toLocaleLowerCase().startsWith(this.state.filter.toLocaleLowerCase());\r\n if (aStart && !bStart) {\r\n return -1;\r\n }\r\n if (!aStart && bStart) {\r\n return 1;\r\n }\r\n return compareStrings(a.companyName, b.companyName);\r\n });\r\n\r\n return filtered.slice(0, 4);\r\n }\r\n\r\n handleFocus() {\r\n this.setState({ filtering: true, invalidFormat: false });\r\n }\r\n\r\n render() {\r\n let include =\r\n this.state.filtering !== true\r\n ? []\r\n : this.getFilteredContacts().map((c, index) => {\r\n return (\r\n {\r\n this.onSelect(c);\r\n }}\r\n style={{ cursor: \"default\" }}\r\n >\r\n {c.companyName}\r\n
\r\n );\r\n });\r\n\r\n return (\r\n \r\n
\r\n {this.props.addedPartners.map((p, index) => {\r\n return (\r\n {\r\n this.removePartner(index);\r\n }}\r\n />\r\n );\r\n })}\r\n
\r\n\r\n {this.state.adding ? (\r\n \r\n (this.inputRef = input)}\r\n className=\"dropdown-toggle email-input\"\r\n onChange={e => {\r\n this.onFilterChanged(e);\r\n }}\r\n onKeyPress={this.handleKeyPress}\r\n onKeyDown={this.handleKeyDown}\r\n onBlur={this.stopAdding}\r\n onFocus={this.handleFocus}\r\n role=\"button\"\r\n data-toggle=\"collapse\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"true\"\r\n />\r\n {include.length === 0 ? null : (\r\n \r\n {include}\r\n \r\n )}\r\n \r\n ) : (\r\n {\r\n this.setState({ adding: true });\r\n }}\r\n />\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {\r\n errorStore: store.error\r\n };\r\n};\r\n\r\nexport default connect(\r\n storeToProps,\r\n dispatchToProps\r\n)(PartnerAdder);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport moment from \"moment\";\r\nimport _ from \"lodash\";\r\nimport qs from \"qs\";\r\n\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport Resources from \"../lib/resources\";\r\nimport Icons from \"../lib/icons\";\r\nimport { isEmpty, getQueryParameters, find, includes } from \"../lib/utils\";\r\nimport { getPartnerType } from \"../lib/perspectives\";\r\n\r\nimport PartnerAdder from \"./library/partnerAdder\";\r\nimport TabularData from \"./library/tabularData\";\r\n\r\nimport { dispatchToProps as srchD } from \"../store/search-actions\";\r\nimport { dispatchToProps as paDP } from \"../store/perspectives-actions\";\r\n\r\nconst dispatchToProps = dispatch => ({\r\n ...srchD(dispatch),\r\n ...paDP(dispatch)\r\n});\r\n\r\nconst columns = [\r\n {\r\n header: \"\",\r\n key: \"icon\",\r\n style: {\r\n width: \"3%\",\r\n fontSize: \"8px\",\r\n textAlign: \"center\",\r\n color: \"#695dfa\"\r\n }\r\n },\r\n {\r\n header: Resources.Organization.toLocaleUpperCase(),\r\n key: \"partner\",\r\n style: {\r\n width: \"15%\",\r\n fontSize: \"15px\",\r\n textAlign: \"left\"\r\n }\r\n },\r\n {\r\n header: \"\",\r\n key: \"attachment\",\r\n style: { width: \"2%\" }\r\n },\r\n {\r\n header: Resources.Subject.toLocaleUpperCase(),\r\n key: \"displayText\",\r\n style: { width: \"46%\" }\r\n },\r\n {\r\n header: \"\",\r\n key: \"\",\r\n style: { width: \"1%\" }\r\n },\r\n {\r\n header: Resources.OriginalDate.toLocaleUpperCase(),\r\n key: \"originalDate\",\r\n style: {\r\n width: \"18%\",\r\n fontSize: \"12px\",\r\n fontWeight: \"400\",\r\n marginLeft: \"0.15em\"\r\n }\r\n },\r\n {\r\n header: Resources.WaitingFor.toLocaleUpperCase(),\r\n key: \"age\",\r\n style: {\r\n width: \"14%\",\r\n fontSize: \"12px\",\r\n fontWeight: \"400\"\r\n }\r\n }\r\n];\r\n\r\nclass SearchViewModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n queryParams: {\r\n query: \"\",\r\n partnerIds: [],\r\n fromDate: \"\",\r\n toDate: \"\"\r\n },\r\n partners: [],\r\n inputHasFocus: false,\r\n isCustomDateRange: false,\r\n syncPartners: true\r\n };\r\n\r\n this.filtersChanged = this.filtersChanged.bind(this);\r\n this.executeSearch = this.executeSearch.bind(this);\r\n this.onKeyPress = this.onKeyPress.bind(this);\r\n this.updateQuery = this.updateQuery.bind(this);\r\n this.updateDateRange = this.updateDateRange.bind(this);\r\n this.clearFilters = this.clearFilters.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.tryUpdate();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n this.tryUpdate(prevProps, prevState);\r\n }\r\n\r\n tryUpdate(prevProps, prevState) {\r\n const queryParams = getQueryParameters(this.props.location.search);\r\n\r\n if (!prevProps || prevProps.location !== this.props.location) {\r\n if (isEmpty(getQueryParameters(this.props.location.search)) && this.state.inputHasFocus !== true) {\r\n this.searchInput.focus();\r\n }\r\n\r\n const update = {\r\n syncPartners: true,\r\n queryParams: { ...this.state.queryParams, ...queryParams }\r\n };\r\n if (moment(queryParams.fromDate || \"\").isValid() || moment(queryParams.toDate || \"\").isValid()) {\r\n update.isCustomDateRange = true;\r\n }\r\n\r\n this.setState(update);\r\n this.executeSearch();\r\n }\r\n\r\n if (prevProps && prevProps.contextGroupsStore.value !== this.props.contextGroupsStore.value) {\r\n const perspectiveCompanies = this.props.contextGroupsStore.value || [];\r\n\r\n let update = { syncPartners: false };\r\n\r\n if (isEmpty(queryParams.partnerIds)) {\r\n this.setState(update);\r\n } else if (!isEmpty(perspectiveCompanies)) {\r\n let partners = [];\r\n\r\n // When arrays with one value are parsed by qs they are returned as a string\r\n if (typeof queryParams.partnerIds === \"string\") {\r\n partners = [\r\n find(perspectiveCompanies, p => {\r\n return p.companyId === queryParams.partnerIds;\r\n })\r\n ].filter(p => {\r\n return !isEmpty(p);\r\n });\r\n } else {\r\n partners = perspectiveCompanies.filter(p => {\r\n return includes(queryParams.partnerIds, p.companyId);\r\n });\r\n }\r\n\r\n // This prevents the vendor list from being reordered if it is the same items\r\n if (_.isEqual(_.sortBy(partners, \"companyName\"), _.sortBy(this.state.partners, \"companyName\")) !== true) {\r\n update.partners = partners;\r\n }\r\n this.setState(update);\r\n }\r\n }\r\n }\r\n\r\n filtersChanged() {\r\n return \"?\" + qs.stringify(this.state.queryParams) !== this.props.location.search;\r\n }\r\n\r\n onKeyPress(e) {\r\n if (e.key === \"Enter\") {\r\n this.updateQuery();\r\n }\r\n }\r\n\r\n executeSearch() {\r\n const {\r\n match: { params },\r\n location\r\n } = this.props;\r\n const queryParams = getQueryParameters(location.search);\r\n\r\n if (isEmpty(queryParams) || isEmpty(queryParams.query.trim())) {\r\n return;\r\n }\r\n\r\n const perspectiveId = this.props.match.params.perspectiveId;\r\n\r\n let fromDate = null;\r\n switch (queryParams.fromDate) {\r\n case \"last24\":\r\n fromDate = moment()\r\n .subtract(1, \"d\")\r\n .format(\"YYYY-MM-DD HH:mm\");\r\n break;\r\n case \"lastWeek\":\r\n fromDate = moment()\r\n .subtract(1, \"w\")\r\n .format(\"YYYY-MM-DD HH:mm\");\r\n break;\r\n case \"lastMonth\":\r\n fromDate = moment()\r\n .subtract(1, \"M\")\r\n .format(\"YYYY-MM-DD HH:mm\");\r\n break;\r\n case \"\":\r\n break;\r\n default:\r\n break;\r\n }\r\n let withCompanyIds = [];\r\n\r\n if (!isEmpty(queryParams.partnerIds)) {\r\n withCompanyIds = Array.isArray(queryParams.partnerIds) ? queryParams.partnerIds : [queryParams.partnerIds];\r\n }\r\n\r\n const request = {\r\n request: queryParams.query,\r\n perspectiveId,\r\n resourceIds: [],\r\n fromDate: fromDate || queryParams.fromDate,\r\n toDate: queryParams.toDate,\r\n withCompanyIds\r\n };\r\n\r\n this.props.fetchSearchResults(params.companyId, request);\r\n }\r\n\r\n clearFilters() {\r\n this.setState({\r\n partners: [],\r\n isCustomDateRange: false,\r\n queryParams: {\r\n ...this.state.queryParams,\r\n toDate: \"\",\r\n fromDate: \"\",\r\n partnerIds: []\r\n }\r\n });\r\n }\r\n\r\n updateQuery() {\r\n if (this.state.queryParams.query.trim() === \"\") {\r\n return;\r\n }\r\n this.searchInput.blur();\r\n this.props.history.push({ search: qs.stringify(this.state.queryParams) });\r\n }\r\n\r\n updateDateRange(fromDate = \"\", toDate = \"\", isCustomDateRange = false) {\r\n const nextQueryParams = Object.assign({}, this.state.queryParams, {\r\n fromDate,\r\n toDate\r\n });\r\n this.setState({ isCustomDateRange, queryParams: nextQueryParams });\r\n }\r\n\r\n updatePartners(partners) {\r\n this.setState({\r\n partners,\r\n queryParams: Object.assign({}, this.state.queryParams, {\r\n partnerIds: partners.map(p => p.companyId)\r\n })\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n searchStore,\r\n contextGroupsStore,\r\n match: { params }\r\n } = this.props;\r\n const perspectiveCompanies = contextGroupsStore.value || [];\r\n const partners = {};\r\n\r\n const perspective = this.props.getCompanyPerspectiveById(params.perspectiveId);\r\n\r\n perspectiveCompanies.forEach(c => {\r\n partners[c.companyId] = c;\r\n });\r\n\r\n const data = searchStore.searchResults.map(d => {\r\n d.partner = (partners[d.withCompanyId] || {}).companyName;\r\n d.highlight = true;\r\n d.attachment = d.hasAttachments === true ? : \" \";\r\n d.age = moment(d.modifiedDate).fromNow(true);\r\n d.originalDate =
{moment(d.createdDate).format(\"llll\")}
;\r\n d.className = \"search-table-row\";\r\n\r\n return d;\r\n });\r\n\r\n const queryParams = getQueryParameters(this.props.location.search);\r\n let searchTitle = Resources.Search;\r\n\r\n if (searchStore.isFetchingSearchResults) {\r\n searchTitle = Resources.Searching + \"...\";\r\n } else if (!isEmpty(queryParams)) {\r\n searchTitle = Resources.SearchResults + ` (${searchStore.searchResults.length})`;\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{searchTitle}

\r\n
\r\n
\r\n {\r\n this.searchInput = input;\r\n }}\r\n onFocus={() => this.setState({ inputHasFocus: true })}\r\n onBlur={() => this.setState({ inputHasFocus: false })}\r\n onChange={e => {\r\n this.setState({\r\n queryParams: {\r\n ...this.state.queryParams,\r\n query: e.target.value\r\n }\r\n });\r\n }}\r\n value={this.state.queryParams.query}\r\n onKeyPress={this.onKeyPress}\r\n />\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{Resources.FilterBy}
\r\n
\r\n
{Resources.TimeRange.toUpperCase()}
\r\n this.updateDateRange(\"\")}\r\n >\r\n {Resources.AnyTime}\r\n
\r\n this.updateDateRange(\"last24\")}\r\n >\r\n {Resources.PastTwentyFourHours}\r\n
\r\n this.updateDateRange(\"lastWeek\")}\r\n >\r\n {Resources.PastWeek}\r\n
\r\n this.updateDateRange(\"lastMonth\")}\r\n >\r\n {Resources.PastMonth}\r\n
\r\n {\r\n this.updateDateRange(\r\n moment()\r\n .startOf(\"day\")\r\n .format(\"YYYY-MM-DD HH:mm:ss\"),\r\n moment()\r\n .endOf(\"day\")\r\n .format(\"YYYY-MM-DD HH:mm:ss\"),\r\n true\r\n );\r\n }}\r\n >\r\n {Resources.CustomRange}\r\n
\r\n {this.state.isCustomDateRange && (\r\n
\r\n
\r\n
{Resources.From}
\r\n \"date-picker-day\"}\r\n dateFormat=\"YYYY-MM-dd\"\r\n maxDate={new Date(this.state.queryParams.toDate)}\r\n selected={\r\n this.state.queryParams.fromDate\r\n ? moment(this.state.queryParams.fromDate).toDate()\r\n : new Date()\r\n }\r\n onChange={d =>\r\n this.updateDateRange(\r\n moment(d)\r\n .startOf(\"day\")\r\n .format(\"YYYY-MM-DD HH:mm:ss\"),\r\n this.state.queryParams.toDate,\r\n true\r\n )\r\n }\r\n />\r\n {/* */}\r\n
\r\n
\r\n
{Resources.To}
\r\n \"date-picker-day\"}\r\n dateFormat=\"YYYY-MM-dd\"\r\n minDate={new Date(this.state.queryParams.fromDate)}\r\n maxDate={new Date()}\r\n selected={\r\n this.state.queryParams.toDate ? moment(this.state.queryParams.toDate).toDate() : new Date()\r\n }\r\n onChange={d =>\r\n this.updateDateRange(\r\n this.state.queryParams.fromDate,\r\n moment(d)\r\n .endOf(\"day\")\r\n .format(\"YYYY-MM-DD HH:mm:ss\"),\r\n true\r\n )\r\n }\r\n />\r\n {/* */}\r\n
\r\n
\r\n )}\r\n
\r\n {(getPartnerType((perspective || {}).perspectiveName, true) || \"\").toUpperCase()} (\r\n {perspectiveCompanies.length})\r\n
\r\n includes(this.state.queryParams.partnerIds, c.companyId) !== true)\r\n .map(c => {\r\n c.name = c.companyName;\r\n return c;\r\n })}\r\n addedPartners={this.state.partners}\r\n onChanged={p => this.updatePartners(p)}\r\n />\r\n\r\n \r\n {Resources.UpdateResults}\r\n \r\n \r\n
\r\n
\r\n
\r\n {\r\n const currentPath = this.props.location.pathname;\r\n\r\n let pathname = currentPath.substring(0, currentPath.indexOf(params.rest));\r\n pathname = `${pathname}activities/${row.contextGroupIds[0]}/${row.conversationId}`;\r\n this.props.history.push({\r\n pathname,\r\n search: \"?fromSearch=true\"\r\n });\r\n },\r\n columns\r\n }}\r\n />\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {\r\n searchStore: store.search,\r\n contextGroupsStore: store.contextGroups\r\n };\r\n};\r\n\r\nexport default connect(\r\n storeToProps,\r\n dispatchToProps\r\n)(SearchViewModal);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { dispatchToProps as aaDP } from \"../store/accounts-actions\";\r\nimport { dispatchToProps as maDP } from \"../store/manage-actions\";\r\nimport { dispatchToProps as persDP } from \"../store/perspectives-actions\";\r\nimport { dispatchToProps as ledgDP } from \"../store/ledger-actions\";\r\nimport { dispatchToProps as conDP } from \"../store/conversations-actions\";\r\n\r\nimport { isEmpty } from \"../lib/utils\";\r\nimport Resources from \"../lib/resources\";\r\n\r\nimport MainContentHeader from \"./main_content_header/mainContentHeader\";\r\nimport PerspectiveTabs from \"./perspectiveTabs\";\r\nimport TextInput from \"./library/textInput\";\r\nimport MainLoader from \"./mainLoader\";\r\nimport RadioInput from \"./library/radioInput\";\r\nimport TextAreaInput from \"./library/textAreaInput\";\r\nimport CRUDList from \"./library/crudList\";\r\nimport Card from \"./library/card\";\r\n\r\nconst dispatchToProps = dispatch => ({\r\n ...aaDP(dispatch),\r\n ...maDP(dispatch),\r\n ...persDP(dispatch),\r\n ...ledgDP(dispatch),\r\n ...conDP(dispatch)\r\n});\r\n\r\nclass ManageWorkflows extends Component {\r\n defaultState = {\r\n perspective: null,\r\n creatingWorkflow: false,\r\n editingWorkflow: false,\r\n name: \"\",\r\n description: \"\",\r\n resourceId: \"\",\r\n resourceName: \"\",\r\n ledgerHash: \"\"\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { ...this.defaultState };\r\n\r\n this.submit = this.submit.bind(this);\r\n this.delete = this.delete.bind(this);\r\n this.edit = this.edit.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const companyId = this.props.match.params.companyId;\r\n this.props.fetchCompanyWorkflows(companyId);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const companyId = this.props.match.params.companyId;\r\n const prevCompanyId = prevProps.match.params.companyId;\r\n\r\n if (isEmpty(this.state.perspective)) {\r\n const defaultPerspective =\r\n this.props.getCompanyPerspectiveById(this.props.userDefaultPerspective, companyId) ||\r\n (this.props.getCompanyPerspectives(companyId) || [])[0];\r\n if (!isEmpty(defaultPerspective)) {\r\n this.setState({ perspective: defaultPerspective });\r\n }\r\n }\r\n\r\n if (isEmpty(this.state.resourceId)) {\r\n let reminder = this.props.getResource(\"resourceName\", \"Reminder\");\r\n if (!isEmpty(reminder)) {\r\n this.setState({ resourceId: reminder.resourceId, resourceName: reminder.resourceName });\r\n }\r\n }\r\n\r\n if (companyId !== prevCompanyId) {\r\n this.props.fetchCompanyWorkflows(companyId);\r\n }\r\n\r\n if (this.state.perspective !== prevState.perspective) {\r\n this.setState({ ...this.defaultState, perspective: this.state.perspective });\r\n }\r\n }\r\n\r\n submit() {\r\n const companyId = this.props.match.params.companyId;\r\n const perspectiveId = this.state.perspective.perspectiveId;\r\n\r\n if (this.state.creatingWorkflow) {\r\n this.props\r\n .putCompanyWorkflow(\r\n companyId,\r\n perspectiveId,\r\n this.state.name,\r\n this.state.description,\r\n this.state.resourceId,\r\n this.state.resourceName\r\n )\r\n .then(() => {\r\n this.setState({ ...this.defaultState, perspective: this.state.perspective });\r\n this.props.fetchCompanyWorkflows(companyId);\r\n });\r\n } else {\r\n let newJson = {\r\n name: this.state.name,\r\n description: this.state.description,\r\n resourceId: this.state.resourceId,\r\n resourceName: this.state.resourceName\r\n };\r\n this.props.updateCompanyWorkflow(companyId, this.state.ledgerHash, newJson).then(() => {\r\n this.setState({ ...this.defaultState, perspective: this.state.perspective });\r\n this.props.fetchCompanyWorkflows(companyId);\r\n });\r\n }\r\n }\r\n\r\n delete(ledgerHash) {\r\n const companyId = this.props.match.params.companyId;\r\n\r\n this.props.deleteCompanyWorkflow(companyId, ledgerHash).then(() => {\r\n this.props.fetchCompanyWorkflows(companyId);\r\n });\r\n }\r\n\r\n edit(workflow) {\r\n this.setState({\r\n editingWorkflow: true,\r\n name: workflow.asJson.name,\r\n description: workflow.asJson.description,\r\n resourceId: workflow.asJson.resourceId,\r\n ledgerHash: workflow.ledgerHash\r\n });\r\n }\r\n\r\n workflowColumns = [\r\n {\r\n header: Resources.Name.toLocaleUpperCase(),\r\n content: row => {\r\n return
{row.asJson.name}
;\r\n },\r\n className: \"highlight\",\r\n width: \"20%\"\r\n },\r\n {\r\n header: Resources.Type.toLocaleUpperCase(),\r\n content: row => {\r\n return
{row.asJson.resourceName}
;\r\n },\r\n width: \"15%\"\r\n },\r\n {\r\n header: Resources.Description.toLocaleUpperCase(),\r\n content: row => {\r\n return
{row.asJson.description}
;\r\n },\r\n width: \"45%\"\r\n },\r\n {\r\n header: Resources.Actions.toLocaleUpperCase(),\r\n type: \"actions\",\r\n actions: [\r\n { type: \"update\", onClick: row => this.edit(row) },\r\n { type: \"delete\", onClick: row => this.delete(row.ledgerHash) }\r\n ]\r\n }\r\n ];\r\n\r\n workflows = () => {\r\n let reminder = this.props.getResource(\"resourceName\", \"Reminder\");\r\n return [\r\n { label: Resources.Reminder, value: reminder.resourceId, displayName: Resources.Reminder, checked: true }\r\n // { label: Resources.Approval, disabled: true },\r\n // { label: Resources.CustomWorkflow, disabled: true }\r\n ];\r\n };\r\n\r\n render() {\r\n const { perspective, creatingWorkflow, editingWorkflow } = this.state;\r\n if (isEmpty(perspective)) {\r\n return ;\r\n }\r\n\r\n const perspectiveId = perspective.perspectiveId;\r\n\r\n let pageContent = null;\r\n if (creatingWorkflow || editingWorkflow) {\r\n pageContent = (\r\n
\r\n

\r\n {editingWorkflow ? Resources.EditingWorkflow : Resources.NewWorkflow}\r\n

\r\n this.setState({ name: e.target.value })}\r\n placeholder={Resources.Name}\r\n />\r\n this.setState({ description: e.target.value })}\r\n placeholder={Resources.Description}\r\n />\r\n

{Resources.WorkflowType}

\r\n {\r\n this.setState({ resourceId: item.value, resourceName: item.displayName });\r\n }}\r\n />\r\n\r\n {this.props.puttingWorkflow ? (\r\n \r\n ) : (\r\n
\r\n \r\n this.setState({ editingWorkflow: false, creatingWorkflow: false, name: \"\", description: \"\" })\r\n }\r\n className=\"button-cancel mr-4\"\r\n >\r\n {Resources.Cancel}\r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n } else {\r\n pageContent = (\r\n \r\n this.setState({ creatingWorkflow: true })}\r\n createText={Resources.CreateWorkflow}\r\n loading={this.props.gettingWorkflows}\r\n />\r\n \r\n );\r\n }\r\n return (\r\n \r\n this.setState({ perspective })}\r\n selectedPerspective={perspective}\r\n />\r\n }\r\n // hideSearch={true}\r\n />\r\n
{pageContent}
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {\r\n workflows: store.manage.workflows,\r\n gettingWorkflows: store.manage.gettingWorkflows,\r\n puttingWorkflow: store.manage.puttingWorkflow,\r\n userDefaultPerspective: store.user.userConfig.defaultPerspective\r\n };\r\n};\r\n\r\nexport default connect(storeToProps, dispatchToProps)(ManageWorkflows);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { dispatchToProps as maDP } from \"../store/manage-actions\";\r\nimport { dispatchToProps as moDP } from \"../store/modal-actions\";\r\n\r\nimport Resources from \"../lib/resources\";\r\n\r\nimport MainContentHeader from \"./main_content_header/mainContentHeader\";\r\nimport CRUDList from \"./library/crudList\";\r\nimport Card from \"./library/card\";\r\n\r\nconst dispatchToProps = dispatch => ({\r\n ...maDP(dispatch),\r\n ...moDP(dispatch)\r\n});\r\n\r\nclass ManageContacts extends Component {\r\n contactColumns = [\r\n {\r\n header: Resources.Name.toLocaleUpperCase(),\r\n content: row => {\r\n return
{row.fullName}
;\r\n },\r\n className: \"highlight\",\r\n width: \"20%\"\r\n },\r\n {\r\n header: Resources.Email.toLocaleUpperCase(),\r\n content: row => {\r\n return
{row.email}
;\r\n },\r\n width: \"30%\"\r\n },\r\n {\r\n header: Resources.Organization.toLocaleUpperCase(),\r\n content: row => {\r\n return
{row.groupName || \"\"}
;\r\n },\r\n width: \"30%\"\r\n },\r\n {\r\n header: Resources.Actions.toLocaleUpperCase(),\r\n type: \"actions\",\r\n actions: [\r\n {\r\n type: \"delete\",\r\n onClick: row =>\r\n this.props.displayModal(\"warnBeforeDeleteModal\", {\r\n warningMessage: (\r\n \r\n ),\r\n delete: () => {\r\n this.props.deleteCompanyAddressBookContact(this.props.match.params.companyId, row.addressBookContactId);\r\n this.props.hideModal();\r\n }\r\n })\r\n }\r\n ]\r\n }\r\n ];\r\n\r\n render() {\r\n const contacts = this.props.getCompanyAddressBook(this.props.match.params.companyId);\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n this.props.displayModal(\"importContactsModal\", { companyId: this.props.match.params.companyId })\r\n }\r\n createText={Resources.ImportCSV}\r\n loading={contacts === null}\r\n />\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {\r\n manageStore: store.manage\r\n };\r\n};\r\n\r\nexport default connect(\r\n storeToProps,\r\n dispatchToProps\r\n)(ManageContacts);\r\n","import React, { Component } from \"react\";\n\nimport LockstepLogo from \"./lockstepLogo\";\n\nclass UnauthorizedHeader extends Component {\n render() {\n return (\n
\n \n
\n );\n }\n}\n\nexport default UnauthorizedHeader;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport Resources from \"../lib/resources\";\nimport { dispatchToProps } from \"../store/conversations-actions\";\n\nimport UnauthorizedHeader from \"./library/unauthorizedHeader\";\nimport RadioInput from \"./library/radioInput\";\nimport TextAreaInput from \"./library/textAreaInput\";\nimport { isEmpty } from \"../lib/utils\";\nimport Icons from \"../lib/icons\";\n\nclass ApprovalRequest extends Component {\n constructor(props) {\n super(props);\n this.state = {\n ...this.defaultState\n };\n\n this.fetchApprovalRequest = this.fetchApprovalRequest.bind(this);\n this.content = this.content.bind(this);\n this.bottomButtons = this.bottomButtons.bind(this);\n this.poweredByLockstep = this.poweredByLockstep.bind(this);\n this.inputRef = React.createRef();\n }\n\n defaultState = {\n selectedAction: \"reject\",\n comment: \"\",\n submittedAction: null,\n\n showActionSummary: false\n };\n\n componentDidMount() {\n window.Intercom(\"shutdown\");\n window.Intercom(\"boot\");\n this.fetchApprovalRequest();\n }\n\n componentDidUpdate(prevProps) {\n if (\n prevProps.match.params.conversationId !== this.props.match.params.conversationId ||\n prevProps.match.params.signature !== this.props.match.params.signature\n ) {\n this.setState({ ...this.defaultState });\n this.fetchApprovalRequest();\n }\n }\n\n fetchApprovalRequest() {\n this.props.getApprovalRequest(this.props.match.params.conversationId, this.props.match.params.signature);\n }\n\n poweredByLockstep() {\n return (\n \n );\n }\n\n approvalOptions() {\n return [{ label: Resources.Approve, value: \"approve\" }, { label: Resources.Reject, value: \"reject\" }];\n }\n\n content() {\n if (this.state.showActionSummary) {\n return (\n \n
\n

{Resources.ThankYouForYourDecision}

\n
\n
\n
\n

{Resources.YouHaveActionThis(this.state.submittedAction.action)}

\n

{Resources.YourComment + \":\"}

\n
{this.state.submittedAction.comment}
\n

\n {Resources.WeWillNotifyRequesterOfYourDecision(\n (this.props.conversationsStore.approvalRequest.asJson || {}).requesterDisplayName\n )}\n
\n {Resources.HaveAWonderfulDayClosePage}\n

\n {this.bottomButtons()}\n {this.poweredByLockstep()}\n
\n
\n );\n }\n return (\n \n
\n

{(this.props.conversationsStore.approvalRequest.asJson || {}).subject}

\n
\n
\n
\n {\n this.setState({\n selectedAction: item.value\n });\n }}\n />\n this.setState({ comment: e.target.value })}\n placeholder={Resources.CommentRequired}\n rows={4}\n className=\"mt-4\"\n />\n
{this.bottomButtons()}
\n {this.poweredByLockstep()}\n
\n
\n );\n }\n\n bottomButtons() {\n if (this.state.showActionSummary) {\n return null;\n }\n if (this.props.conversationsStore.puttingApprovalRequestAction) {\n return ;\n }\n return (\n
\n {this.props.conversationsStore.failedPutApprovalRequestAction && (\n
{Resources.FailedToSendApprovalDecision}
\n )}\n \n this.props\n .putApprovalRequestAction(\n this.props.match.params.conversationId,\n this.props.match.params.signature,\n this.state.selectedAction,\n this.state.comment\n )\n .then(response => {\n this.setState({\n submittedAction: {\n action:\n this.state.selectedAction === \"approve\"\n ? Resources.Approved.toLocaleLowerCase()\n : Resources.Rejected.toLocaleLowerCase(),\n comment: this.state.comment\n },\n showActionSummary: true\n });\n })\n .catch(error => {\n return;\n })\n }\n >\n {Resources.Confirm}\n \n
\n );\n }\n\n render() {\n return (\n \n \n
{this.content()}
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n conversationsStore: store.conversations\n };\n};\n\nexport default connect(\n storeToProps,\n dispatchToProps\n)(ApprovalRequest);\n","import React, { Component } from \"react\";\nimport Resources from \"../lib/resources\";\nimport LockstepLogo from \"./library/lockstepLogo\";\n\nexport default class SiteDown extends Component {\n render() {\n return (\n \n
\n
\n {Resources.ConnectedBy}\n \n
\n \"Site\n

{Resources.WereOnIt}

\n
{Resources.OurSiteIsExperiencingSomeIssues}
\n
\n
\n );\n }\n}\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport Resources from \"../lib/resources\";\r\n\r\nimport MainContentHeader from \"../components/main_content_header/mainContentHeader\";\r\nimport RadioInput from \"./library/radioInput\";\r\n\r\nimport { getPartnerType } from \"../lib/perspectives\";\r\nimport { includes } from \"../lib/utils\";\r\n\r\nimport { dispatchToProps as paDP } from \"../store/perspectives-actions\";\r\nimport { dispatchToProps as uaDP } from \"../store/user-actions\";\r\nimport { dispatchToProps as gaDP } from \"../store/general-actions\";\r\n\r\nconst dispatchToProps = dispatch => {\r\n return {\r\n ...paDP(dispatch),\r\n ...uaDP(dispatch),\r\n ...gaDP(dispatch)\r\n };\r\n};\r\n\r\nclass MyProfile extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n defaultPerspective: this.props.userStore.userConfig.defaultPerspective,\r\n readOnly: true\r\n };\r\n\r\n this.handleEditOrSave = this.handleEditOrSave.bind(this);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.userStore.userConfig !== prevProps.userStore.userConfig) {\r\n this.setState({\r\n defaultPerspective: this.props.userStore.userConfig.defaultPerspective\r\n });\r\n }\r\n }\r\n\r\n handleEditOrSave() {\r\n if (this.state.readOnly) {\r\n this.setState({ readOnly: false });\r\n return;\r\n } else {\r\n this.setState({ readOnly: true });\r\n\r\n this.props\r\n .updateUserConfig({ defaultPerspective: this.state.defaultPerspective })\r\n .then(() => {\r\n this.props.showToast({\r\n timeout: 5000,\r\n text: Resources.UserProfileSaved,\r\n linkHidden: true\r\n });\r\n })\r\n .catch(err => {\r\n return;\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n userStore,\r\n match: {\r\n params: { companyId }\r\n }\r\n } = this.props;\r\n const companyPerspectives = this.props.getCompanyPerspectives(companyId) || [];\r\n const companyPerspectiveIds = companyPerspectives.map(p => p.perspectiveId);\r\n let defaultPerspective = this.state.defaultPerspective;\r\n\r\n if (includes(companyPerspectiveIds, defaultPerspective) !== true) {\r\n defaultPerspective = (companyPerspectives[0] || {}).perspectiveId;\r\n }\r\n\r\n const perspectiveRadios = companyPerspectives.map(p => {\r\n return { label: getPartnerType(p.perspectiveName, true), value: p.perspectiveId };\r\n });\r\n\r\n return (\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n this.setState({ defaultPerspective: item.value })}\r\n />\r\n\r\n
\r\n \r\n {this.state.readOnly === false && (\r\n \r\n this.setState({\r\n defaultPerspective:\r\n (userStore.userConfig || {}).defaultPerspective || (companyPerspectives[0] || {}).perspectiveId,\r\n readOnly: true\r\n })\r\n }\r\n >\r\n {Resources.Cancel}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {\r\n userStore: store.user\r\n };\r\n};\r\n\r\nexport default connect(storeToProps, dispatchToProps)(MyProfile);\r\n","import React, { Component } from \"react\";\n\nclass IconAutoPay extends Component {\n render() {\n let { className, height, style } = this.props;\n\n return (\n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nIconAutoPay.defaultProps = {\n height: 17\n};\n\nexport default IconAutoPay;\n","import React, { Component } from \"react\";\n\nimport Resources from \"../../lib/resources\";\n\nimport IconAutoPay from \"../library/icons/iconAutoPay\";\nimport IconAngleRight from \"../library/icons/iconAngleRight\";\n\nexport default class AutoPayIndicator extends Component {\n render() {\n let { onClickManage, autoPayEnabled } = this.props;\n\n return (\n \n \n \n {autoPayEnabled ? Resources.AutomaticPaymentsAreOn : Resources.AutomaticPaymentsAreOff}\n \n
\n {autoPayEnabled\n ? Resources.WeWillPayAllOpenInvoicesOnTheirGivenPaymentDates\n : Resources.WhenEnabledWeWillPayAllOpenInvoicesOnTheirGivenPaymentDates}\n \n {Resources.ManageAutomaticPayments}\n \n \n
\n
\n );\n }\n}\n","import React from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { setSelectedCurrency } from \"../../store/statements-actions\";\n\nexport default function StatementCurrencySelector(props) {\n const dispatch = useDispatch();\n\n const { displayCounts = {} } = props;\n const selectedCurrency = useSelector(store => store.statements.selectedCurrency);\n const currencies = useSelector(store => store.statements.currencies);\n\n return (\n
\n {currencies.map((currency, index)=> (\n dispatch(setSelectedCurrency(currency))}\n >\n {currency + (!!displayCounts && !!displayCounts[currency] ? ` (${displayCounts[currency]})` : \"\")}\n \n ))}\n
\n );\n}\n","import React, { Component } from \"react\";\n\nclass IconDollarSign extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n \n \n \n );\n }\n}\n\nIconDollarSign.defaultProps = {\n height: 24\n};\n\nexport default IconDollarSign;\n","import React, { Component } from \"react\";\n\nclass IconDownload extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n );\n }\n}\n\nIconDownload.defaultProps = {\n height: 20\n};\n\nexport default IconDownload;\n","import React, { Component } from \"react\";\n\nclass IconExport extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n );\n }\n}\n\nIconExport.defaultProps = {\n height: 20\n};\n\nexport default IconExport;\n","import React, { Component} from \"react\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport Tippy from \"@tippyjs/react\";\nimport data from \"../../lib/data\";\nimport Icons from \"../../lib/icons\";\nimport Resources from \"../../lib/resources\";\nimport {\n formatDate,\n formatCurrency,\n isEmpty,\n stringToSentenceCase,\n find,\n openUrlForDownload,\n getCurrencySymbol,\n isCustomerPortal\n} from \"../../lib/utils\";\n\nimport { dispatchToProps as saDP } from \"../../store/statements-actions\";\nimport { dispatchToProps as cmpDP } from \"../../store/company-actions\";\nimport { dispatchToProps as aaDP } from \"../../store/accounts-actions\";\nimport { dispatchToProps as cgDP } from \"../../store/contextGroups-actions\";\nimport { dispatchToProps as paDP } from \"../../store/perspectives-actions\";\nimport { dispatchToProps as moDP } from \"../../store/modal-actions\";\nimport { dispatchToProps as conDP } from \"../../store/conversations-actions\";\nimport { dispatchToProps as ledgDP } from \"../../store/ledger-actions\";\n\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport { Helmet } from \"react-helmet\";\n\nimport TableData from \"../library/tableData\";\nimport TableDataSortableHeader from \"../library/tableDataSortableHeader\";\nimport Card from \"../library/card\";\nimport AutoCompleteInput from \"../library/autoCompleteInput\";\nimport AutoPayIndicator from \"./autoPayIndicator\";\nimport MainLoader from \"../mainLoader\";\nimport StatementCurrencySelector from \"./statementCurrencySelector\";\nimport IconDollarSign from \"../library/icons/iconDollarSign\";\nimport IconMessage from \"../library/icons/iconMessage\";\nimport IconHelp from \"../library/icons/iconHelp\";\nimport IconStar from \"../library/icons/iconStar\";\nimport IconDownload from \"../library/icons/iconDownload\";\nimport IconExport from \"../library/icons/iconExport\";\nimport IconFilter from \"../library/icons/iconFilter\";\nimport IconAlert from \"../library/icons/iconAlert\";\nimport IconAlertCircle from \"../library/icons/iconAlertCircle\";\nimport IconAttachment from \"../library/icons/iconAttachment\";\nimport IconArrowRight from \"../library/icons/iconArrowRight\";\nimport IconInfo from \"../library/icons/iconInfo\";\nimport IconClose from \"../library/icons/iconClose\";\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\nimport TextInput from \"../library/textInput\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...dispatch(saDP),\n ...dispatch(aaDP),\n ...dispatch(cmpDP),\n ...dispatch(cgDP),\n ...dispatch(paDP),\n ...dispatch(moDP),\n ...dispatch(conDP),\n ...dispatch(ledgDP)\n };\n};\n\n class OpenInvoices extends Component {\n constructor(props) {\n super(props); \n this.state = {\n ...this.defaultState,\n openInvcColViewSett: [],\n openInvcDivWidth: 0 \n };\n this.wrapperRef = React.createRef();\n }\n\n defaultState = {\n currentSelection: [],\n searchTerm: \"\",\n fromDate: \"2017-01-01\",\n toDate: moment()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\"),\n fromDueDate: \"2017-01-01\",\n toDueDate: moment()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\") ,\n openInvcDivWidth: 0 \n };\n\n componentDidMount = () => {\n \n const { companyId, perspectiveId, withCompanyId, pageRowCount, allAccountsSelected,viewName,settingId,userKey} = this.props;\n\n this.props.clearStatementsSearchResults(); \n let endpoint = 'v3/api/Statements/DefaultSelfServiceCustomerView/00000000-0000-0000-0000-000000000000';\n const paymentInfo = this.props.statementsStore.paymentInfo[withCompanyId];\n \n \n data\n .get(endpoint)\n .then(res => {\n const openInvcColViewSett = res.data.colSettings.columnSettings; \n this.setState({ openInvcColViewSett})\n if(res.data.defaultSortOrder.length >0 && res.data.defaultSortOrder[0].columnName!='' && res.data.defaultSortOrder[0].sortOrder!='' )\n { \n this.props.updateOpenInvoicesSort(res.data.defaultSortOrder[0].columnName,res.data.defaultSortOrder[0].sortOrder);\n }\n this.props.fetchOpenInvoices(companyId, perspectiveId, withCompanyId, null, null, pageRowCount, null, null, null, allAccountsSelected); \n this.props.fetchUnappliedOrPendingPayments(companyId, perspectiveId, withCompanyId, null, null, pageRowCount, null, allAccountsSelected); \n document.addEventListener('mousedown', this.handleExitTooltip); \n document.addEventListener('mouseover',this.handleonload); \n this.tryUpdate();\n }) \n }\n\n componentWillUnmount = () => {\n document.removeEventListener('mousedown', this.handleExitTooltip)\n document.removeEventListener('mouseover', this.handleonload);\n this.toggleSelectRow(this.props.statementsStore.selectedKeys, this.props.statementsStore.selectedRows)\n }\n\n handleExitTooltip = (event) => {\n if(this.wrapperRef && this.wrapperRef.current && !this.wrapperRef.current.contains(event.target)) {\n this.setState({ showAccountBalanceHelperText: false});\n }\n }\n \n handleonload =(event) =>\n { \n let documentOpenInvoice = document.getElementById(\"open-invoices__table__tablediv\"); \n \n if(documentOpenInvoice!=null)\n {\n // this.state.openInvcDivWidth = documentOpenInvoice.clientWidth-10; \n this.state.openInvcDivWidth = documentOpenInvoice.clientWidth + documentOpenInvoice. scrollLeft; \n } \n }\n \n componentDidUpdate = (prevProps) => {\n this.tryUpdate(prevProps); \n }\n\n tryUpdate = (prevProps, paymentMade) => {\n const {\n companyId,\n perspectiveId,\n withCompanyId,\n pageRowCount,\n allAccountsSelected,\n statementsStore: {\n openFromDate,\n openToDate,\n openFromDueDate,\n openToDueDate,\n fetchedCurrencyStats,\n openInvoicesCurrencyStats,\n selectedCurrency,\n currencies ,\n unappliedOrPendingPaymentsSkip,\n openInvoicesSkip,\n paymentsFromDueDate,\n paymentsToDueDate, \n }\n } = this.props;\n\n if (isEmpty(perspectiveId) || isEmpty(withCompanyId)) {\n return;\n }\n\n if (this.sortHasChanged(prevProps) || this.dateFilterHasChanged(prevProps) || this.selectedCurrencyHasChanged() || paymentMade) {\n let filter = null;\n\n if (!isEmpty(openFromDate)) {\n filter = `IssueDate%20>=%20${openFromDate}%20and%20IssueDate%20<=%20${openToDate}`;\n }\n\n this.props.fetchOpenInvoices(\n companyId,\n perspectiveId,\n withCompanyId,\n openFromDueDate,\n openToDueDate,\n pageRowCount,\n openInvoicesSkip,\n null,\n filter,\n allAccountsSelected\n );\n }\n if (this.unAppliedPaymentSortHasChanged(prevProps) \n || this.dateFilterHasChanged(prevProps) || this.selectedCurrencyHasChanged()) {\n this.props.fetchUnappliedOrPendingPayments(\n companyId,\n perspectiveId,\n withCompanyId,\n paymentsFromDueDate,\n paymentsToDueDate,\n pageRowCount,\n unappliedOrPendingPaymentsSkip,\n allAccountsSelected\n );\n }\n\n if (prevProps && prevProps.statementsStore.fetchedCurrencyStats === false && fetchedCurrencyStats === true) {\n if ((openInvoicesCurrencyStats[selectedCurrency] || {}).count === 0) {\n const currencyWithCount = find(currencies, currency => (openInvoicesCurrencyStats[currency] || {}).count > 0);\n currencyWithCount && this.props.setSelectedCurrency(currencyWithCount);\n }\n }\n }\n\n sortHasChanged = (prevProps) => {\n if (isEmpty(prevProps)) {\n return false;\n }\n if (\n this.props.statementsStore.openInvoicesSortDirection !== prevProps.statementsStore.openInvoicesSortDirection ||\n this.props.statementsStore.openInvoicesSortBy !== prevProps.statementsStore.openInvoicesSortBy\n ) {\n return true;\n }\n return false;\n }\n\n unAppliedPaymentSortHasChanged = (prevProps) => {\n if (isEmpty(prevProps)) {\n return false;\n }\n if (\n this.props.statementsStore.unappliedPaymentsSortDirection !== prevProps.statementsStore.unappliedPaymentsSortDirection ||\n this.props.statementsStore.unappliedPaymentsSortBy !== prevProps.statementsStore.unappliedPaymentsSortBy\n\n ) {\n return true;\n }\n return false;\n }\n\n dateFilterHasChanged = (prevProps) => {\n if (isEmpty(prevProps)) {\n return false;\n }\n\n const {\n statementsStore: { openFromDate, openToDate, openFromDueDate, openToDueDate }\n } = this.props;\n\n if (\n openFromDate !== prevProps.statementsStore.openFromDate ||\n openToDate !== prevProps.statementsStore.openToDate ||\n openFromDueDate !== prevProps.statementsStore.openFromDueDate ||\n openToDueDate !== prevProps.statementsStore.openToDueDate\n ) {\n return true;\n }\n return false;\n }\n\n selectedCurrencyHasChanged = () => {\n if (\n this.props.statementsStore.selectedCurrency &&\n this.props.statementsStore.openInvoicesCurrency &&\n this.props.statementsStore.selectedCurrency !== this.props.statementsStore.openInvoicesCurrency\n ) {\n return true;\n }\n return false;\n }\n\n toggleSelectRow = (key, row) => {\n this.props.setSelectedKeys(key, row);\n }\n \n handleLoadMore = (pageToLoad) => {\n let { companyId, perspectiveId, withCompanyId, pageRowCount, allAccountsSelected } = this.props;\n let top = pageRowCount;\n let skip = pageToLoad * pageRowCount - pageRowCount;\n this.props.fetchOpenInvoices(companyId, perspectiveId, withCompanyId, null, null, top, skip, null, null, allAccountsSelected);\n }\n\n handleSelectAll = (top) => {\n let { companyId, perspectiveId, withCompanyId, allAccountsSelected } = this.props;\n this.props.fetchOpenInvoices(companyId, perspectiveId, withCompanyId, null, null, top, 0, true, null, allAccountsSelected);\n }\n\n handleLoadMoreUnapplied = (pageToLoad) => {\n let { companyId, perspectiveId, withCompanyId, pageRowCount, allAccountsSelected } = this.props;\n let top = pageRowCount;\n let skip = pageToLoad * pageRowCount - pageRowCount;\n this.props.fetchUnappliedOrPendingPayments(companyId, perspectiveId, withCompanyId, null, null, top, skip, allAccountsSelected);\n }\n\n exportRows = (rows) => {\n if (isEmpty(rows)) {\n return null;\n }\n let { companyId, perspectiveId, withCompanyId, pageRowCount, statementsStore, allAccountsSelected } = this.props;\n let { openFromDate, openToDate, openFromDueDate, openToDueDate } = statementsStore;\n\n let options = {\n fromDate: openFromDate,\n toDate: openToDate,\n fromDueDate: openFromDueDate,\n toDueDate: openToDueDate\n };\n\n this.props.displayNotification(\"exportNotification\");\n this.props.fetchTableExport(\n companyId,\n perspectiveId,\n withCompanyId,\n \"open\",\n pageRowCount,\n statementsStore.openInvoicesSkip,\n rows.map(i => i.id),\n options,\n allAccountsSelected\n );\n }\n\n displayRelatedConversation = (entry = {}, customerId) => {\n let { companyId, perspectiveId, withCompanyId, withContextGroupId } = this.props;\n let { ledgerHash } = entry;\n\n // When opening the message flyout, we need to pass in IDs for the company whose data is being accessed. When viewing all accounts, the\n // regular company ID prop value is going to be for the primary account, and using that will cause a cascade of requests that results in\n // an endless loader. This mimics what happens when you open the flyout while a single company is selected.\n if (this.props.allAccountsSelected) {\n companyId = customerId;\n perspectiveId = customerId;\n }\n\n this.props.displayFlyout(\"messageFlyout\", {\n loading: true\n });\n\n this.props.fetchRelated(ledgerHash).then(() => {\n let relatedConversations = this.props.getRelated(ledgerHash);\n\n if (isEmpty(relatedConversations)) {\n return;\n }\n\n const conversation = relatedConversations.value[0];\n const conversationId = conversation.conversationId;\n const invoiceColumns = this.getOpenInvoiceColumns(false).splice(1);\n const isPortal = isCustomerPortal(this.props.history ? this.props.history.location.pathname : \"\");\n const useRedux = true;\n\n this.props.displayFlyout(\"messageFlyout\", {\n conversationId,\n companyId,\n perspectiveId,\n withCompanyId,\n withContextGroupId,\n invoiceColumns,\n useRedux,\n isPortal\n });\n });\n }\n\n downloadAttachments = (attachments, fileName) => {\n if (attachments.length === 1) {\n openUrlForDownload(attachments[0].downloadUrl);\n } else if (attachments.length > 1) {\n this.props.displayNotification(\"downloadNotification\");\n this.props.fetchAttachmentsZip(\n attachments.map(attachment => attachment.attachmentId),\n fileName\n );\n }\n }\n\n handleHideMakePaymentFlyout = () => {\n this.tryUpdate(null, true);\n }\n \n getOpenInvoiceColumns = (hover) => {\n let openinvoiceColumns = {}\n let { statementsStore, withCompanyId, allAccountsSelected, nationalAccount} = this.props;\n\n const allowPayments = (statementsStore.paymentInfo[withCompanyId] || {}).allowPayments;\n const allowDisputes = !isEmpty(\n (this.props.getCompanyInfo(this.props.withCompanyId).CompanySettings || {}).PortalDisputeActivityKey\n );\n let columnHeaderText = {}\n let cnt2 = 0;\n for(cnt2 = 0;cnt2\n noSort ? (\n Resources.Account.toLocaleUpperCase()\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={Resources.Account.toLocaleUpperCase()}\n sortKey={\"CustName\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"20%\",\n className: \"customer-name\",\n content: row => {row.customerName},\n name: \"customer-name\"\n };\n openinvoiceColumns[customerColName] = customerNameCol\n\n const invoiceDateColName = \"TRANDATE\";\n const invoiceDateCol = { \n header: noSort =>\n noSort ? (\n columnHeaderText[invoiceDateColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[invoiceDateColName]}\n sortKey={\"IssueDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {formatDate(row.issueDate, true, false)}, \n name: invoiceDateColName\n\n };\n openinvoiceColumns[invoiceDateColName] = invoiceDateCol \n \n const invoiceNumColName = \"TRANID\";\n const invoiceNumCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[invoiceNumColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[invoiceNumColName]}\n sortKey={\"id\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"30%\",\n content: row => {\n let hasAttachment = !isEmpty(row.attachments); \n return (\n
\n
\n {hasAttachment ? (\n \n {\n this.downloadAttachments(row.attachments, Resources.InvoiceNAttachments(row.id) + \".zip\");\n }}\n >\n \n {row.id}\n \n \n \n \n ) : (\n \n {row.id}\n \n )}\n
\n {(row.isDisputed || row.hasPromissoryNote) && (\n
\n {row.isDisputed && (\n
\n this.displayRelatedConversation(row.activeDispute, row.customerId)}\n style={{ marginBottom: row.hasPromissoryNote ? \"0.4rem\" : \"\" }}\n >\n {Resources.Disputed}\n \n
\n )}\n {row.hasPromissoryNote && (\n
\n \n this.displayRelatedConversation(find(row.payments, payment => payment.paymentType === \"Promise to Pay\"), row.customerId)\n }\n >\n {Resources.Promised}\n \n
\n )}\n
\n )}\n
\n );\n }, \n \n name: invoiceNumColName\n };\n openinvoiceColumns[invoiceNumColName] = invoiceNumCol\n\n const amountDueColName = \"BALANCE\";\n const amountDueCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[amountDueColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[amountDueColName]}\n sortKey={\"amount\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n
\n {getCurrencySymbol(row.currencyId.toLocaleUpperCase())}\n {formatCurrency(row.amount, \"\")}\n
\n ), \n width:\"130px\",\n name: amountDueColName\n };\n openinvoiceColumns[amountDueColName] = amountDueCol \n\n const fillerCol = { width: \"0.1%\", content: row => null, name: \"empty\" };\n openinvoiceColumns[\"empty\"] = fillerCol \n\n const dueDateColName = \"DUEDATE\";\n const dueDateCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[dueDateColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[dueDateColName]}\n sortKey={\"DueDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.transactionType === \"CM\" ? Resources.NA : formatDate(row.dueDate, true, false)}, \n name: dueDateColName\n };\n openinvoiceColumns[dueDateColName] = dueDateCol\n\n const statusColName = \"STATUS\";\n\n const statusCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[statusColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[statusColName]}\n sortKey={\"Status\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {\n let status = '';\n let pendingPayments = false;\n let isPastDue = moment(row.dueDate).isBefore();\n let priorPayment = false;\n\n const invoice = statementsStore.openInvoices.find(inv => inv.id === row.id);\n\n if (invoice) {\n for (const payment of invoice.payments) {\n if (payment.paymentName === 'Payment') {\n priorPayment = true;\n isPastDue = false;\n } else if (payment.paymentName === 'Pending Payment') {\n pendingPayments = true;\n isPastDue = false;\n break;\n }\n }\n }\n\n // The rules are, if a payment is pending show that status regardless. Otherwise if a partial payment has been made show that status, \n // and after that go by the past due status or the actual status value from the invoice record.\n if (pendingPayments) {\n status = Resources.PaymentPending;\n } else {\n if (priorPayment) {\n status = Resources.PartialPayment;\n } else {\n if (isPastDue) {\n status = Resources.PastDue;\n } else {\n status = row.status;\n }\n }\n }\n\n return (\n \n {status}\n {isPastDue ? : \"\"}\n \n );\n }, \n // width:\"10%\",\n name: statusColName\n };\n openinvoiceColumns[statusColName] = statusCol\n\n const pendingPaymentTooltipRef = React.createRef();\n\n const getPendingPaymentTooltipContent = (row) => {\n const invoice = statementsStore.openInvoices.find(inv => inv.id === row.id);\n let pendingPaymentsToShow = [];\n\n if (invoice) {\n for (const payment of invoice.payments) {\n if (payment.paymentName === 'Pending Payment') {\n pendingPaymentsToShow.push({\n id: payment.id,\n date: moment(payment.processedDate).format(\"MMM D, YYYY\"),\n amount: formatCurrency(payment.amount, payment.currencyId.toUpperCase())\n })\n }\n }\n\n if (pendingPaymentsToShow.length > 0) {\n return (\n
\n
{Resources.PaymentInformation}
\n {\n pendingPaymentsToShow.map(payment => {\n return (\n
\n
\n Date\n {payment.date}\n
\n \n
\n Amount\n {payment.amount}\n
\n \n
\n Transaction ID\n {payment.id}\n
\n
\n );\n })\n }\n
\n );\n }\n }\n\n return '';\n }\n\n const tranTypeColName = \"TRANTYPE\";\n const tranTypeCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[tranTypeColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[tranTypeColName]}\n sortKey={\"TransactionType\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.transactionType}, \n name: tranTypeColName\n };\n openinvoiceColumns[tranTypeColName] = tranTypeCol\n\n const lastPmtDateColName = \"LASTPMTDATE\";\n const lastPmtDateCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[lastPmtDateColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[lastPmtDateColName]}\n sortKey={\"LastPmtDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.paidDate}, \n name: lastPmtDateColName\n };\n openinvoiceColumns[lastPmtDateColName] = lastPmtDateCol\n\n const custPoNoColName = \"CUSTPONO\";\n const custPoNoCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[custPoNoColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[custPoNoColName]}\n sortKey={\"CustPONo\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.orderId}, \n name: custPoNoColName\n };\n openinvoiceColumns[custPoNoColName] = custPoNoCol\n\n const indisputeYNColName = \"INDISPUTEYN\";\n const indisputeYNCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[indisputeYNColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[indisputeYNColName]}\n sortKey={\"isDisputed\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.isDisputed ? 'true':'false'}, \n name: indisputeYNColName\n };\n openinvoiceColumns[indisputeYNColName] = indisputeYNCol\n\n const origTranAmtColName = \"ORIGTRANAMT\";\n\n const origTranAmtCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[origTranAmtColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[origTranAmtColName]}\n sortKey={\"origTranAmt\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => (\n
\n {getCurrencySymbol(row.currencyId.toLocaleUpperCase())}\n {formatCurrency(row.origTranAmt, \"\")}\n
\n ),\n // width: \"10%\",\n name: origTranAmtColName\n };\n openinvoiceColumns[origTranAmtColName] = origTranAmtCol\n\n \n const udf1ColName = \"INVUDF1\";\n const udf1Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf1ColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf1ColName]}\n sortKey={\"udf1\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf1}, \n name: udf1ColName\n };\n openinvoiceColumns[udf1ColName] = udf1Col \n\n const udf2ColName = \"INVUDF2\";\n const udf2Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf2ColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf2ColName]}\n sortKey={\"Udf2\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf2}, \n name: udf2ColName\n };\n openinvoiceColumns[udf2ColName] = udf2Col \n\n const udf3ColName = \"INVUDF3\";\n const udf3Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf3ColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf3ColName]}\n sortKey={\"Udf3\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf3}, \n name: udf3ColName\n };\n openinvoiceColumns[udf3ColName] = udf3Col \n\n const udf4ColName = \"INVUDF4\"\n const udf4Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf4ColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf4ColName]}\n sortKey={\"Udf4\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf4}, \n name: udf4ColName\n };\n openinvoiceColumns[udf4ColName] = udf4Col \n\n const udf5ColName = \"INVUDF5\"\n const udf5Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf5ColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf5ColName]}\n sortKey={\"Udf5\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf5}, \n name: udf5ColName\n };\n openinvoiceColumns[udf5ColName] = udf5Col \n\n const udf6ColName = \"INVUDF6\"\n\n const udf6Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf6ColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf6ColName]}\n sortKey={\"Udf6\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf6}, \n name: udf6ColName\n };\n openinvoiceColumns[udf6ColName] = udf6Col \n\n const udf7ColName = \"INVUDF7\";\n const udf7Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf7ColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf7ColName]}\n sortKey={\"Udf7\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf7}, \n name: udf7ColName\n };\n openinvoiceColumns[udf7ColName] = udf7Col \n\n const udf8ColName = \"INVUDF8\";\n const udf8Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf8ColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf8ColName]}\n sortKey={\"Udf8\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf8}, \n name: udf8ColName\n };\n openinvoiceColumns[udf8ColName] = udf8Col \n\n const udf9ColName = \"INVUDF9\"\n const udf9Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf9ColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf9ColName]}\n sortKey={\"Udf9\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {row.udf9}, \n // width:\"10%\",\n name: udf9ColName\n };\n openinvoiceColumns[udf9ColName] = udf9Col \n \n const udf10ColName = \"INVUDF10\";\n const udf10Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf10ColName]\n ) : (\n {\n this.props.updateOpenInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf10ColName]}\n sortKey={\"Udf10\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf10}, \n name: udf10ColName\n };\n openinvoiceColumns[udf10ColName] = udf10Col \n \n // const columns = [selectCol, invoiceDateCol, invoiceNumCol, amountDueCol, fillerCol, dueDateCol, statusCol];\n const columns = new Array()\n let cnt1 = 0;\n let cnt = 0;\n // alert(key);\n columns[cnt] = fillerCol;\n ++cnt; \n columns[cnt] = openinvoiceColumns[selectColName]; \n ++cnt; \n for(cnt1 = 0;cnt1 {\n const tooltipContent = getPendingPaymentTooltipContent(row);\n return (\n
\n
\n
\n
\n )\n },\n width:\"1px\"\n };\n\n\n \n const hoverColumnLast = {\n colSpan: 2,\n content: (row, i) => { \n return (\n
\n { allowPayments === true && (\n {\n this.props.displayFlyout(\"makePaymentFlyout\", {\n selectedInvoices: [row],\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n useRedux: true,\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] }),\n nationalAccount,\n allAccountsSelected: this.props.allAccountsSelected\n });\n }}\n disabled={row.amount < 0}\n >\n \n \n ) }\n { !allAccountsSelected && (\n \n this.props.displayFlyout(\"messageFlyout\", {\n columns,\n selectedInvoices: [row],\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withContextGroupId: this.props.withContextGroupId,\n withCompanyId: this.props.withCompanyId,\n useRedux: true,\n isPortal: isCustomerPortal(this.props.history ? this.props.history.location.pathname : \"\"),\n fetchTemplate: () => {\n return this.props.fetchOpenInvoicesTemplate(\n this.props.companyId,\n this.props.perspectiveId,\n this.props.withCompanyId,\n { invoiceIds: [row.id] }\n );\n },\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] })\n })\n }\n >\n \n \n ) } \n {allowDisputes && !allAccountsSelected && (\n {\n this.props.displayFlyout(\"disputeFlyout\", {\n selectedInvoices: [row],\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n withContextGroupId: this.props.withContextGroupId,\n useRedux: true,\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] })\n });\n } }\n >\n \n \n ) }\n {!allAccountsSelected && (\n {\n this.props.displayFlyout(\"promiseToPayFlyout\", {\n selectedInvoices: [row],\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n withContextGroupId: this.props.withContextGroupId,\n useRedux: true,\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] })\n });\n }}\n >\n \n \n )}\n {\n this.downloadAttachments(row.attachments, Resources.InvoiceNAttachments(row.id) + \".zip\");\n }}\n >\n \n \n this.exportRows([row])}\n >\n \n \n
\n )\n }\n };\n \n let cnt3 = 0; \n let hoverColumns = new Array(); \n hoverColumns[cnt3++] = hoverColumnFirst; \n if(cnt>11)\n {\n cnt = 9;\n }\n for(cnt3=1;cnt3 {\n const tooltipContent = getPendingPaymentTooltipContent(row);\n return (\n
\n {allowPayments === true && (\n {\n this.props.displayFlyout(\"makePaymentFlyout\", {\n selectedInvoices: [row],\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n useRedux: true,\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] }),\n nationalAccount\n });\n }}\n disabled={row.amount < 0}\n >\n \n \n )}\n {!allAccountsSelected && (\n \n this.props.displayFlyout(\"messageFlyout\", {\n columns,\n selectedInvoices: [row],\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withContextGroupId: this.props.withContextGroupId,\n withCompanyId: this.props.withCompanyId,\n useRedux: true,\n isPortal: isCustomerPortal(this.props.history ? this.props.history.location.pathname : \"\"),\n fetchTemplate: () => {\n return this.props.fetchOpenInvoicesTemplate(\n this.props.companyId,\n this.props.perspectiveId,\n this.props.withCompanyId,\n { invoiceIds: [row.id] }\n );\n },\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] })\n })\n }\n >\n \n \n )}\n {allowDisputes && !allAccountsSelected && (\n {\n this.props.displayFlyout(\"disputeFlyout\", {\n selectedInvoices: [row],\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n withContextGroupId: this.props.withContextGroupId,\n useRedux: true,\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] })\n });\n }}\n >\n \n \n )}\n {!allAccountsSelected && (\n {\n this.props.displayFlyout(\"promiseToPayFlyout\", {\n selectedInvoices: [row],\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n withContextGroupId: this.props.withContextGroupId,\n useRedux: true,\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] })\n });\n }}\n >\n \n \n )}\n {\n this.downloadAttachments(row.attachments, Resources.InvoiceNAttachments(row.id) + \".zip\");\n }}\n >\n \n \n this.exportRows([row])}\n >\n \n \n
\n
\n
\n )\n }\n }\n ];\n*/\n if (this.props.allAccountsSelected) {\n columns.splice(2, 0, customerNameCol);\n hoverColumns.splice(2, 0, customerNameCol);\n }\n\n if (hover) {\n return hoverColumns;\n } else { \n return columns;\n }\n }\n\n renderUnappliedPayments = () => {\n let openinvoiceColumns = {}\n const { statementsStore } = this.props;\n if (\n statementsStore.unappliedOrPendingPayments.length === 0 &&\n statementsStore.isFetchingUnappliedOrPendingPayments === false\n ) {\n return null;\n }\n\n const customerNameCol = {\n header: noSort =>\n noSort ? (\n Resources.Account.toLocaleUpperCase()\n ) : (\n {\n this.props.updateUnappliedPaymentsSort(sortBy, sortDirection);\n }}\n text={Resources.Account.toLocaleUpperCase()}\n sortKey={\"CustomerName\"}\n />\n ),\n sortable: noSort => noSort === false,\n className: \"customer-name\",\n content: row => {row.customerName}, \n name: \"customer-name\"\n };\n\n // openinvoiceColumns[\"customer-name\"] = customerNameCol\n const transactionDateCol = {\n header: (\n {\n this.props.updateUnappliedPaymentsSort(sortBy, sortDirection);\n }}\n text={Resources.TransactionDate.toLocaleUpperCase()}\n sortKey={\"processedDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n \n {formatDate(row.processedDate, row.paymentName.toLowerCase() !== \"pending payment\", false)}\n \n ),\n width: \"17%\",\n name: \"tran-date\"\n };\n openinvoiceColumns[\"TRANDATE\"] = transactionDateCol\n\n const transactionIdCol = {\n header: (\n {\n this.props.updateUnappliedPaymentsSort(sortBy, sortDirection);\n }}\n text={Resources.TransactionId.toLocaleUpperCase()}\n sortKey={\"tid\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {\n let hasAttachment = !isEmpty(row.attachments);\n return (\n
\n
{row.id}
\n {hasAttachment && }\n
\n );\n },\n width: this.props.allAccountsSelected ? \"15%\" : '17%',\n name: \"tran-id\"\n };\n\n openinvoiceColumns[\"tran-id\"] = transactionIdCol\n\n const amountCol = {\n header: (\n {\n this.props.updateUnappliedPaymentsSort(sortBy, sortDirection);\n }}\n text={Resources.PaymentAmt.toLocaleUpperCase()}\n sortKey={\"amount\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n
\n {getCurrencySymbol(row.currencyId.toLocaleUpperCase())}\n {formatCurrency(row.amount, \"\")}\n
\n ),\n width: '9rem',\n name: \"tran-amount\"\n };\n openinvoiceColumns[\"tran-amount\"] = amountCol\n const unappliedAmountCol = {\n header: (\n {\n this.props.updateUnappliedPaymentsSort(sortBy, sortDirection);\n }}\n text={Resources.UnappliedAmt.toLocaleUpperCase()}\n sortKey={\"unappliedAmount\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n
\n {getCurrencySymbol(row.currencyId.toLocaleUpperCase())}\n {formatCurrency(row.unappliedAmount, \"\")}\n
\n ),\n width: '10rem',\n name: \"unnapplied-amount\"\n };\n openinvoiceColumns[\"unnapplied-amount\"] = unappliedAmountCol\n const fillerCol = { width: this.props.allAccountsSelected ? '0%' : \"5%\", content: row => null };\n openinvoiceColumns[\"filler\"] = fillerCol\n const transactionTypeCol = {\n header: (\n {\n this.props.updateUnappliedPaymentsSort(sortBy, sortDirection);\n }}\n text={Resources.Type.toLocaleUpperCase()}\n sortKey={\"paymentType\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n {row.paymentName.toLowerCase() === \"pending payment\" ? Resources.PendingPayment : row.paymentType}\n ),\n width: \"15%\",\n name: \"tran-type\"\n };\n openinvoiceColumns[\"tran-type\"] = transactionTypeCol\n const invoicesCol = {\n header: Resources.Invoices.toLocaleUpperCase(),\n content: row => {\n return (\n {Resources.ZeroInvoices}\n );\n },\n name: \"invoices\",\n width: '15%'\n };\n openinvoiceColumns[\"invoices\"] = invoicesCol\n const columns = new Array()\n let cnt = 0\n for(let key in openinvoiceColumns) \n {\n columns[cnt] = openinvoiceColumns[key]\n ++cnt\n } \n \n const maxRows = statementsStore.isShowingSearchResult\n ? statementsStore.unappliedOrPendingPayments.length\n : statementsStore.unappliedOrPendingPaymentsCount;\n\n if (this.props.allAccountsSelected) {\n columns.splice(0, 0, customerNameCol);\n }\n\n return (\n \n
\n {statementsStore.unappliedOrPendingPayments.length > 0 ? (\n \n \n
\n {Resources.TotalUnappliedOrPendingPayments(\n formatCurrency(statementsStore.paymentsTotalUnappliedOrPending, statementsStore.selectedCurrency)\n )}\n
\n
\n ) : (\n
{Resources.CheckingForUnappliedPayments}
\n )}\n
\n {statementsStore.unappliedOrPendingPayments.length > 0 && (\n this.handleLoadMoreUnapplied(pageSelected)}\n maxRows={maxRows}\n loading={statementsStore.isFetchingUnappliedOrPendingPayments}\n rowClassName=\"statements-view-row no-hover\"\n useRedux\n emptyRender={\n
\n

{Resources.EmptyStatements}

\n
\n }\n className='unapplied-payments__table' \n />\n )}\n
\n );\n }\n handleCurrency = (e) =>\n {\n this.setState({ selectcurrid: e.target.value });\n }\n renderCurrency = (merchantcurrid) =>\n {\n return(\n
\n \n
\n );\n }\n\n renderButton = (allowPayments,selectedRows,allowOnlineCMAppl,columns,selectedKeys,nationalAccount,allowUnappliedPayments) =>\n {\n return ( \n
\n {allowPayments === true && (\n {\n const selectedInvoices = [...selectedRows].filter(row => row.transactionType !== \"CM\" || (allowOnlineCMAppl === 2 && !this.props.allAccountsSelected));\n let filteredOutCreditMemo = selectedInvoices.length !== selectedRows.length;\n if (filteredOutCreditMemo && this.props.allAccountsSelected) {\n this.props.displayModal(\"warnBeforeDeleteModal\", {\n warningMessage: (\n Resources.SelectOkToConfirmPayment\n ),\n deleteButtonText: (Resources.Ok),\n delete: () => {\n this.props.displayFlyout(\"makePaymentFlyout\", {\n selectedInvoices,\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n filteredOutCreditMemo,\n useRedux: true,\n clearSelectedRows: () => this.toggleSelectRow(selectedKeys, selectedRows),\n onHide: () => this.handleHideMakePaymentFlyout(),\n nationalAccount,\n allAccountsSelected: this.props.allAccountsSelected\n });\n\n this.props.hideModal();\n }\n })\n } else {\n this.props.displayFlyout(\"makePaymentFlyout\", {\n selectedInvoices,\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n filteredOutCreditMemo,\n useRedux: true,\n clearSelectedRows: () => this.toggleSelectRow(selectedKeys, selectedRows),\n onHide: () => this.handleHideMakePaymentFlyout(),\n nationalAccount,\n allAccountsSelected: this.props.allAccountsSelected\n });\n }\n }}\n disabled={\n (!allowUnappliedPayments && selectedRows.length === 0) ||\n (selectedRows.length !== 0 && selectedRows.every(inv => (inv || {}).transactionType === \"CM\"))\n }\n > \n \n {Resources.Pay}\n \n ) } \n
\n ); \n }\n renderEmptyState = (useCard) => {\n const svgInternals = (\n \n \n \n \n \n \n \n );\n\n if (this.props.flags.portalUpdatedZeroState) {\n if (useCard) {\n return (\n \n \n {svgInternals}\n \n

{Resources.NiceWorkYoureAllCaughtUp}

\n

{Resources.PortalOpenInvoicesEmptyNew}

\n
\n );\n } else {\n return (\n
\n {svgInternals}\n

{Resources.NiceWorkYoureAllCaughtUp}

\n

{Resources.PortalOpenInvoicesEmptyNew}

\n
\n );\n }\n } else {\n if (useCard) {\n return (\n \n \n {svgInternals}\n \n

{Resources.NiceWorkYoureAllCaughtUp}

\n

{Resources.PortalOpenInvoicesEmpty}

\n
\n );\n } else {\n return (\n
\n {svgInternals}\n

{Resources.NiceWorkYoureAllCaughtUp}

\n

{Resources.PortalOpenInvoicesEmpty}

\n
\n );\n }\n }\n }\n\n render() {\n let { statementsStore, withCompanyId, withCompanyName, companyId, allAccountsSelected, nationalAccount } = this.props;\n let { selectedRows, selectedKeys } = this.props.statementsStore;\n const hoverColumns = this.getOpenInvoiceColumns(true);\n const columns = this.getOpenInvoiceColumns(false);\n\n const data = statementsStore.openInvoices;\n const loading = statementsStore.isFetchingOpenInvoices;\n const maxRows = statementsStore.isShowingSearchResult ? data.length : statementsStore.openInvoicesCount;\n const totalStatementAmount =\n (statementsStore.openInvoicesCurrencyStats[statementsStore.selectedCurrency] || {}).totalBalance ||\n statementsStore.openTotalAmount;\n const pastDueInvoices =\n (statementsStore.openInvoicesCurrencyStats[statementsStore.selectedCurrency] || {}).pastDueCount ||\n statementsStore.openPastDueCount;\n const netStatementBalance = totalStatementAmount - statementsStore.paymentsTotalUnappliedOrPending;\n\n const allowPayments = (statementsStore.paymentInfo[withCompanyId] || {}).allowPayments;\n const allowUnappliedPayments = (statementsStore.paymentInfo[withCompanyId] || {}).allowUnappliedPayments;\n const allowOnlineCMAppl = (statementsStore.paymentInfo[withCompanyId] || {}).allowOnlineCMAppl;\n const allowDisputes = !isEmpty(\n (this.props.getCompanyInfo(this.props.withCompanyId).CompanySettings || {}).PortalDisputeActivityKey\n );\n\n const autoPayAllowed = (statementsStore.paymentInfo[withCompanyId] || {}).allowAutomaticPayments;\n const autoPayEnabled =\n ((statementsStore.paymentInfo[withCompanyId] || {}).automaticPaymentConfiguration || {})\n .automaticPaymentEnabled || false;\n\n const hasMultiCurrency = (statementsStore.currencies || []).length > 1;\n\n const isPortal = isCustomerPortal(this.props.history ? this.props.history.location.pathname : \"\");\n\n const helmet = (\n \n \n {withCompanyName} | {Resources.OpenInvoices}\n \n \n );\n\n if (\n (loading || statementsStore.isFetchingUnappliedOrPendingPayments || statementsStore.fetchingCurrencyStats) &&\n (isEmpty(totalStatementAmount) || totalStatementAmount === 0) &&\n (isEmpty(pastDueInvoices) || pastDueInvoices === 0)\n ) {\n return (\n \n {helmet}\n \n \n );\n }\n\n let currencySelectorDisplayValues = {};\n Object.keys(statementsStore.openInvoicesCurrencyStats).map(\n key => (currencySelectorDisplayValues[key] = statementsStore.openInvoicesCurrencyStats[key].count)\n );\n\n if (\n isEmpty(data) &&\n isEmpty(statementsStore.openFromDate) &&\n isEmpty(statementsStore.openToDate) &&\n isEmpty(statementsStore.openFromDueDate) &&\n isEmpty(statementsStore.openToDueDate) &&\n isEmpty(this.state.searchTerm) &&\n isEmpty(statementsStore.unappliedOrPendingPayments) &&\n (isEmpty(totalStatementAmount) || totalStatementAmount === 0) &&\n (isEmpty(pastDueInvoices) || pastDueInvoices === 0) &&\n !this.props.flags.portalUpdatedZeroState\n ) {\n return (\n \n {helmet}\n {hasMultiCurrency && } \n {(allowUnappliedPayments && statementsStore.openInvoicesCount==0)?(this.renderButton(true,selectedRows,allowOnlineCMAppl,columns,selectedKeys,nationalAccount,allowUnappliedPayments)): \"\" \n } \n {this.renderEmptyState(hasMultiCurrency)}\n \n );\n } else if (\n isEmpty(data) &&\n isEmpty(statementsStore.openFromDate) &&\n isEmpty(statementsStore.openToDate) &&\n isEmpty(statementsStore.openFromDueDate) &&\n isEmpty(statementsStore.openToDueDate) &&\n isEmpty(this.state.searchTerm) &&\n isEmpty(statementsStore.unappliedOrPendingPayments) &&\n (isEmpty(totalStatementAmount) || totalStatementAmount === 0) &&\n (isEmpty(pastDueInvoices) || pastDueInvoices === 0) &&\n this.props.flags.portalUpdatedZeroState\n ) {\n return (\n \n {helmet}\n {hasMultiCurrency && }\n \n
\n
\n
{stringToSentenceCase(Resources.OpenInvoices)}
\n
\n {(statementsStore.openInvoicesCurrencyStats[statementsStore.selectedCurrency] || {}).count ||\n statementsStore.openInvoicesCount ||\n \"0\"}\n
\n
\n
\n
\n {stringToSentenceCase(Resources.TotalAccountBalance)}\n
\n this.setState({ showAccountBalanceHelperText: true })}\n >\n \n \n {this.state.showAccountBalanceHelperText && (\n \n
\n {Resources.AccountBalanceHelperText}\n this.setState({ showAccountBalanceHelperText: false })}\n style={{ padding: \"0\", marginTop: \"-.4rem\" }}\n >\n \n \n
\n
\n )}\n
\n
\n
\n {formatCurrency(totalStatementAmount, statementsStore.selectedCurrency)}\n
\n
\n
\n
{stringToSentenceCase(Resources.PastDueInvoices)}
\n
{pastDueInvoices}
\n
\n
\n \n
\n {autoPayAllowed && !allAccountsSelected && (\n this.props.displayFlyout(\"manageAutoPayFlyout\", { companyId, withCompanyId })}\n autoPayEnabled={autoPayEnabled}\n />\n )} \n
\n {(allowUnappliedPayments && statementsStore.openInvoicesCount==0)?(this.renderButton(true,selectedRows,allowOnlineCMAppl,columns,selectedKeys,nationalAccount,allowUnappliedPayments)): \"\" \n } \n
\n {this.renderEmptyState(hasMultiCurrency)} \n
\n );\n }\n\n return (\n \n {helmet}\n {hasMultiCurrency && }\n \n
\n
\n \n {stringToSentenceCase(Resources.OpenInvoices)}\n
\n \n {(statementsStore.openInvoicesCurrencyStats[statementsStore.selectedCurrency] || {}).count ||\n statementsStore.openInvoicesCount ||\n \"0\"}\n
\n \n
\n \n {stringToSentenceCase(Resources.TotalAccountBalance)}\n
\n this.setState({ showAccountBalanceHelperText: true })}\n >\n \n \n {this.state.showAccountBalanceHelperText && (\n \n
\n {Resources.AccountBalanceHelperText}\n this.setState({ showAccountBalanceHelperText: false })}\n style={{ padding: \"0\", marginTop: \"-.4rem\" }}\n >\n \n \n
\n
\n )}\n
\n
\n \n {formatCurrency(netStatementBalance, statementsStore.selectedCurrency)}\n \n \n
\n \n {stringToSentenceCase(Resources.PastDueInvoices)}\n
\n \n {pastDueInvoices}\n \n \n \n {autoPayAllowed && !allAccountsSelected && (\n this.props.displayFlyout(\"manageAutoPayFlyout\", { companyId, withCompanyId })}\n autoPayEnabled={autoPayEnabled}\n />\n )}\n
\n {this.renderUnappliedPayments()}\n \n \n
\n
\n {allowPayments === true && (\n {\n const selectedInvoices = [...selectedRows].filter(row => row.transactionType !== \"CM\" || (allowOnlineCMAppl === 2 && !this.props.allAccountsSelected));\n let filteredOutCreditMemo = selectedInvoices.length !== selectedRows.length;\n if (filteredOutCreditMemo && this.props.allAccountsSelected) {\n this.props.displayModal(\"warnBeforeDeleteModal\", {\n warningMessage: (\n Resources.SelectOkToConfirmPayment\n ),\n deleteButtonText: (Resources.Ok),\n delete: () => {\n this.props.displayFlyout(\"makePaymentFlyout\", {\n selectedInvoices,\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n filteredOutCreditMemo,\n useRedux: true,\n clearSelectedRows: () => this.toggleSelectRow(selectedKeys, selectedRows),\n onHide: () => this.handleHideMakePaymentFlyout(),\n nationalAccount,\n allAccountsSelected: this.props.allAccountsSelected\n });\n\n this.props.hideModal();\n }\n })\n } else {\n this.props.displayFlyout(\"makePaymentFlyout\", {\n selectedInvoices,\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n filteredOutCreditMemo,\n useRedux: true,\n clearSelectedRows: () => this.toggleSelectRow(selectedKeys, selectedRows),\n onHide: () => this.handleHideMakePaymentFlyout(),\n nationalAccount,\n allAccountsSelected: this.props.allAccountsSelected\n });\n }\n }}\n disabled={\n (!allowUnappliedPayments && selectedRows.length === 0) ||\n (selectedRows.length !== 0 && selectedRows.every(inv => (inv || {}).transactionType === \"CM\"))\n }\n > \n \n {Resources.Pay}\n \n )} \n {!allAccountsSelected && (\n {\n const selectedInvoices = selectedRows;\n this.props.displayFlyout(\"messageFlyout\", {\n columns,\n selectedInvoices,\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withContextGroupId: this.props.withContextGroupId,\n withCompanyId: this.props.withCompanyId,\n useRedux: true,\n isPortal,\n fetchingTemplate: () => this.props.statementsStore.isFetchingOpenInvoicesTemplate,\n fetchTemplate: () => {\n return this.props.fetchOpenInvoicesTemplate(\n this.props.companyId,\n this.props.perspectiveId,\n this.props.withCompanyId,\n { invoiceIds: selectedInvoices.map(i => i.id) }\n );\n },\n clearSelectedRows: () => this.toggleSelectRow(selectedKeys, selectedRows)\n });\n }}\n >\n \n {Resources.SendMessage}\n \n )}\n {allowDisputes && !allAccountsSelected && (\n {\n const selectedInvoices = [...selectedRows];\n this.props.displayFlyout(\"disputeFlyout\", {\n selectedInvoices,\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n withContextGroupId: this.props.withContextGroupId,\n clearSelectedRows: () => this.toggleSelectRow(selectedKeys, selectedRows)\n });\n }}\n >\n \n {Resources.Dispute}\n \n )}\n {!allAccountsSelected && (\n {\n const selectedInvoices = [...selectedRows];\n this.props.displayFlyout(\"promiseToPayFlyout\", {\n selectedInvoices,\n columns,\n withCompanyId: this.props.withCompanyId,\n companyId: this.props.companyId,\n withContextGroupId: this.props.withContextGroupId,\n clearSelectedRows: () => this.toggleSelectRow(selectedKeys, selectedRows)\n });\n }}\n >\n \n {Resources.PromiseToPay}\n \n )}\n !isEmpty((row || {}).attachments))}\n onClick={() => {\n let allAttachments = [];\n selectedRows.forEach(row => {\n allAttachments = [...allAttachments, ...row.attachments];\n });\n this.downloadAttachments(allAttachments, Resources.InvoiceAttachments + \".zip\");\n }}\n >\n \n {Resources.DownloadAttachments}\n \n this.exportRows(selectedRows)}\n >\n \n {Resources.Export}\n \n
\n
\n
\n {\n const searchTerm = e.target.value;\n this.setState({ searchTerm });\n this.props.fetchStatementSearchResults({\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withCompanyId: this.props.withCompanyId,\n searchTerm,\n type: \"open\",\n allAccountsSelected\n });\n }}\n isShowingSearchResult={statementsStore.isShowingSearchResult}\n handleClearResult={() => {\n this.setState({ searchTerm: \"\" });\n this.props.clearStatementsSearchResults();\n this.props.fetchOpenInvoices(\n this.props.companyId,\n this.props.perspectiveId,\n this.props.withCompanyId,\n null,\n null,\n this.props.pageRowCount,\n null,\n null,\n null,\n allAccountsSelected\n );\n }}\n text={this.state.searchTerm}\n noResultsMessage={Resources.NoStatementSearchResultsMessage}\n showNoResultsMessage={statementsStore.fetchedStatementsSearchResults}\n maxOptions={7}\n loading={statementsStore.fetchingStatementsSearchResults}\n handleSelectOption={option => {\n this.setState({ searchTerm: option.id });\n this.props.fetchStatementSearchResults({\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withCompanyId: this.props.withCompanyId,\n searchTerm: option.id,\n type: \"open\",\n allAccountsSelected\n });\n this.props.setOpenInvoicesToSearchResult([option]);\n }}\n callToActionButton={\n this.props.setOpenInvoicesToSearchResult(statementsStore.searchResults)}\n >\n {Resources.SeeAllInvoiceResults(this.state.searchTerm)}\n
\n }\n renderOption={option => `${Resources.InvoiceNumber} ${option.id}`}\n options={statementsStore.searchResults}\n width=\"300px\"\n />\n
\n
\n \n \n \n
\n
\n
{Resources.InvoiceDate}
\n {\n e.stopPropagation();\n }}\n >\n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n maxDate={new Date(this.state.toDate)}\n selected={new Date(this.state.fromDate)}\n onChange={d =>\n this.setState({\n fromDate: d\n })\n }\n />\n \n \n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n minDate={new Date(this.state.fromDate)}\n selected={new Date(this.state.toDate)}\n onChange={d =>\n this.setState({\n toDate: d\n })\n }\n />\n \n
\n\n
{Resources.Due_Date}
\n {\n e.stopPropagation();\n }}\n >\n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n maxDate={new Date(this.state.toDueDate)}\n selected={new Date(this.state.fromDueDate)}\n onChange={d =>\n this.setState({\n fromDueDate: d\n })\n }\n />\n \n \n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n minDate={new Date(this.state.fromDueDate)}\n selected={new Date(this.state.toDueDate)}\n onChange={d =>\n this.setState({\n toDueDate: d\n })\n }\n />\n \n
\n \n
\n {\n this.setState({\n fromDate: this.defaultState.fromDate,\n toDate: this.defaultState.toDate,\n fromDueDate: this.defaultState.fromDueDate,\n toDueDate: this.defaultState.toDueDate\n });\n this.props.updateOpenInvoicesDate(null, null, null, null);\n }}\n >\n {Resources.Reset}\n \n {\n this.props.updateOpenInvoicesDate(\n moment(this.state.fromDate)\n .utc()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\"),\n moment(this.state.toDate)\n .utc()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\"),\n moment(this.state.fromDueDate)\n .utc()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\"),\n moment(this.state.toDueDate)\n .utc()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\")\n );\n }}\n >\n {Resources.Save}\n \n
\n
\n \n \n \n this.handleLoadMore(pageSelected)}\n onSelectAll={this.handleSelectAll}\n addAllSelected={this.handleAddAllSelected}\n maxRows={maxRows}\n loading={loading}\n showSelectAll\n pageName=\"open invoices\"\n selectedType=\"invoices\"\n className={\"self-service-table\"}\n rowClassName=\"statements-view-row\"\n rowKey=\"ledgerHash\"\n useRedux\n onRowSelectToggle={key =>\n this.toggleSelectRow(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k => find(data, row => row.ledgerHash === k))\n )\n \n }\n emptyRender={\n
\n

{Resources.EmptyStatements}

\n
\n } \n \n /> \n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n contextGroupsStore: store.contextGroups,\n statementsStore: store.statements,\n perspectivesStore: store.perspectives,\n ledgerStore: store.ledger,\n pageRowCount: store.general.pageRowCount\n };\n};\n\nexport default withLDConsumer()(connect(storeToProps, dispatchToProps)(OpenInvoices));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\n\nimport Resources from \"../../lib/resources\";\nimport {\n formatDate,\n formatCurrency,\n isEmpty,\n updateSelectedRows,\n openUrlForDownload,\n find,\n getCurrencySymbol,\n isCustomerPortal\n} from \"../../lib/utils\";\n\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { Helmet } from \"react-helmet\";\n\nimport { dispatchToProps as saDP } from \"../../store/statements-actions\";\nimport { dispatchToProps as aaDP } from \"../../store/accounts-actions\";\nimport { dispatchToProps as cgDP } from \"../../store/contextGroups-actions\";\nimport { dispatchToProps as paDP } from \"../../store/perspectives-actions\";\nimport { dispatchToProps as modDP } from \"../../store/modal-actions\";\nimport { dispatchToProps as ledgDP } from \"../../store/ledger-actions\";\n\nimport TableData from \"../library/tableData\";\nimport TableDataSortableHeader from \"../library/tableDataSortableHeader\";\nimport Card from \"../library/card\";\nimport AutoCompleteInput from \"../library/autoCompleteInput\";\nimport MainLoader from \"../mainLoader\";\nimport IconMessage from \"../library/icons/iconMessage\";\nimport IconDownload from \"../library/icons/iconDownload\";\nimport IconExport from \"../library/icons/iconExport\";\nimport IconFilter from \"../library/icons/iconFilter\";\nimport IconArrowRight from \"../library/icons/iconArrowRight\";\nimport IconAttachment from \"../library/icons/iconAttachment\";\nimport StatementCurrencySelector from \"./statementCurrencySelector\";\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\nimport data from \"../../lib/data\";\nconst dispatchToProps = dispatch => {\n return {\n ...dispatch(saDP),\n ...dispatch(aaDP),\n ...dispatch(cgDP),\n ...dispatch(paDP),\n ...dispatch(modDP),\n ...dispatch(ledgDP)\n };\n};\n\nclass ClosedInvoices extends Component {\n constructor(props) {\n super(props);\n this.state = {\n ...this.defaultState,\n closedInvcColViewSett: []\n };\n\n this.toggleSelectRow = this.toggleSelectRow.bind(this);\n this.onSortChange = this.onSortChange.bind(this);\n this.exportRows = this.exportRows.bind(this);\n }\n\n defaultState = {\n selectedRows: [],\n selectedKeys: [],\n searchTerm: \"\",\n fromDate: \"2017-01-01\",\n toDate: moment()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\"),\n fromDueDate: \"2017-01-01\",\n toDueDate: moment()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\")\n };\n\n componentDidMount() {\n const { perspectiveId, withCompanyId, pageRowCount, companyId, allAccountsSelected } = this.props;\n let endpoint = 'v3/api/Invoices/DefaultSelfServiceCustomerView/00000000-0000-0000-0000-000000000000';\n \n data\n .get(endpoint)\n .then(res => {\n const closedInvcColViewSett = res.data.colSettings.columnSettings; \n this.setState({closedInvcColViewSett})\n if(res.data.defaultSortOrder.length >0 && res.data.defaultSortOrder[0].columnName!='' && res.data.defaultSortOrder[0].sortOrder!='' )\n { \n this.props.updateClosedInvoicesSort(res.data.defaultSortOrder[0].columnName,res.data.defaultSortOrder[0].sortOrder);\n }\n this.props.clearStatementsSearchResults();\n this.props.fetchClosedInvoices(companyId, perspectiveId, withCompanyId, null, null, pageRowCount, null, null, allAccountsSelected);\n this.tryUpdate();\n }) \n }\n\n componentDidUpdate(prevProps) {\n this.tryUpdate(prevProps);\n }\n\n tryUpdate(prevProps) {\n const {\n perspectiveId,\n withCompanyId,\n pageRowCount,\n companyId,\n allAccountsSelected,\n statementsStore: { closedFromDate, closedToDate, closedFromDueDate, closedToDueDate, closedInvoicesSkip }\n } = this.props;\n\n if (isEmpty(perspectiveId) || isEmpty(withCompanyId)) {\n return;\n }\n\n if (this.sortHasChanged(prevProps) || this.dateFilterHasChanged(prevProps) || this.selectedCurrencyHasChanged()) {\n let filter = null;\n if (!isEmpty(closedFromDate)) {\n filter = `IssueDate%20>=%20${closedFromDate}%20and%20IssueDate%20<=%20${closedToDate}`;\n }\n\n this.props.fetchClosedInvoices(\n companyId,\n perspectiveId,\n withCompanyId,\n closedFromDueDate,\n closedToDueDate,\n pageRowCount,\n closedInvoicesSkip,\n filter,\n allAccountsSelected\n );\n }\n }\n\n sortHasChanged(prevProps) {\n if (isEmpty(prevProps)) {\n return false;\n }\n if (\n this.props.statementsStore.closedInvoicesSortDirection !==\n prevProps.statementsStore.closedInvoicesSortDirection ||\n this.props.statementsStore.closedInvoicesSortBy !== prevProps.statementsStore.closedInvoicesSortBy\n ) {\n return true;\n }\n return false;\n }\n\n dateFilterHasChanged(prevProps) {\n if (isEmpty(prevProps)) {\n return false;\n }\n\n const {\n statementsStore: { closedFromDate, closedToDate, closedFromDueDate, closedToDueDate }\n } = this.props;\n\n if (\n closedFromDate !== prevProps.statementsStore.closedFromDate ||\n closedToDate !== prevProps.statementsStore.closedToDate ||\n closedFromDueDate !== prevProps.statementsStore.closedFromDueDate ||\n closedToDueDate !== prevProps.statementsStore.closedToDueDate\n ) {\n return true;\n }\n return false;\n }\n\n selectedCurrencyHasChanged() {\n if (\n this.props.statementsStore.selectedCurrency &&\n this.props.statementsStore.closedInvoicesCurrency &&\n this.props.statementsStore.selectedCurrency !== this.props.statementsStore.closedInvoicesCurrency\n ) {\n return true;\n }\n return false;\n }\n\n onSortChange() {}\n\n toggleSelectRow(key, row) {\n let newSelectedRows = updateSelectedRows(row, this.state.selectedRows);\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedKeys);\n this.setState({ selectedRows: newSelectedRows, selectedKeys: newSelectedKeys });\n }\n\n handleLoadMore(pageToLoad) {\n let { companyId, perspectiveId, withCompanyId, pageRowCount } = this.props;\n let top = pageRowCount;\n let skip = pageToLoad * pageRowCount - pageRowCount;\n this.props.fetchClosedInvoices(companyId, perspectiveId, withCompanyId, null, null, top, skip, null, this.props.allAccountsSelected);\n }\n\n exportRows(rows) {\n if (isEmpty(rows)) {\n return null;\n }\n let { companyId, perspectiveId, withCompanyId, pageRowCount, statementsStore, allAccountsSelected } = this.props;\n let { closedFromDate, closedToDate, closedFromDueDate, closedToDueDate } = statementsStore;\n\n let options = {\n fromDate: closedFromDate,\n toDate: closedToDate,\n fromDueDate: closedFromDueDate,\n toDueDate: closedToDueDate\n };\n\n this.props.displayNotification(\"exportNotification\");\n this.props.fetchTableExport(\n companyId,\n perspectiveId,\n withCompanyId,\n \"closed\",\n pageRowCount,\n statementsStore.closedInvoicesSkip,\n rows.map(i => i.id),\n options,\n allAccountsSelected\n );\n }\n\n downloadAttachments(attachments, fileName) {\n if (attachments.length === 1) {\n openUrlForDownload(attachments[0].downloadUrl);\n } else if (attachments.length > 1) {\n this.props.displayNotification(\"downloadNotification\");\n this.props.fetchAttachmentsZip(\n attachments.map(attachment => attachment.attachmentId),\n fileName\n );\n }\n }\n\n getClosedInvoicesColumns = hover => {\n let { statementsStore, allAccountsSelected } = this.props;\n let columnHeaderText = {}\n let closeinvoiceColumns = {}\n let cnt2 = 0;\n for(cnt2 = 0;cnt2\n noSort ? (\n Resources.Account.toLocaleUpperCase()\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={Resources.Account.toLocaleUpperCase()}\n sortKey={\"custName\"}\n />\n ),\n sortable: noSort => noSort === false,\n className: \"customer-name\",\n content: row => {row.customerName},\n // width: \"20%\",\n name: \"customer-name\"\n };\n \n closeinvoiceColumns[customerColName] = customerNameCol;\n \n const invoiceDateColName = \"TRANDATE\";\n const invoiceDateCol = {\n header: (\n {\n this.onSortChange();\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[invoiceDateColName]}\n sortKey={\"issueDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {formatDate(row.issueDate, true, false)},\n // width: \"10%\",\n name: invoiceDateColName\n };\n\n closeinvoiceColumns[invoiceDateColName] = invoiceDateCol;\n\n const invoiceNumColName = \"TRANID\";\n\n const invoiceNumCol = {\n header: (\n {\n this.onSortChange();\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[invoiceNumColName]}\n sortKey={\"id\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {\n let hasAttachment = !isEmpty(row.attachments);\n\n return (\n
\n
\n {hasAttachment ? (\n \n {\n this.downloadAttachments(row.attachments, Resources.InvoiceNAttachments(row.id) + \".zip\");\n }}\n >\n \n {row.id}\n \n \n \n \n ) : (\n \n {row.id}\n \n )}\n
\n {(row.isDisputed || row.hasPromissoryNote) && (\n
\n {row.isDisputed && (\n
\n this.displayRelatedConversation(row.activeDispute)}\n style={{ marginBottom: row.hasPromissoryNote ? \"0.4rem\" : \"\" }}\n >\n {Resources.Disputed}\n \n
\n )}\n {row.hasPromissoryNote && (\n
\n \n this.displayRelatedConversation(\n find(row.payments, payment => payment.paymentType === \"Promise to Pay\")\n )\n }\n >\n {Resources.Promised}\n \n
\n )}\n
\n )}\n
\n );\n },\n // width: \"30%\",\n name: invoiceNumColName\n };\n closeinvoiceColumns[invoiceNumColName] = invoiceNumCol\n\n const amountPaidColName = \"AMOUNTPAID\";\n const amountPaidCol = { \n header: noSort =>\n noSort ? (\n columnHeaderText[invoiceNumColName]\n ) :\n ( {\n this.onSortChange();\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[amountPaidColName]}\n sortKey={\"AmountPaid\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n
\n {getCurrencySymbol(row.currencyId.toLocaleUpperCase())}\n {formatCurrency(row.amountPaid, \"\")}\n
\n ),\n width: \"130px\",\n name: amountPaidColName\n };\n closeinvoiceColumns[amountPaidColName] = amountPaidCol;\n\n const spacerCol = { width: \"0.1%\", content: row => null,name: \"empty\" };\n\n closeinvoiceColumns[\"empty\"] = spacerCol\n const paidDateColName = \"PAIDDATE\";\n const paidDateCol = {\n header: (\n {\n this.onSortChange();\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[paidDateColName]}\n sortKey={\"paidDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {!isEmpty(row.paidDate) ? formatDate(row.paidDate, true, false) : \"\"},\n // width: \"10%\",\n name: paidDateColName\n };\n closeinvoiceColumns[paidDateColName] = paidDateCol;\n\n const transactionsColName = \"TRANSACTIONS\";\n const transactionsCol = {\n header: columnHeaderText[transactionsColName],\n content: row => {\n let transactionIdContent;\n if (row.payments.length === 1) {\n transactionIdContent = ((row.payments || [])[0] || {}).id;\n } else if (row.payments.length > 1) {\n transactionIdContent = Resources.NTransactions(row.payments.length);\n } else {\n transactionIdContent = Resources.NTransactions(0);\n }\n return (\n
0 ? \" link\" : \"\")}>\n {row.payments.length > 0 ? (\n {\n this.props.displayFlyout(\"paymentsFlyout\", {\n invoice: row\n });\n }}\n >\n {transactionIdContent}\n \n ) : (\n {transactionIdContent}\n )}\n
\n );\n },\n // width: \"10%\",\n name: transactionsColName\n };\n closeinvoiceColumns[transactionsColName] = transactionsCol;\n\n const custPoNoColName = \"CUSTPONO\";\n const custPoNoCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[custPoNoColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[custPoNoColName]}\n sortKey={\"orderId\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.orderId}, \n name: custPoNoColName\n };\n\n closeinvoiceColumns[custPoNoColName] = custPoNoCol;\n\n const indisputeYNColName = \"INDISPUTEYN\";\n const indisputeYNCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[indisputeYNColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[indisputeYNColName]}\n sortKey={\"isDisputed\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.isDisputed ? 'true':'false'}, \n name: indisputeYNColName\n };\n closeinvoiceColumns[indisputeYNColName] = indisputeYNCol\n\n const origTranAmtColName = \"ORIGTRANAMT\";\n\n const origTranAmtCol = {\n header: noSort =>\n noSort ? (\n columnHeaderText[origTranAmtColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[origTranAmtColName]}\n sortKey={\"origTranAmt\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => (\n
\n {getCurrencySymbol(row.currencyId.toLocaleUpperCase())}\n {formatCurrency(row.origTranAmt, \"\")}\n
\n ), \n name: origTranAmtColName\n }; \n closeinvoiceColumns[origTranAmtColName] = origTranAmtCol;\n\n const udf1ColName = \"INVUDF1\";\n const udf1Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf1ColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf1ColName]}\n sortKey={\"udf1\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf1}, \n name: udf1ColName\n };\n closeinvoiceColumns[udf1ColName] = udf1Col \n\n const udf2ColName = \"INVUDF2\";\n const udf2Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf2ColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf2ColName]}\n sortKey={\"udf2\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf2}, \n name: udf2ColName\n };\n closeinvoiceColumns[udf2ColName] = udf2Col \n\n const udf3ColName = \"INVUDF3\";\n const udf3Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf3ColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf3ColName]}\n sortKey={\"udf3\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf3}, \n name: udf3ColName\n };\n closeinvoiceColumns[udf3ColName] = udf3Col \n\n const udf4ColName = \"INVUDF4\"\n const udf4Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf4ColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf4ColName]}\n sortKey={\"udf4\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf4}, \n name: udf4ColName\n };\n closeinvoiceColumns[udf4ColName] = udf4Col \n\n const udf5ColName = \"INVUDF5\"\n const udf5Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf5ColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf5ColName]}\n sortKey={\"udf5\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf5}, \n name: udf5ColName\n };\n closeinvoiceColumns[udf5ColName] = udf5Col \n\n const udf6ColName = \"INVUDF6\"\n\n const udf6Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf6ColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf6ColName]}\n sortKey={\"udf6\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf6}, \n name: udf6ColName\n };\n closeinvoiceColumns[udf6ColName] = udf6Col \n\n const udf7ColName = \"INVUDF7\";\n const udf7Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf7ColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf7ColName]}\n sortKey={\"udf7\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf7}, \n name: udf7ColName\n };\n closeinvoiceColumns[udf7ColName] = udf7Col \n\n const udf8ColName = \"INVUDF8\";\n const udf8Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf8ColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf8ColName]}\n sortKey={\"udf8\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf8}, \n name: udf8ColName\n };\n closeinvoiceColumns[udf8ColName] = udf8Col \n\n const udf9ColName = \"INVUDF9\"\n const udf9Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf9ColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf9ColName]}\n sortKey={\"udf9\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {row.udf9}, \n // width:\"10%\",\n name: udf9ColName\n };\n closeinvoiceColumns[udf9ColName] = udf9Col \n \n const udf10ColName = \"INVUDF10\";\n const udf10Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf10ColName]\n ) : (\n {\n this.props.updateClosedInvoicesSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf10ColName]}\n sortKey={\"udf10\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf10}, \n name: udf10ColName\n };\n closeinvoiceColumns[udf10ColName] = udf10Col \n \n // let columns = [selectCol, invoiceDateCol, invoiceNumCol, amountPaidCol, spacerCol, transactionIdCol, datePaidCol];\n const columns = new Array()\n let cnt1 = 0;\n let cnt = 0;\n // alert(key);\n columns[cnt] = closeinvoiceColumns[selectColName] \n ++cnt \n for(cnt1 = 0;cnt111)\n {\n cnt = 9;\n }\n for(cnt3 =0;cnt3 (\n
\n {!allAccountsSelected &&(\n {\n this.props.displayFlyout(\"messageFlyout\", {\n columns,\n selectedInvoices: [row],\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withContextGroupId: this.props.withContextGroupId,\n withCompanyId: this.props.withCompanyId,\n isPortal,\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] }),\n fetchTemplate: () => {\n return this.props.fetchClosedInvoicesTemplate(\n this.props.companyId,\n this.props.perspectiveId,\n this.props.withCompanyId,\n { invoiceIds: [row.id] }\n );\n }\n });\n }}\n >\n \n \n )}\n this.exportRows([row])}\n >\n \n \n
\n )\n };\n const isPortal = isCustomerPortal(this.props.history ? this.props.history.location.pathname : \"\");\n /* const hoverColumns = [\n selectCol,\n invoiceDateCol,\n invoiceNumCol,\n amountPaidCol,\n spacerCol,\n transactionsCol,\n {\n content: (row, i) => (\n
\n {!allAccountsSelected &&(\n {\n this.props.displayFlyout(\"messageFlyout\", {\n columns,\n selectedInvoices: [row],\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withContextGroupId: this.props.withContextGroupId,\n withCompanyId: this.props.withCompanyId,\n isPortal,\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] }),\n fetchTemplate: () => {\n return this.props.fetchClosedInvoicesTemplate(\n this.props.companyId,\n this.props.perspectiveId,\n this.props.withCompanyId,\n { invoiceIds: [row.id] }\n );\n }\n });\n }}\n >\n \n \n )}\n this.exportRows([row])}\n >\n \n \n
\n )\n }\n ];\n*/\n if (this.props.allAccountsSelected) {\n columns.splice(1, 0, customerNameCol);\n hoverColumns.splice(1, 0, customerNameCol);\n }\n\n if (hover) {\n return hoverColumns;\n } else {\n return columns;\n }\n };\n\n renderEmptyState(useCard) {\n const svgInternals = (\n \n \n \n \n \n \n \n \n );\n if (this.props.flags.portalUpdatedZeroState) {\n if (useCard) {\n return (\n \n \n {svgInternals}\n \n

{Resources.NothingToSeeHere}

\n

{Resources.PortalClosedInvoicesEmptyNew}

\n
\n );\n } else {\n return (\n
\n {svgInternals}\n

{Resources.NothingToSeeHere}

\n

{Resources.PortalClosedInvoicesEmptyNew}

\n
\n );\n }\n } else {\n if (useCard) {\n return (\n \n \n {svgInternals}\n \n

{Resources.NothingToSeeHere}

\n

{Resources.PortalClosedInvoicesEmpty}

\n
\n );\n } else {\n return (\n
\n {svgInternals}\n

{Resources.NothingToSeeHere}

\n

{Resources.PortalClosedInvoicesEmpty}

\n
\n );\n }\n }\n }\n\n render() {\n let { statementsStore, withCompanyName, allAccountsSelected } = this.props;\n let { selectedRows, selectedKeys } = this.state;\n\n const helmet = (\n \n \n {withCompanyName} | {Resources.ClosedInvoices}\n \n \n );\n\n const data = statementsStore.closedInvoices;\n const loading = statementsStore.isFetchingClosedInvoices;\n const maxRows = statementsStore.isShowingSearchResult ? data.length : statementsStore.closedInvoicesCount;\n\n const prevYearTotal =\n (statementsStore.closedInvoicesCurrencyStats[statementsStore.selectedCurrency] || {}).totalAmountPastYear ||\n statementsStore.closedTotalAmountPastYear;\n const currentYearTotal =\n (statementsStore.closedInvoicesCurrencyStats[statementsStore.selectedCurrency] || {}).totalAmountCurrentYear ||\n statementsStore.closedTotalAmountCurrentYear;\n\n const hasMultiCurrency = (statementsStore.currencies || []).length > 1;\n const isPortal = isCustomerPortal(this.props.history ? this.props.history.location.pathname : \"\")\n\n if (\n loading &&\n (isEmpty(prevYearTotal) || prevYearTotal === 0) &&\n (isEmpty(currentYearTotal) || currentYearTotal === 0)\n ) {\n return (\n \n {helmet}\n \n \n );\n }\n\n if (\n isEmpty(data) &&\n isEmpty(statementsStore.closedFromDate) &&\n isEmpty(statementsStore.closedToDate) &&\n isEmpty(statementsStore.closedFromDueDate) &&\n isEmpty(statementsStore.closedToDueDate) &&\n isEmpty(this.state.searchTerm) &&\n (isEmpty(prevYearTotal) || prevYearTotal === 0) &&\n (isEmpty(currentYearTotal) || currentYearTotal === 0) &&\n this.props.flags.portalUpdatedZeroState\n ) {\n return (\n \n {helmet}\n {hasMultiCurrency && }\n \n
\n
\n
\n {Resources.TotalInvoicedIn(\n moment()\n .subtract(1, \"year\")\n .year()\n )}\n
\n
\n {formatCurrency(prevYearTotal, this.props.statementsStore.selectedCurrency)}\n
\n
\n
\n
{Resources.TotalInvoicedIn(moment().year())}
\n
\n {formatCurrency(currentYearTotal, this.props.statementsStore.selectedCurrency)}\n
\n
\n
\n
\n {this.renderEmptyState(hasMultiCurrency)}\n
\n );\n } else if (\n isEmpty(data) &&\n isEmpty(statementsStore.closedFromDate) &&\n isEmpty(statementsStore.closedToDate) &&\n isEmpty(statementsStore.closedFromDueDate) &&\n isEmpty(statementsStore.closedToDueDate) &&\n isEmpty(this.state.searchTerm) &&\n (isEmpty(prevYearTotal) || prevYearTotal === 0) &&\n (isEmpty(currentYearTotal) || currentYearTotal === 0) &&\n !this.props.flags.portalUpdatedZeroState\n ) {\n return (\n \n {helmet}\n {hasMultiCurrency && }\n {this.renderEmptyState(hasMultiCurrency)}\n \n );\n }\n\n return (\n \n {helmet}\n {hasMultiCurrency && }\n \n
\n
\n
\n {Resources.TotalInvoicedIn(\n moment()\n .subtract(1, \"year\")\n .year()\n )}\n
\n
\n {formatCurrency(prevYearTotal, this.props.statementsStore.selectedCurrency)}\n
\n
\n
\n
{Resources.TotalInvoicedIn(moment().year())}
\n
\n {formatCurrency(currentYearTotal, this.props.statementsStore.selectedCurrency)}\n
\n
\n
\n
\n \n
\n
\n {\n const searchTerm = e.target.value;\n this.setState({ searchTerm });\n this.props.fetchStatementSearchResults({\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withCompanyId: this.props.withCompanyId,\n searchTerm,\n type: \"closed\"\n });\n }}\n isShowingSearchResult={statementsStore.isShowingSearchResult}\n handleClearResult={() => {\n this.setState({ searchTerm: \"\" });\n this.props.clearStatementsSearchResults();\n this.props.fetchClosedInvoices(\n this.props.companyId,\n this.props.perspectiveId,\n this.props.withCompanyId,\n null,\n null,\n this.props.pageRowCount,\n null,\n null,\n allAccountsSelected\n );\n }}\n text={this.state.searchTerm}\n noResultsMessage={Resources.NoStatementSearchResultsMessage}\n showNoResultsMessage={statementsStore.fetchedStatementsSearchResults}\n maxOptions={7}\n loading={statementsStore.fetchingStatementsSearchResults}\n handleSelectOption={option => {\n this.setState({ searchTerm: option.id });\n this.props.fetchStatementSearchResults({\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withCompanyId: this.props.withCompanyId,\n searchTerm: option.id,\n type: \"closed\"\n });\n this.props.setClosedInvoicesToSearchResult([option]);\n }}\n callToActionButton={\n this.props.setClosedInvoicesToSearchResult(statementsStore.searchResults)}\n >\n {Resources.SeeAllInvoiceResults(this.state.searchTerm)}\n
\n }\n renderOption={option => `${Resources.InvoiceNumber} ${option.id}`}\n options={statementsStore.searchResults}\n width=\"300px\"\n />\n
\n
\n
\n \n \n \n
\n
\n
{Resources.InvoiceDate}
\n {\n e.stopPropagation();\n }}\n >\n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n // startDate={new Date(this.state.fromDate)}\n // endDate={new Date(this.state.toDate)}\n maxDate={new Date(this.state.toDate)}\n selected={new Date(this.state.fromDate)}\n // selectsStart\n onChange={d =>\n this.setState({\n fromDate: d\n })\n }\n />\n \n \n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n // startDate={new Date(this.state.fromDate)}\n // endDate={new Date(this.state.toDate)}\n minDate={new Date(this.state.fromDate)}\n selected={new Date(this.state.toDate)}\n // selectsStart\n onChange={d =>\n this.setState({\n toDate: d\n })\n }\n />\n \n
\n\n {/*
{Resources.Due_Date}
\n {\n e.stopPropagation();\n }}\n >\n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n // startDate={new Date(this.state.fromDate)}\n // endDate={new Date(this.state.toDate)}\n maxDate={new Date(this.state.toDueDate)}\n selected={new Date(this.state.fromDueDate)}\n // selectsStart\n onChange={d =>\n this.setState({\n fromDueDate: d\n })\n }\n />\n \n \n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n // startDate={new Date(this.state.fromDate)}\n // endDate={new Date(this.state.toDate)}\n minDate={new Date(this.state.fromDueDate)}\n selected={new Date(this.state.toDueDate)}\n // selectsStart\n onChange={d =>\n this.setState({\n toDueDate: d\n })\n }\n />\n \n
*/}\n \n
\n {\n this.setState({\n fromDate: this.defaultState.fromDate,\n toDate: this.defaultState.toDate,\n fromDueDate: this.defaultState.fromDueDate,\n toDueDate: this.defaultState.toDueDate\n });\n this.props.updateClosedInvoicesDate(null, null, null, null);\n }}\n >\n {Resources.Reset}\n \n {\n this.props.updateClosedInvoicesDate(\n moment(this.state.fromDate)\n .utc()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\"),\n moment(this.state.toDate)\n .utc()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\")\n // moment(this.state.fromDueDate)\n // .utc()\n // .startOf(\"day\")\n // .format(\"YYYY-MM-DD\"),\n // moment(this.state.toDueDate)\n // .utc()\n // .startOf(\"day\")\n // .format(\"YYYY-MM-DD\")\n );\n }}\n >\n {Resources.Save}\n \n
\n
\n \n {!allAccountsSelected && (\n {\n const selectedInvoices = [...selectedRows];\n\n this.props.displayFlyout(\"messageFlyout\", {\n columns: this.getClosedInvoicesColumns(false),\n selectedInvoices,\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withContextGroupId: this.props.withContextGroupId,\n withCompanyId: this.props.withCompanyId,\n isPortal,\n fetchingTemplate: () => this.props.statementsStore.isFetchingClosedInvoicesTemplate,\n fetchTemplate: () => {\n return this.props.fetchClosedInvoicesTemplate(\n this.props.companyId,\n this.props.perspectiveId,\n this.props.withCompanyId,\n { invoiceIds: selectedInvoices.map(i => i.id) }\n );\n },\n clearSelectedRows: () => this.setState({ selectedRows: [], selectedKeys: [] })\n });\n }}\n >\n \n {Resources.SendMessage}\n \n )}\n !isEmpty((row || {}).attachments))}\n onClick={() => {\n let allAttachments = [];\n selectedRows.forEach(row => {\n allAttachments = [...allAttachments, ...row.attachments];\n });\n this.downloadAttachments(allAttachments, Resources.InvoiceAttachments + \".zip\");\n }}\n >\n \n {Resources.DownloadAttachments}\n \n this.exportRows(this.state.selectedRows)}\n >\n \n {Resources.Export}\n \n \n \n this.handleLoadMore(pageSelected)}\n maxRows={maxRows}\n loading={loading}\n localSelectedKeys={selectedKeys}\n showSelectAll\n pageName=\"closed invoices\"\n selectedType=\"invoices\"\n className={\"self-service-table\"}\n rowKey=\"ledgerHash\"\n onRowSelectToggle={key =>\n this.toggleSelectRow(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k => find(data, row => row.ledgerHash === k))\n )\n }\n rowClassName=\"statements-view-row\"\n offsetHeight=\"40\"\n emptyRender={\n
\n

{Resources.EmptyStatements}

\n
\n }\n />\n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n contextGroupsStore: store.contextGroups,\n statementsStore: store.statements,\n perspectivesStore: store.perspectives,\n ledgerStore: store.ledger,\n pageRowCount: store.general.pageRowCount\n };\n};\n\nexport default withLDConsumer()(connect(storeToProps, dispatchToProps)(ClosedInvoices));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport data from \"../../lib/data\";\nimport Icons from \"../../lib/icons\";\nimport Resources from \"../../lib/resources\";\nimport {\n formatDate,\n formatCurrency,\n isEmpty,\n updateSelectedRows,\n find,\n isProduction,\n getCurrencySymbol\n} from \"../../lib/utils\";\n\nimport { dispatchToProps as saDP } from \"../../store/statements-actions\";\nimport { dispatchToProps as aaDP } from \"../../store/accounts-actions\";\nimport { dispatchToProps as cgDP } from \"../../store/contextGroups-actions\";\nimport { dispatchToProps as paDP } from \"../../store/perspectives-actions\";\nimport { dispatchToProps as modDP } from \"../../store/modal-actions\";\n\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { Helmet } from \"react-helmet\";\n\nimport TableData from \"../library/tableData\";\nimport TableDataSortableHeader from \"../library/tableDataSortableHeader\";\nimport Card from \"../library/card\";\nimport AutoCompleteInput from \"../library/autoCompleteInput\";\nimport AutoPayIndicator from \"./autoPayIndicator\";\nimport MainLoader from \"../mainLoader\";\n\nimport IconFilter from \"../library/icons/iconFilter\";\nimport IconExport from \"../library/icons/iconExport\";\nimport IconArrowRight from \"../library/icons/iconArrowRight\";\nimport IconInfo from \"../library/icons/iconInfo\";\nimport IconClose from \"../library/icons/iconClose\";\nimport StatementCurrencySelector from \"./statementCurrencySelector\";\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...dispatch(saDP),\n ...dispatch(aaDP),\n ...dispatch(cgDP),\n ...dispatch(paDP),\n ...dispatch(modDP)\n };\n};\n\nclass Payments extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n ...this.defaultState,\n paymentColViewSett: [],\n };\n this.paymentInfoRef = React.createRef();\n }\n\n defaultState = {\n selectedRows: [],\n selectedKeys: [],\n searchTerm: \"\",\n fromDate: \"2017-01-01\",\n toDate: moment()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\")\n };\n\n componentDidMount = () => {\n const { withCompanyId, perspectiveId, pageRowCount, companyId, allAccountsSelected } = this.props;\n\n this.props.clearStatementsSearchResults();\n let endpoint = 'v3/api/Payments/DefaultSelfServiceCustomerView/00000000-0000-0000-0000-000000000000';\n \n data\n .get(endpoint)\n .then(res => {\n const paymentColViewSett = res.data.colSettings.columnSettings;\n this.setState({ paymentColViewSett})\n if(res.data.defaultSortOrder.length >0 && res.data.defaultSortOrder[0].columnName!='' && res.data.defaultSortOrder[0].sortOrder!='' )\n { \n this.props.updatePaymentsSort(res.data.defaultSortOrder[0].columnName,res.data.defaultSortOrder[0].sortOrder);\n }\n this.props.fetchPayments(companyId, perspectiveId, withCompanyId, null, null, pageRowCount, null, null, allAccountsSelected);\n document.addEventListener('mousedown', this.handleExitTooltip);\n this.tryUpdate();\n })\n \n }\n\n componentWillUnmount = () => {\n document.removeEventListener('mousedown', this.handleExitTooltip)\n }\n\n handleExitTooltip = (event) => {\n if(this.paymentInfoRef && !this.paymentInfoRef.current.contains(event.target)) {\n this.setState({ showThisYearHelperText: false, showLastYearHelperText:false });\n }\n }\n\n componentDidUpdate = (prevProps) => {\n this.tryUpdate(prevProps);\n }\n\n tryUpdate = (prevProps) => {\n const {\n perspectiveId,\n withCompanyId,\n pageRowCount,\n companyId,\n allAccountsSelected,\n statementsStore: { paymentsFromDate, paymentsToDate, paymentsFromDueDate, paymentsToDueDate,paymentsSkip }\n } = this.props;\n\n if (isEmpty(perspectiveId) || isEmpty(withCompanyId)) {\n return;\n }\n\n if (this.sortHasChanged(prevProps) || this.dateFilterHasChanged(prevProps) || this.selectedCurrencyHasChanged()) {\n let filter = null;\n if (!isEmpty(paymentsFromDate)) {\n filter = `ProcessedDate%20>=%20${paymentsFromDate}%20and%20ProcessedDate%20<=%20${paymentsToDate}`;\n }\n\n this.props.fetchPayments(\n companyId,\n perspectiveId,\n withCompanyId,\n paymentsFromDueDate,\n paymentsToDueDate,\n pageRowCount,\n paymentsSkip,\n filter,\n allAccountsSelected\n );\n }\n }\n\n sortHasChanged = (prevProps) => {\n if (isEmpty(prevProps)) {\n return false;\n }\n if (\n this.props.statementsStore.paymentsSortDirection !== prevProps.statementsStore.paymentsSortDirection ||\n this.props.statementsStore.paymentsSortBy !== prevProps.statementsStore.paymentsSortBy\n ) {\n return true;\n }\n return false;\n }\n\n dateFilterHasChanged = (prevProps) => {\n if (isEmpty(prevProps)) {\n return false;\n }\n\n const {\n statementsStore: { paymentsFromDate, paymentsToDate, paymentsFromDueDate, paymentsToDueDate }\n } = this.props;\n\n if (\n paymentsFromDate !== prevProps.statementsStore.paymentsFromDate ||\n paymentsToDate !== prevProps.statementsStore.paymentsToDate ||\n paymentsFromDueDate !== prevProps.statementsStore.paymentsFromDueDate ||\n paymentsToDueDate !== prevProps.statementsStore.paymentsToDueDate\n ) {\n return true;\n }\n return false;\n }\n\n selectedCurrencyHasChanged = () => {\n if (\n this.props.statementsStore.selectedCurrency &&\n this.props.statementsStore.paymentsCurrency &&\n this.props.statementsStore.selectedCurrency !== this.props.statementsStore.paymentsCurrency\n ) {\n return true;\n }\n return false;\n }\n\n onSortChange = () => {}\n\n toggleSelectRow = (key, row) => {\n let newSelectedRows = updateSelectedRows(row, this.state.selectedRows);\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedKeys);\n this.setState({ selectedRows: newSelectedRows, selectedKeys: newSelectedKeys });\n }\n\n handleLoadMore = (pageToLoad) => {\n let { companyId, perspectiveId, withCompanyId, pageRowCount, allAccountsSelected } = this.props;\n let top = pageRowCount;\n let skip = pageToLoad * pageRowCount - pageRowCount;\n this.props.fetchPayments(companyId, perspectiveId, withCompanyId, null, null, top, skip, null, allAccountsSelected);\n }\n\n exportRows = (rows) => {\n if (isEmpty(rows)) {\n return null;\n }\n\n let { companyId, perspectiveId, withCompanyId, pageRowCount, statementsStore, allAccountsSelected } = this.props;\n let { paymentFromDate, paymentToDate } = statementsStore;\n\n let options = {\n fromDate: paymentFromDate,\n toDate: paymentToDate\n };\n\n this.props.displayNotification(\"exportNotification\");\n this.props.fetchTableExport(\n companyId,\n perspectiveId,\n withCompanyId,\n \"payments\",\n pageRowCount,\n statementsStore.paymentsSkip,\n rows.map(row => row.id),\n options,\n allAccountsSelected\n );\n }\n\n getPaymentsColumns = (hover) => {\n let { statementsStore } = this.props;\n let paymentsColumns = {}\n let columnHeaderText = {}\n let cnt2 = 0;\n for(cnt2 = 0;cnt2\n noSort ? (\n Resources.Account.toLocaleUpperCase()\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={Resources.Account.toLocaleUpperCase()}\n sortKey={\"customerName\"}\n />\n ),\n sortable: noSort => noSort === false,\n className: \"customer-name\",\n content: row => {row.customerName},\n // width: \"13%\",\n name: customerColName\n };\n paymentsColumns[customerColName] = customerNameCol;\n\n const transactionDateColName = \"TRANDATE\";\n const transactionDateCol = {\n header: (\n {\n this.onSortChange();\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[transactionDateColName]}\n sortKey={\"ProcessedDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n \n {formatDate(row.processedDate, row.paymentName.toLowerCase() !== \"pending payment\", false)}\n \n ), \n name: transactionDateColName\n };\n\n paymentsColumns[transactionDateColName] = transactionDateCol;\n\n const transactionIdColName = \"TRANID\";\n const transactionIdCol = {\n header: (\n {\n this.onSortChange();\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[transactionIdColName]}\n sortKey={\"id\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {\n let hasAttachment = !isEmpty(row.attachments);\n return (\n
\n
{row.id}
\n {hasAttachment && }\n
\n );\n },\n // width: \"15%\",\n name: transactionIdColName\n };\n paymentsColumns[transactionIdColName] = transactionIdCol;\n\n const amountColName = \"TRANAMT\";\n const amountCol = {\n header: (\n {\n this.onSortChange();\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[amountColName]}\n sortKey={\"Amount\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n
\n {getCurrencySymbol(row.currencyId.toLocaleUpperCase())}\n {formatCurrency(row.amount, \"\")}\n
\n ), \n name: amountColName\n };\n\n paymentsColumns[amountColName] = amountCol;\n\n const fillerCol = { width: \"0.1%\", content: row => null, name: \"empty\" };\n paymentsColumns[\"empty\"] = fillerCol \n\n const transactionTypeColName = \"TRANTYPE\";\n const transactionTypeCol = {\n header: (\n {\n this.onSortChange();\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[transactionTypeColName]}\n sortKey={\"PaymentType\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n {row.paymentName.toLowerCase() === \"pending payment\" ? Resources.PendingPayment : row.paymentType}\n ),\n // width: this.props.allAccountsSelected ? \"15%\" : null,\n name: transactionTypeColName\n };\n\n paymentsColumns[transactionTypeColName] = transactionTypeCol;\n\n const tenderTypeIdColName = \"TENDERTYPEID\";\n const tenderTypeIdCol = {\n header: (\n {\n this.onSortChange();\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[tenderTypeIdColName]}\n sortKey={\"PaymentType\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n {row.paymentType}\n ),\n // width: this.props.allAccountsSelected ? \"15%\" : null,\n name: tenderTypeIdColName\n };\n paymentsColumns[tenderTypeIdColName] = tenderTypeIdCol;\n \n const isPendPmtColName = \"ISPENDPMT\";\n const isPendPmtCol = {\n header: {\n this.onSortChange();\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[isPendPmtColName]}\n sortKey={\"isPendPmt\"}\n />,\n sortable: noSort => noSort === false,\n content: row => (\n {row.isPendPmt? 'true': 'false'}\n ), \n // width: this.props.allAccountsSelected ? \"16%\" : \"15%\",\n name: isPendPmtColName\n };\n\n paymentsColumns[isPendPmtColName] = isPendPmtCol;\n\n const invoicesColName = \"INVOICES\";\n const invoicesCol = {\n header: Resources.Invoices.toLocaleUpperCase(),\n content: row => {\n let invoicesApplicationContent;\n if (row.invoices.length === 1) {\n invoicesApplicationContent = Resources.OneApplication;\n } else {\n invoicesApplicationContent = Resources.NApplications(row.invoices.length);\n }\n return (\n
0 ? \" link\" : \"\")}>\n {row.invoices.length > 0 ? (\n {\n this.props.displayFlyout(\"invoicesFlyout\", {\n payment: row\n });\n }}\n >\n {invoicesApplicationContent}\n \n ) : (\n {invoicesApplicationContent}\n )}\n
\n );\n },\n // width: this.props.allAccountsSelected ? \"16%\" : \"15%\",\n name: invoicesColName\n };\n\n paymentsColumns[invoicesColName] = invoicesCol;\n\n const unappliedAmountColName = \"UNAPPLIEDAMT\";\n const unappliedAmountCol = {\n header: (\n {\n this.onSortChange();\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[unappliedAmountColName]}\n sortKey={\"UnappliedAmt\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n
\n {getCurrencySymbol(row.currencyId.toLocaleUpperCase())}\n {formatCurrency(row.unappliedAmount, \"\")}\n
\n ), \n name: unappliedAmountColName\n };\n paymentsColumns[unappliedAmountColName] = unappliedAmountCol;\n \n \n const pmtRefColName = \"PMTREF\";\n const pmtRefCol = {\n header: (\n {\n this.onSortChange();\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[pmtRefColName]}\n sortKey={\"pmtRef\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n {row.pmtRef}\n ), \n // width: this.props.allAccountsSelected ? \"16%\" : \"15%\",\n name: pmtRefColName\n };\n\n paymentsColumns[pmtRefColName] = pmtRefCol;\n\n const udf1ColName = \"UDF1\";\n const udf1Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf1ColName]\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf1ColName]}\n sortKey={\"udf1\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf1}, \n name: udf1ColName\n };\n paymentsColumns[udf1ColName] = udf1Col \n\n const udf2ColName = \"UDF2\";\n const udf2Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf2ColName]\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf2ColName]}\n sortKey={\"Udf2\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf2}, \n name: udf2ColName\n };\n paymentsColumns[udf2ColName] = udf2Col \n\n const udf3ColName = \"UDF3\";\n const udf3Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf3ColName]\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf3ColName]}\n sortKey={\"Udf3\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf3}, \n name: udf3ColName\n };\n paymentsColumns[udf3ColName] = udf3Col \n\n const udf4ColName = \"UDF4\"\n const udf4Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf4ColName]\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf4ColName]}\n sortKey={\"Udf4\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf4}, \n name: udf4ColName\n };\n paymentsColumns[udf4ColName] = udf4Col \n\n const udf5ColName = \"UDF5\"\n const udf5Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf5ColName]\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf5ColName]}\n sortKey={\"Udf5\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf5}, \n name: udf5ColName\n };\n paymentsColumns[udf5ColName] = udf5Col \n\n const udf6ColName = \"UDF6\"\n\n const udf6Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf6ColName]\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf6ColName]}\n sortKey={\"Udf6\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf6}, \n name: udf6ColName\n };\n paymentsColumns[udf6ColName] = udf6Col \n\n const udf7ColName = \"UDF7\";\n const udf7Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf7ColName]\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf7ColName]}\n sortKey={\"Udf7\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf7}, \n name: udf7ColName\n };\n paymentsColumns[udf7ColName] = udf7Col \n\n const udf8ColName = \"UDF8\";\n const udf8Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf8ColName]\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf8ColName]}\n sortKey={\"Udf8\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf8}, \n name: udf8ColName\n };\n paymentsColumns[udf8ColName] = udf8Col \n\n const udf9ColName = \"UDF9\"\n const udf9Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf9ColName]\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf9ColName]}\n sortKey={\"Udf9\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {row.udf9}, \n // width:\"10%\",\n name: udf9ColName\n };\n paymentsColumns[udf9ColName] = udf9Col \n \n const udf10ColName = \"UDF10\";\n const udf10Col = {\n header: noSort =>\n noSort ? (\n columnHeaderText[udf10ColName]\n ) : (\n {\n this.props.updatePaymentsSort(sortBy, sortDirection);\n }}\n text={columnHeaderText[udf10ColName]}\n sortKey={\"Udf10\"}\n />\n ),\n sortable: noSort => noSort === false,\n // width:\"10%\",\n content: row => {row.udf10}, \n name: udf10ColName\n };\n paymentsColumns[udf10ColName] = udf10Col \n \n const columns = new Array()\n let cnt1 = 0;\n let cnt = 0;\n // alert(key);\n columns[cnt] = fillerCol;\n ++cnt; \n columns[cnt] = paymentsColumns[selectColName]; \n ++cnt; \n for(cnt1 = 0;cnt111)\n {\n cnt = 11;\n }\n for(cnt3=0;cnt3 (\n
\n this.exportRows([row])}\n disabled={isEmpty(row.id)}\n >\n \n \n
\n )\n }\n /* const columns = [\n selectCol,\n transactionDateCol,\n transactionIdCol,\n amountCol,\n fillerCol,\n unappliedAmountCol,\n fillerCol,\n invoicesCol,\n transactionTypeCol\n ];\n\n const hoverColumns = [\n selectCol,\n transactionDateCol,\n transactionIdCol,\n amountCol,\n fillerCol,\n unappliedAmountCol,\n fillerCol,\n invoicesCol,\n {\n content: (row, i) => (\n
\n this.exportRows([row])}\n disabled={isEmpty(row.id)}\n >\n \n \n
\n )\n }\n ];\n*/\n if (this.props.allAccountsSelected) {\n columns.splice(2, 0, customerNameCol);\n hoverColumns.splice(2, 0, customerNameCol);\n }\n\n if (hover) {\n return hoverColumns;\n } else {\n return columns;\n }\n }\n\n renderEmptyState = (useCard) => {\n let svgInternals = (\n \n \n \n \n \n \n \n \n \n \n \n );\n if (this.props.flags.portalUpdatedZeroState) {\n if (useCard) {\n return (\n \n \n {svgInternals}\n \n

{Resources.NothingToSeeHere}

\n

{Resources.PortalPaymentsEmptyNew}

\n
\n );\n } else {\n return (\n
\n {svgInternals}\n

{Resources.NothingToSeeHere}

\n

{Resources.PortalPaymentsEmptyNew}

\n
\n );\n }\n } else {\n if (useCard) {\n return (\n \n \n {svgInternals}\n \n

{Resources.NothingToSeeHere}

\n

{Resources.PortalPaymentsEmpty}

\n
\n );\n } else {\n return (\n
\n {svgInternals}\n

{Resources.NothingToSeeHere}

\n

{Resources.PortalPaymentsEmpty}

\n
\n );\n }\n }\n }\n\n render() {\n let { statementsStore, withCompanyId, companyId, withCompanyName, allAccountsSelected } = this.props;\n\n const data = statementsStore.payments;\n const loading = statementsStore.isFetchingPayments;\n const maxRows = statementsStore.isShowingSearchResult ? data.length : statementsStore.paymentsCount;\n\n const prevYearTotal =\n (statementsStore.paymentsCurrencyStats[statementsStore.selectedCurrency] || {}).totalAmountPastYear ||\n statementsStore.paymentsTotalAmountPastYear;\n const currentYearTotal =\n (statementsStore.paymentsCurrencyStats[statementsStore.selectedCurrency] || {}).totalAmountCurrentYear ||\n statementsStore.paymentsTotalAmountCurrentYear;\n const totalUnnaplied =\n (statementsStore.paymentsCurrencyStats[statementsStore.selectedCurrency] || {}).totalUnapplied ||\n statementsStore.paymentsTotalUnapplied;\n\n const hasMultiCurrency = (statementsStore.currencies || []).length > 1;\n\n const helmet = (\n \n \n \n {withCompanyName} | {Resources.Payments}\n \n \n );\n\n if (\n loading &&\n (isEmpty(prevYearTotal) || prevYearTotal === 0) &&\n (isEmpty(currentYearTotal) || currentYearTotal === 0)\n ) {\n return (\n \n {helmet}\n \n \n );\n }\n\n if (\n isEmpty(data) &&\n isEmpty(statementsStore.paymentsFromDate) &&\n isEmpty(statementsStore.paymentsToDate) &&\n isEmpty(statementsStore.paymentsFromDueDate) &&\n isEmpty(statementsStore.paymentsToDueDate) &&\n isEmpty(this.state.searchTerm) &&\n (isEmpty(prevYearTotal) || prevYearTotal === 0) &&\n (isEmpty(currentYearTotal) || currentYearTotal === 0) &&\n !this.props.flags.portalUpdatedZeroState\n ) {\n return (\n \n {helmet}\n {hasMultiCurrency && }\n {this.renderEmptyState(hasMultiCurrency)}\n \n );\n } else if (\n isEmpty(data) &&\n isEmpty(statementsStore.paymentsFromDate) &&\n isEmpty(statementsStore.paymentsToDate) &&\n isEmpty(statementsStore.paymentsFromDueDate) &&\n isEmpty(statementsStore.paymentsToDueDate) &&\n isEmpty(this.state.searchTerm) &&\n (isEmpty(prevYearTotal) || prevYearTotal === 0) &&\n (isEmpty(currentYearTotal) || currentYearTotal === 0) &&\n this.props.flags.portalUpdatedZeroState\n ) {\n return (\n \n {helmet}\n {hasMultiCurrency && }\n \n
\n
\n
\n {Resources.TotalPaidIn(\n moment()\n .subtract(1, \"year\")\n .year()\n )}\n
\n this.setState({ showLastYearHelperText: true, showThisYearHelperText: false })}\n >\n \n \n {this.state.showLastYearHelperText && (\n \n
\n {Resources.TotalPaidHelperText}\n this.setState({ showLastYearHelperText: false })}\n style={{ padding: \"0\", marginTop: \"-.4rem\" }}\n >\n \n \n
\n
\n )}\n
\n
\n
\n {formatCurrency(prevYearTotal, statementsStore.selectedCurrency)}\n
\n
\n
\n
\n {Resources.TotalPaidIn(moment().year())}\n
\n this.setState({ showThisYearHelperText: true, showLastYearHelperText: false })}\n >\n \n \n {this.state.showThisYearHelperText && (\n \n
\n {Resources.TotalPaidHelperText}\n this.setState({ showThisYearHelperText: false })}\n style={{ padding: \"0\", marginTop: \"-.4rem\" }}\n >\n \n \n
\n
\n )}\n
\n
\n
\n {formatCurrency(currentYearTotal, statementsStore.selectedCurrency)}\n
\n
\n
\n
\n {Resources.TotalUnappliedPaymentAmount}\n
\n
\n {formatCurrency(totalUnnaplied, statementsStore.selectedCurrency)}\n
\n
\n
\n
\n {this.renderEmptyState(hasMultiCurrency)}\n
\n );\n }\n\n const autoPayAllowed = !isProduction() && (statementsStore.paymentInfo[withCompanyId] || {}).allowAutomaticPayments;\n const autoPayEnabled =\n ((statementsStore.paymentInfo[withCompanyId] || {}).automaticPaymentConfiguration || {})\n .automaticPaymentEnabled || false;\n\n return (\n \n {helmet}\n {hasMultiCurrency && }\n \n
\n
\n
\n {Resources.TotalPaidIn(\n moment()\n .subtract(1, \"year\")\n .year()\n )}\n
\n this.setState({ showLastYearHelperText: true, showThisYearHelperText: false })}\n >\n \n \n {this.state.showLastYearHelperText && (\n \n
\n {Resources.TotalPaidHelperText}\n this.setState({ showLastYearHelperText: false })}\n style={{ padding: \"0\", marginTop: \"-.4rem\" }}\n >\n \n \n
\n
\n )}\n
\n
\n
\n {formatCurrency(prevYearTotal, statementsStore.selectedCurrency)}\n
\n
\n
\n
\n {Resources.TotalPaidIn(moment().year())}\n
\n this.setState({ showThisYearHelperText: true, showLastYearHelperText: false })}\n >\n \n \n {this.state.showThisYearHelperText && (\n \n
\n {Resources.TotalPaidHelperText}\n this.setState({ showThisYearHelperText: false })}\n style={{ padding: \"0\", marginTop: \"-.4rem\" }}\n >\n \n \n
\n
\n )}\n
\n
\n
\n {formatCurrency(currentYearTotal, statementsStore.selectedCurrency)}\n
\n
\n
\n
\n {Resources.TotalUnappliedPaymentAmount}\n
\n
\n {formatCurrency(totalUnnaplied, statementsStore.selectedCurrency)}\n
\n
\n {autoPayAllowed && (\n this.props.displayFlyout(\"manageAutoPayFlyout\", { companyId, withCompanyId })}\n autoPayEnabled={autoPayEnabled}\n />\n )}\n
\n
\n \n
\n
\n {\n const searchTerm = e.target.value;\n this.setState({ searchTerm });\n this.props.fetchStatementSearchResults({\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withCompanyId: this.props.withCompanyId,\n searchTerm,\n type: \"payments\",\n allAccountsSelected\n });\n }}\n isShowingSearchResult={statementsStore.isShowingSearchResult}\n handleClearResult={() => {\n this.setState({ searchTerm: \"\" });\n this.props.clearStatementsSearchResults();\n this.props.fetchPayments(\n this.props.companyId,\n this.props.perspectiveId,\n this.props.withCompanyId,\n null,\n null,\n this.props.pageRowCount,\n null,\n null,\n allAccountsSelected\n );\n }}\n text={this.state.searchTerm}\n noResultsMessage={Resources.NoStatementSearchResultsMessage}\n showNoResultsMessage={statementsStore.fetchedStatementsSearchResults}\n maxOptions={7}\n loading={statementsStore.fetchingStatementsSearchResults}\n handleSelectOption={option => {\n this.setState({ searchTerm: option.id });\n this.props.fetchStatementSearchResults({\n companyId: this.props.companyId,\n perspectiveId: this.props.perspectiveId,\n withCompanyId: this.props.withCompanyId,\n searchTerm: option.id,\n type: \"payments\",\n allAccountsSelected\n });\n this.props.setPaymentsToSearchResult([option]);\n }}\n callToActionButton={\n this.props.setPaymentsToSearchResult(statementsStore.searchResults)}\n >\n {Resources.SeeAllPaymentsResults(this.state.searchTerm)}\n
\n }\n renderOption={option => `${Resources.TransactionId} ${option.id}`}\n options={statementsStore.searchResults}\n width=\"300px\"\n />\n
\n
\n
\n \n \n \n
\n
\n
{Resources.PaymentDate}
\n {\n e.stopPropagation();\n }}\n >\n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n // startDate={new Date(this.state.fromDate)}\n // endDate={new Date(this.state.toDate)}\n maxDate={new Date(this.state.toDate)}\n selected={new Date(this.state.fromDate)}\n // selectsStart\n onChange={d =>\n this.setState({\n fromDate: d\n })\n }\n />\n \n \n \n \"date-picker-day\"}\n dateFormat=\"MMM d, yyyy\"\n // startDate={new Date(this.state.fromDate)}\n // endDate={new Date(this.state.toDate)}\n minDate={new Date(this.state.fromDate)}\n selected={new Date(this.state.toDate)}\n // selectsStart\n onChange={d =>\n this.setState({\n toDate: d\n })\n }\n />\n \n
\n \n
\n {\n this.setState({\n fromDate: this.defaultState.fromDate,\n toDate: this.defaultState.toDate\n });\n this.props.updatePaymentsDate(null, null);\n }}\n >\n {Resources.Reset}\n \n {\n this.props.updatePaymentsDate(\n moment(this.state.fromDate)\n .utc()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\"),\n moment(this.state.toDate)\n .utc()\n .startOf(\"day\")\n .format(\"YYYY-MM-DD\")\n );\n }}\n >\n {Resources.Save}\n \n
\n
\n
\n !isEmpty(row.id))}\n onClick={() => this.exportRows(this.state.selectedRows)}\n >\n \n {Resources.Export}\n \n \n \n this.handleLoadMore(pageSelected)}\n maxRows={maxRows}\n loading={loading}\n localSelectedKeys={this.state.selectedKeys}\n showSelectAll\n pageName=\"payments\"\n selectedType=\"payments\"\n className={\"self-service-table\"}\n rowKey=\"ledgerHash\"\n onRowSelectToggle={key =>\n this.toggleSelectRow(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k => find(data, row => row.ledgerHash === k))\n )\n }\n rowClassName=\"statements-view-row\"\n offsetHeight=\"40\"\n emptyRender={\n
\n

{Resources.EmptyStatements}

\n
\n }\n />\n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n contextGroupsStore: store.contextGroups,\n statementsStore: store.statements,\n perspectivesStore: store.perspectives,\n ledgerStore: store.ledger,\n pageRowCount: store.general.pageRowCount\n };\n};\n\nexport default withLDConsumer()(connect(storeToProps, dispatchToProps)(Payments));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Helmet } from \"react-helmet\";\n\nimport Resources from \"../../lib/resources\";\nimport { isEmpty, updateSelectedRows, formatDate, getFileType, find } from \"../../lib/utils\";\n\nimport { dispatchToProps as conDP } from \"../../store/conversations-actions\";\nimport { dispatchToProps as ledgDP } from \"../../store/ledger-actions\";\nimport { dispatchToProps as modDP } from \"../../store/modal-actions\";\n\nimport TableData from \"../library/tableData\";\nimport TableDataSortableHeader from \"../library/tableDataSortableHeader\";\nimport Card from \"../library/card\";\nimport MainLoader from \"../mainLoader\";\nimport IconUpload from \"../library/icons/iconUpload\";\nimport IconDownload from \"../library/icons/iconDownload\";\nimport IconTrash from \"../library/icons/iconTrash\";\nimport IconAttachment from \"../library/icons/iconAttachment\";\nimport moment from \"moment\";\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...dispatch(conDP),\n ...dispatch(ledgDP),\n ...dispatch(modDP),\n ...dispatch(conDP)\n };\n};\n\nclass Documents extends Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedRows: [],\n selectedKeys: []\n };\n\n this.toggleSelectRow = this.toggleSelectRow.bind(this);\n this.downloadSelectedAttachments = this.downloadSelectedAttachments.bind(this);\n this.deleteSelectedAttachments = this.deleteSelectedAttachments.bind(this);\n this.onSortChange = this.onSortChange.bind(this);\n }\n\n componentDidMount() {\n this.tryUpdate();\n }\n\n componentDidUpdate(prevProps) {\n this.tryUpdate(prevProps);\n }\n\n tryUpdate(prevProps) {\n const { companyId, perspectiveId, withContextGroupId, conversationsStore, pageRowCount } = this.props;\n\n if (isEmpty(perspectiveId) || isEmpty(withContextGroupId)) {\n return;\n }\n\n let documentUploaded =\n !isEmpty(prevProps) &&\n this.props.ledgerStore.uploadedDocument === true &&\n prevProps.ledgerStore.uploadedDocument === false;\n\n let attachmentsDeleted =\n !isEmpty(prevProps) &&\n this.props.ledgerStore.deletedAttachments === true &&\n prevProps.ledgerStore.deletedAttachments === false;\n\n if (\n conversationsStore.failedGetDocuments === null ||\n documentUploaded ||\n attachmentsDeleted ||\n this.sortHasChanged(prevProps)\n ) {\n this.props.getConversationDocuments(companyId, withContextGroupId, false, perspectiveId, pageRowCount);\n }\n if (attachmentsDeleted) {\n this.setState({ selectedRows: [], selectedKeys: [] });\n }\n }\n\n sortHasChanged(prevProps) {\n if (isEmpty(prevProps)) {\n return false;\n }\n if (\n this.props.conversationsStore.documents.sortDirection !== prevProps.conversationsStore.documents.sortDirection ||\n this.props.conversationsStore.documents.sortBy !== prevProps.conversationsStore.documents.sortBy\n ) {\n return true;\n }\n return false;\n }\n\n onSortChange() {}\n\n downloadSelectedAttachments() {\n if (isEmpty(this.state.selectedRows)) {\n return null;\n }\n this.props.displayNotification(\"downloadNotification\");\n this.props.fetchAttachmentsZip(\n this.state.selectedRows.map(row => row.attachmentId),\n `Documents--${moment().format(\"Y-MM-DD--HH-mm-ss\")}.zip`\n );\n }\n\n deleteSelectedAttachments() {\n if (isEmpty(this.state.selectedRows)) {\n return null;\n }\n let attachmentsToDelete = [];\n this.state.selectedRows.forEach(row => {\n if (row.canBeDeleted) {\n attachmentsToDelete.push(row.attachmentId);\n }\n });\n this.props.deleteAttachments(attachmentsToDelete);\n }\n\n toggleSelectRow(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedRows);\n this.setState({ selectedKeys: newSelectedKeys, selectedRows: newSelectedRows });\n }\n\n handleLoadMore(pageToLoad) {\n let { companyId, perspectiveId, withContextGroupId, pageRowCount } = this.props;\n let top = pageRowCount;\n let skip = pageToLoad * pageRowCount - pageRowCount;\n this.props.getConversationDocuments(companyId, withContextGroupId, false, perspectiveId, top, skip);\n }\n\n getDocumentsColumns(hover) {\n let { conversationsStore } = this.props;\n let selectCol = {\n type: \"rowSelect\",\n width: \"8%\",\n name: \"select\"\n };\n\n let fileNameCol = {\n header: (\n {\n this.onSortChange();\n this.props.setDocumentSort(sortBy, sortDirection);\n }}\n text={Resources.Document.toLocaleUpperCase()}\n sortKey={\"FileName\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n
\n
\n \n {row.fileName.substring(0, row.fileName.lastIndexOf(\".\"))}\n \n \n
\n
\n ),\n width: \"37%\",\n name: \"file-name\"\n };\n if (this.props.flags.updatedProfileAndDocumentsContent) {\n fileNameCol = {\n header: (\n {\n this.onSortChange();\n this.props.setDocumentSort(sortBy, sortDirection);\n }}\n text={Resources.File.toLocaleUpperCase()}\n sortKey={\"FileName\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n
\n
\n \n {row.fileName.substring(0, row.fileName.lastIndexOf(\".\"))}\n \n \n
\n
\n ),\n width: \"37%\",\n name: \"file-name\"\n };\n }\n let ownerCol = {\n header: (\n {\n this.onSortChange();\n this.props.setDocumentSort(sortBy, sortDirection);\n }}\n text={Resources.Owner.toLocaleUpperCase()}\n sortKey={\"CreatedByUser\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {row.createdByUser || \"\"},\n width: \"18%\",\n name: \"owner\"\n };\n\n let dateUploadedCol = {\n header: (\n {\n this.onSortChange();\n this.props.setDocumentSort(sortBy, sortDirection);\n }}\n text={Resources.DateUploaded.toLocaleUpperCase()}\n sortKey={\"CreatedDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {formatDate(row.createdDate, false, false)},\n width: \"18%\",\n name: \"date-uploaded\"\n };\n if (this.props.flags.updatedProfileAndDocumentsContent) {\n dateUploadedCol = {\n header: (\n {\n this.onSortChange();\n this.props.setDocumentSort(sortBy, sortDirection);\n }}\n text={Resources.LastUpdated.toLocaleUpperCase()}\n sortKey={\"ModifiedDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {formatDate(row.modifiedDate, false, false)},\n width: \"13%\",\n name: \"date-uploaded\"\n };\n }\n let typeCol = {\n header: (\n {\n this.onSortChange();\n this.props.setDocumentSort(sortBy, sortDirection);\n }}\n text={Resources.Type.toLocaleUpperCase()}\n sortKey={\"extension\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {getFileType(row.fileName).toLocaleUpperCase()},\n width: \"8%\",\n name: \"type\"\n };\n if (this.props.flags.updatedProfileAndDocumentsContent) {\n typeCol = {\n header: (\n {\n this.onSortChange();\n this.props.setDocumentSort(sortBy, sortDirection);\n }}\n text={Resources.DocumentType.toLocaleUpperCase()}\n sortKey={\"extension\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => {getFileType(row.fileName).toLocaleUpperCase()},\n width: \"33%\",\n name: \"type\"\n };\n }\n\n const fillerCol = {\n content: row => null,\n width: \"8%\",\n name: \"filler\"\n };\n\n const columns = [selectCol, fileNameCol, ownerCol, dateUploadedCol, typeCol, fillerCol];\n const hoverColumns = [\n selectCol,\n fileNameCol,\n ownerCol,\n dateUploadedCol,\n typeCol,\n {\n content: row =>\n row.canBeDeleted ? (\n this.props.deleteAttachments([row.attachmentId])}\n >\n \n \n ) : null,\n width: \"8%\"\n }\n ];\n\n const columnsLD = [fileNameCol, dateUploadedCol, fillerCol];\n const hoverColumnsLD = [\n fileNameCol,\n dateUploadedCol,\n {\n content: row =>\n row.canBeDeleted ? (\n this.props.deleteAttachments([row.attachmentId])}\n >\n \n \n ) : null,\n width: \"8%\"\n }\n ];\n if (hover) {\n if (this.props.flags.updatedProfileAndDocumentsContent) {\n return hoverColumnsLD;\n } else {\n return hoverColumns;\n }\n }\n\n if (this.props.flags.updatedProfileAndDocumentsContent) {\n return columnsLD;\n } else {\n return columns;\n }\n }\n\n renderEmptyState() {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n

{Resources.NothingToSeeHere}

\n

{Resources.PortalDocumentsEmpty}

\n {this.getFileUploadButton()}\n
\n );\n }\n\n getFileUploadButton() {\n return (\n \n document.getElementById(\"customer-portal-file-input\").click()}\n >\n \n {Resources.Upload}\n \n (e.target.value = \"\")}\n onChange={e => {\n this.props.displayNotification(\"uploadNotification\");\n this.props.uploadDocument(this.props.companyId, this.props.withContextGroupId, e.target.files[0]);\n }}\n />\n \n );\n }\n\n render() {\n let { conversationsStore, withCompanyName } = this.props;\n let { selectedRows, selectedKeys } = this.state;\n\n const data = conversationsStore.documents.value;\n const loading = conversationsStore.gettingDocuments;\n const maxRows = conversationsStore.documents.count;\n\n const helmet = (\n \n \n {withCompanyName} | {Resources.Documents}\n \n \n );\n\n if (loading) {\n return (\n \n {helmet}\n \n \n );\n }\n\n /*if (isEmpty(data)) {\n return (\n \n {helmet}\n {this.renderEmptyState()}\n \n );\n }*/\n\n return (\n \n {helmet}\n \n {!this.props.flags.updatedProfileAndDocumentsContent && (\n
\n
\n {this.getFileUploadButton()}\n \n \n {Resources.Download}\n \n row.canBeDeleted)}\n onClick={this.deleteSelectedAttachments}\n >\n \n {Resources.Delete}\n \n
\n
\n )}\n this.handleLoadMore(pageSelected)}\n maxRows={maxRows}\n loading={loading}\n localSelectedKeys={selectedKeys}\n rowKey=\"attachmentId\"\n onRowSelectToggle={key =>\n this.toggleSelectRow(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k => find(data, row => row.attachmentId === k))\n )\n }\n offsetHeight=\"40\"\n emptyRender={\n
\n

{Resources.EmptyInboxDocuments}

\n
\n }\n />\n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n contextGroupsStore: store.contextGroups,\n conversationsStore: store.conversations,\n ledgerStore: store.ledger,\n pageRowCount: store.general.pageRowCount\n };\n};\n\nexport default withLDConsumer()(connect(storeToProps, dispatchToProps)(Documents));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Helmet } from \"react-helmet\";\n\nimport Resources from \"../../lib/resources\";\nimport { isCustomerPortal, isEmpty } from \"../../lib/utils\";\n\nimport { dispatchToProps as contDP } from \"../../store/contextGroups-actions\";\nimport { dispatchToProps as comDP } from \"../../store/company-actions\";\nimport { dispatchToProps as modDP } from \"../../store/modal-actions\";\nimport { dispatchToProps as manDP } from \"../../store/manage-actions\";\n\nimport Card from \"../library/card\";\nimport IconPlusCircle from \"../library/icons/iconPlusCircle\";\nimport IconCompany from \"../library/icons/iconCompany\";\nimport IconLinkedIn from \"../library/icons/iconLinkedIn\";\nimport IconClipboard from \"../library/icons/iconClipboard\";\nimport IconArchive from \"../library/icons/iconArchive\";\nimport IconPhone from \"../library/icons/iconPhone\";\nimport IconMapPin from \"../library/icons/iconMapPin\";\nimport IconMail from \"../library/icons/iconMail\";\nimport IconUser from \"../library/icons/iconUser\";\nimport IconBriefcase from \"../library/icons/iconBriefcase\";\n// import IconTrash from \"../library/icons/iconTrash\";\n// import IconEdit from \"../library/icons/iconEdit\";\nimport MainLoader from \"../mainLoader\";\nimport { Link, generatePath } from \"react-router-dom\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...dispatch(comDP),\n ...dispatch(contDP),\n ...dispatch(manDP),\n ...dispatch(modDP)\n };\n};\n\nclass Profile extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n addressBook: {}\n };\n\n this.fetchAddressBook = this.fetchAddressBook.bind(this);\n }\n\n componentDidMount() {\n this.tryUpdate();\n this.fetchAddressBook();\n }\n\n fetchAddressBook() {\n let { companyId } = this.props;\n this.props.fetchCompanyAddressBook(companyId, \"contextGroupId%20=%20NULL\").then(response => {\n if (!isEmpty((response || {}).perspectives)) {\n this.setState({\n addressBook: response.perspectives[\"00000000-0000-0000-0000-000000000000\"][0].items.sort((a, b) =>\n a.isPrimary ? -1 : 1\n )\n });\n } else {\n this.setState({ addressBook: [] });\n }\n });\n }\n\n componentDidUpdate(prevProps) {\n this.tryUpdate(prevProps);\n }\n\n tryUpdate(prevProps) {\n const { perspectiveId, withCompanyId, companyStore, manageStore } = this.props;\n\n if (isEmpty(perspectiveId) || isEmpty(withCompanyId)) {\n return;\n }\n\n if (isEmpty(companyStore.fetchedCompanyInfo[withCompanyId])) {\n this.props.fetchCompanyInfo(withCompanyId);\n }\n\n if (isEmpty(prevProps)) {\n return;\n }\n\n let addressBookChanged =\n (manageStore.putAddressBookContact === true && prevProps.manageStore.putAddressBookContact === false) ||\n (manageStore.deletedCompanyAddressBookContact === true &&\n prevProps.manageStore.deletedCompanyAddressBookContact === false) ||\n (manageStore.postedAddressBookContact === true && prevProps.manageStore.postedAddressBookContact === false);\n\n if (addressBookChanged) {\n this.fetchAddressBook();\n }\n }\n\n renderAddContactButton() {\n return (\n this.props.displayFlyout(\"contactFlyout\", { companyId: this.props.companyId })}\n >\n \n {Resources.AddNewContact}\n \n );\n }\n\n emptyYourInformationState() {\n return (\n
\n \"No\n {Resources.NoContactInfoYet}\n \n {Resources.AddYourInformationSoWeKnowBestWayToReachYou}\n \n {/* {this.renderAddContactButton()} */}\n
\n );\n }\n\n render() {\n let { withCompanyId, companyStore, perspectiveId, companyId, withContextGroupId, statementsStore } = this.props;\n\n let withCompanyInfo = this.props.getCompanyInfo(withCompanyId);\n isEmpty(withCompanyInfo.Address) && (withCompanyInfo.Address = {});\n\n const isPortal = isCustomerPortal(this.props.history ? this.props.history.location.pathname : \"\");\n\n const helmet = (\n \n \n {this.props.withCompanyName} | {Resources.Contacts}\n \n \n );\n\n if (companyStore.gettingCompanyInfo[withCompanyId]) {\n return (\n \n {helmet}\n \n \n );\n }\n\n return (\n
\n
\n \n {!isEmpty((withCompanyInfo || {}).arEmail) && (\n
\n
\n \n
\n
\n \n this.props.displayFlyout(\"messageFlyout\", {\n companyId,\n perspectiveId,\n withContextGroupId,\n withCompanyId: statementsStore.withCompanyId,\n refetchConversations: this.fetchFolderConversations,\n isPortal\n })\n }\n >\n {(withCompanyInfo || {}).arEmail}\n \n
\n
\n )}\n {!isEmpty((withCompanyInfo[\"Contact Numbers\"] || {})[\"AR Phone\"]) && (\n
\n
\n \n
\n
\n {(withCompanyInfo[\"Contact Numbers\"] || {})[\"AR Phone\"]}\n
\n
\n )}\n {!isEmpty((withCompanyInfo[\"Contact Numbers\"] || {})[\"AR Fax\"]) && (\n
\n
\n \n
\n
\n {(withCompanyInfo[\"Contact Numbers\"] || {})[\"AR Fax\"] || null}\n
\n
\n )}\n
\n {!isEmpty(withCompanyInfo.Address.Line1) && (\n
\n
\n \n
\n
\n {`${withCompanyInfo.Address.Line1}${\n !isEmpty(withCompanyInfo.Address.City) ? `, ${withCompanyInfo.Address.City}` : \"\"\n }${!isEmpty(withCompanyInfo.Address.Region) ? `, ${withCompanyInfo.Address.Region}` : \"\"} ${\n withCompanyInfo.Address.PostalCode\n }`}\n
\n
\n )}\n {!isEmpty((withCompanyInfo || {}).Notes) && (\n
\n
\n \n
\n
{(withCompanyInfo || {}).Notes}
\n
\n )}\n
\n
\n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n companyStore: store.companies,\n manageStore: store.manage,\n statementsStore: store.statements\n };\n};\n\nexport default connect(storeToProps, dispatchToProps)(Profile);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Helmet } from \"react-helmet\";\n\nimport Resources from \"../../lib/resources\";\nimport { isEmpty } from \"../../lib/utils\";\n\nimport { dispatchToProps as contDP } from \"../../store/contextGroups-actions\";\nimport { dispatchToProps as comDP } from \"../../store/company-actions\";\nimport { dispatchToProps as modDP } from \"../../store/modal-actions\";\nimport { dispatchToProps as manDP } from \"../../store/manage-actions\";\n\nimport Card from \"../library/card\";\nimport IconPlusCircle from \"../library/icons/iconPlusCircle\";\nimport IconCompany from \"../library/icons/iconCompany\";\nimport IconUser from \"../library/icons/iconUser\";\n// import IconTrash from \"../library/icons/iconTrash\";\n// import IconEdit from \"../library/icons/iconEdit\";\nimport MainLoader from \"../mainLoader\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...dispatch(comDP),\n ...dispatch(contDP),\n ...dispatch(manDP),\n ...dispatch(modDP)\n };\n};\n\nclass ContactInfo extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n addressBook: {}\n };\n\n this.fetchAddressBook = this.fetchAddressBook.bind(this);\n }\n\n componentDidMount() {\n this.tryUpdate();\n this.fetchAddressBook();\n }\n\n fetchAddressBook() {\n let { companyId } = this.props;\n this.props.fetchCompanyAddressBook(companyId, \"contextGroupId%20=%20NULL\").then(response => {\n if (!isEmpty((response || {}).perspectives)) {\n this.setState({\n addressBook: response.perspectives[\"00000000-0000-0000-0000-000000000000\"][0].items.sort((a, b) =>\n a.isPrimary ? -1 : 1\n )\n });\n } else {\n this.setState({ addressBook: [] });\n }\n });\n }\n\n componentDidUpdate(prevProps) {\n this.tryUpdate(prevProps);\n }\n\n tryUpdate(prevProps) {\n const { perspectiveId, withCompanyId, companyStore, manageStore } = this.props;\n\n if (isEmpty(perspectiveId) || isEmpty(withCompanyId)) {\n return;\n }\n\n if (isEmpty(companyStore.fetchedCompanyInfo[withCompanyId])) {\n this.props.fetchCompanyInfo(withCompanyId);\n }\n\n if (isEmpty(prevProps)) {\n return;\n }\n\n let addressBookChanged =\n (manageStore.putAddressBookContact === true && prevProps.manageStore.putAddressBookContact === false) ||\n (manageStore.deletedCompanyAddressBookContact === true &&\n prevProps.manageStore.deletedCompanyAddressBookContact === false) ||\n (manageStore.postedAddressBookContact === true && prevProps.manageStore.postedAddressBookContact === false);\n\n if (addressBookChanged) {\n this.fetchAddressBook();\n }\n }\n\n renderAddContactButton() {\n return (\n this.props.displayFlyout(\"contactFlyout\", { companyId: this.props.companyId })}\n >\n \n {Resources.AddNewContact}\n \n );\n }\n\n emptyYourInformationState() {\n return (\n
\n \"No\n {Resources.NoContactInfoYet}\n \n {Resources.AddYourInformationSoWeKnowBestWayToReachYou}\n \n {/* {this.renderAddContactButton()} */}\n
\n );\n }\n\n renderContact(contact) {\n return (\n \n
\n {contact.type === \"person\" ? : }\n
\n
\n
\n \n {contact.fullName}\n {!isEmpty(contact.title) && - {contact.title}}\n {contact.isPrimary && {Resources.Primary}}\n \n {/* Below are buttons for editing of contacts */}\n {/* \n {\n this.props.displayFlyout(\"contactFlyout\", { companyId: this.props.companyId, contact });\n }}\n >\n \n \n {\n this.props.displayNotification(\"deleteContactNotification\");\n this.props.deleteCompanyAddressBookContact(this.props.companyId, contact.addressBookContactId);\n }}\n >\n \n \n */}\n
\n\n
\n {Resources.Email}: {contact.email}\n
\n
\n {Resources.Phone}: {contact.phone}\n
\n
\n {Resources.Fax}: {contact.fax}\n
\n
\n {Resources.MailingAddress}:{\" \"}\n {`${contact.address.line1}${!isEmpty(contact.address.city) ? `, ${contact.address.city}` : \"\"}${\n !isEmpty(contact.address.region) ? `, ${contact.address.region}` : \"\"\n } ${contact.address.postalCode}`}\n
\n
\n {Resources.Notes}: {contact.notes}\n
\n
\n
\n );\n }\n\n render() {\n let { withCompanyId, companyStore } = this.props;\n //let { addressBook } = this.state;\n\n let withCompanyInfo = this.props.getCompanyInfo(withCompanyId);\n isEmpty(withCompanyInfo.Address) && (withCompanyInfo.Address = {});\n\n // let yourInfoContent;\n\n // if (isEmpty(addressBook)) {\n // if (this.props.manageStore.isFetchingCompanyAddressBook) {\n // yourInfoContent = ;\n // } else {\n // yourInfoContent = this.emptyYourInformationState();\n // }\n // } else {\n // yourInfoContent = (\n // \n // {/* Below is add contact button. Removed for read only of contact info on portal */}\n // {/*
{this.renderAddContactButton()}
*/}\n // {this.state.addressBook.map((contact, i) => {\n // return (\n //
\n // {this.renderContact(contact)}\n //
\n // );\n // })}\n //
\n // );\n // }\n\n const helmet = (\n \n \n {this.props.withCompanyName} | {Resources.Contacts}\n \n \n );\n\n if (companyStore.gettingCompanyInfo[withCompanyId]) {\n return (\n \n {helmet}\n \n \n );\n }\n\n return (\n \n {helmet}\n \n
\n
\n \n
\n
\n
\n {this.props.getContextGroupNameFromCompanyId(withCompanyId)}\n
\n
\n {Resources.Email}: {(withCompanyInfo || {}).arEmail}\n
\n
\n {Resources.Phone}: {(withCompanyInfo[\"Contact Numbers\"] || {})[\"AR Phone\"]}\n
\n
\n {Resources.Fax}: {(withCompanyInfo[\"Contact Numbers\"] || {})[\"AR Fax\"] || null}\n
\n
\n {Resources.MailingAddress}:{\" \"}\n {`${withCompanyInfo.Address.Line1}${\n !isEmpty(withCompanyInfo.Address.City) ? `, ${withCompanyInfo.Address.City}` : \"\"\n }${!isEmpty(withCompanyInfo.Address.Region) ? `, ${withCompanyInfo.Address.Region}` : \"\"} ${\n withCompanyInfo.Address.PostalCode\n }`}\n
\n {!isEmpty((withCompanyInfo || {}).Notes) && (\n
\n {Resources.Notes}: {(withCompanyInfo || {}).Notes}\n
\n )}\n
\n
\n \n\n {/* Always hide 'your info' */}\n {/* \n {yourInfoContent}\n */}\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n companyStore: store.companies,\n manageStore: store.manage\n };\n};\n\nexport default connect(storeToProps, dispatchToProps)(ContactInfo);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport { NavLink } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nimport Resources from \"../../lib/resources\";\nimport { getConversationSubject, htmlToText, isEmpty, updateSelectedRows, formatDate, find, isCustomerPortal } from \"../../lib/utils\";\n\nimport { dispatchToProps as uaDP } from \"../../store/user-actions\";\nimport { dispatchToProps as convDP } from \"../../store/conversations-actions\";\nimport { dispatchToProps as compDP } from \"../../store/company-actions\";\nimport { dispatchToProps as connDP } from \"../../store/connector-actions\";\nimport { dispatchToProps as congDP } from \"../../store/contextGroups-actions\";\nimport { dispatchToProps as moDP } from \"../../store/modal-actions\";\nimport { dispatchToProps as saDP } from \"../../store/search-actions\";\n\nimport TableData from \"../library/tableData\";\nimport TableDataSortableHeader from \"../library/tableDataSortableHeader\";\nimport Card from \"../library/card\";\nimport AutoCompleteInput from \"../library/autoCompleteInput\";\nimport MainLoader from \"../mainLoader\";\nimport IconMessage from \"../library/icons/iconMessage\";\nimport IconRead from \"../library/icons/iconRead\";\nimport IconUnread from \"../library/icons/iconUnread\";\nimport IconArchive from \"../library/icons/iconArchive\";\nimport IconAttachment from \"../library/icons/iconAttachment\";\nimport IconInbox from \"../library/icons/iconInbox\";\n\nconst dispatchToProps = dispatch => ({\n ...uaDP(dispatch),\n ...convDP(dispatch),\n ...connDP(dispatch),\n ...congDP(dispatch),\n ...moDP(dispatch),\n ...saDP(dispatch),\n ...compDP(dispatch)\n});\n\nclass Messages extends Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedRows: [],\n selectedKeys: [],\n searchTerm: \"\"\n };\n }\n\n componentDidMount = () => {\n this.props.ensureConversationStatuses(this.props.companyId);\n this.tryUpdate();\n }\n\n componentDidUpdate = (prevProps) => {\n this.tryUpdate(prevProps);\n }\n\n componentWillUnmount = () => {\n this.props.clearConversations();\n }\n\n tryUpdate = (prevProps = {}) => {\n const {\n perspectiveId,\n withContextGroupId,\n conversationsStore,\n match: { params },\n pageRowCount\n } = this.props;\n if (isEmpty(perspectiveId) || isEmpty(withContextGroupId)) {\n return;\n }\n\n const folderChanged = ((prevProps.match || {}).params || {}).folder !== params.folder;\n\n if (\n !isEmpty(pageRowCount) &&\n (isEmpty(conversationsStore.fetchedConversations[perspectiveId]) ||\n folderChanged ||\n this.sortHasChanged(prevProps))\n ) {\n this.fetchFolderConversations(pageRowCount);\n }\n\n if (folderChanged) {\n this.props.clearSearchResults();\n this.setState({ searchTerm: \"\" });\n }\n }\n\n sortHasChanged = (prevProps) => {\n if (isEmpty(prevProps)) {\n return false;\n }\n if (\n this.props.conversationsStore.sortDirection !== prevProps.conversationsStore.sortDirection ||\n this.props.conversationsStore.sortBy !== prevProps.conversationsStore.sortBy\n ) {\n return true;\n }\n return false;\n }\n\n onSortChange() {}\n\n getFolderLabel = () => {\n switch (this.props.match.params.folder) {\n case \"archive\":\n return \"closed\";\n case \"sent\":\n return \"waiting-for-response\";\n case \"inbox\":\n default:\n return \"unassigned\";\n }\n }\n\n fetchFolderConversations = (top, skip) => {\n const { companyId, perspectiveId, withContextGroupId } = this.props;\n\n const label = this.getFolderLabel();\n\n this.props.getLabeledWithCompanyConversations(companyId, perspectiveId, withContextGroupId, label, top, skip);\n }\n\n toggleSelectRow = (key, row) => {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedRows);\n this.setState({ selectedKeys: newSelectedKeys, selectedRows: newSelectedRows });\n }\n\n changeConversationSort = (sortBy, sortDirection) => {\n let currentSortBy = this.props.conversations.sortBy;\n let currentSortDirection = this.props.conversations.sortDirection;\n\n if (isEmpty(sortDirection)) {\n if (currentSortBy !== sortBy) {\n this.props.setConversationSort(sortBy, \"desc\");\n } else if (currentSortDirection === \"desc\") {\n this.props.setConversationSort(sortBy, \"asc\");\n } else {\n this.props.setConversationSort(sortBy, \"desc\");\n }\n } else {\n this.props.setConversationSort(sortBy, sortDirection);\n }\n }\n\n handleLoadMore = (pageToLoad) => {\n let { pageRowCount } = this.props;\n let top = pageRowCount;\n let skip = pageToLoad * pageRowCount - pageRowCount;\n this.fetchFolderConversations(top, skip);\n }\n\n getMessagesColumns = (hover) => {\n let {\n conversationsStore,\n companyId,\n perspectiveId,\n match: { params }\n } = this.props;\n\n const statuses = this.props.conversationsStore.statuses || [];\n const waitingResponseStatus = find(\n statuses,\n status => status.conversationStatusName.toLowerCase() === \"waiting for response\"\n );\n const activeStatus = find(statuses, status => status.conversationStatusName.toLowerCase() === \"active\");\n const closedStatus = find(statuses, status => status.conversationStatusName.toLowerCase() === \"closed\");\n\n const companyInfo = this.props.getCompanyInfo(companyId);\n const myAddress = (((companyInfo || {}).connectorEmail || {}).synthetic || {})[perspectiveId];\n\n const selectCol = {\n type: \"rowSelect\",\n width: \"5%\"\n };\n\n const fromCol = {\n header: params.folder === \"sent\" ? Resources.To.toLocaleUpperCase() : Resources.From.toLocaleUpperCase(),\n sortable: noSort => noSort === false,\n content: row => {\n const participants = (params.folder === \"sent\" ? row.toEmailAddresses : row.fromEmailAddresses) || [];\n const participantNames = participants\n .filter(participant => participant.name)\n .map(participant => participant.name);\n const participantAddresses = participants\n .filter(participant => participant.address)\n .map(participant => participant.address);\n const contextGroupNames = row.contextGroupIds\n .map(id => this.props.getContextGroupName(id, false, \"\"))\n .filter(name => name);\n let content;\n if (!isEmpty(participantNames)) {\n content = participantNames.join();\n } else if (!isEmpty(contextGroupNames)) {\n content = contextGroupNames.join();\n } else {\n content = participantAddresses.join();\n }\n\n return (\n
\n {content}\n
\n );\n },\n width: \"25%\"\n };\n\n const dateCol = {\n header: (\n {\n this.onSortChange();\n this.props.setConversationSort(sortBy, sortDirection);\n }}\n text={Resources.Date.toLocaleUpperCase()}\n sortKey={\"ModifiedDate\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row =>
{formatDate(row.updatedDate, false, false)}
,\n width: \"15%\",\n name: \"date\"\n };\n\n let subjectCol = {\n header: (\n {\n this.onSortChange();\n this.props.setConversationSort(sortBy, sortDirection);\n }}\n text={Resources.Subject.toLocaleUpperCase()}\n sortKey={\"Subject\"}\n />\n ),\n sortable: noSort => noSort === false,\n content: row => (\n
\n
\n
{row.displaySubject}
\n {row.hasAttachments && (\n
\n \n
\n )}\n {!isEmpty(row.message) && (\n
\n {!isEmpty(row.displaySubject) && -}\n {htmlToText(row.message)}\n
\n )}\n
\n
\n ),\n width: \"55%\",\n name: \"subject\"\n };\n\n let columns = [selectCol, fromCol, subjectCol, dateCol];\n const hoverColumns = [\n selectCol,\n fromCol,\n subjectCol,\n {\n width: \"15%\",\n content: row => (\n
\n {row.hasUnreads ? (\n {\n e.stopPropagation();\n this.props.updateConversationReadStatuses([row.conversationId], true);\n }}\n >\n \n \n ) : (\n {\n e.stopPropagation();\n this.props.updateConversationReadStatuses([row.conversationId], false);\n }}\n >\n \n \n )}\n {params.folder === \"archive\" ? (\n {\n if (\n isEmpty(row) ||\n isEmpty(row.latestEntry) ||\n isEmpty(row.latestEntry.asJson) ||\n isEmpty(row.latestEntry.asJson.from)\n ) {\n return;\n }\n const toStatus =\n (row || {}).latestEntry.asJson.from[0].address === myAddress ? waitingResponseStatus : activeStatus;\n\n e.stopPropagation();\n this.props.setConversationStatusesTo([row], toStatus.conversationStatusId).then(res => {\n this.setState({ selectedRows: [], selectedKeys: [] });\n this.props.fetchContextGroups(companyId, perspectiveId);\n this.fetchFolderConversations();\n });\n }}\n >\n \n \n ) : (\n {\n e.stopPropagation();\n this.props.setConversationStatusesTo([row], closedStatus.conversationStatusId).then(res => {\n this.setState({ selectedRows: [], selectedKeys: [] });\n this.props.fetchContextGroups(companyId, perspectiveId);\n this.fetchFolderConversations();\n });\n }}\n >\n \n \n )}\n
\n )\n }\n ];\n\n if (hover) {\n return hoverColumns;\n }\n return columns;\n }\n\n renderEmptyState() {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n

{Resources.YourInboxIsEmpty}

\n {this.renderSendMessageButton()}\n
\n );\n }\n\n renderSendMessageButton() {\n let { companyId, perspectiveId, withContextGroupId, statementsStore } = this.props;\n const isPortal = isCustomerPortal(this.props.history.location.pathname);\n\n return (\n \n this.props.displayFlyout(\"messageFlyout\", {\n companyId,\n perspectiveId,\n withContextGroupId,\n withCompanyId: statementsStore.withCompanyId,\n isPortal,\n refetchConversations: this.fetchFolderConversations\n })\n }\n >\n \n {Resources.SendMessage}\n \n );\n }\n\n renderCardContent() {\n let {\n statementsStore,\n conversationsStore,\n searchStore,\n companyId,\n perspectiveId,\n withContextGroupId,\n withCompanyName,\n match: { params }\n } = this.props;\n let { selectedRows } = this.state;\n\n let perspectiveContent = conversationsStore.conversations[perspectiveId] || {};\n let data = perspectiveContent.value || [];\n\n if (data.length > 0) {\n data.forEach(d => {\n d.status =\n this.props.getConversationStatus(d.conversationStatusId || \"65d7d5d6-3615-4710-bce7-7920fd12d0d0\") || {};\n d.updatedDate =
{(formatDate(d.modifiedDate), false, false)}
;\n\n d.channelName = this.props.getContextGroupName(d.contextGroupIds[0]);\n d.age = moment(d.modifiedDate).fromNow(true);\n\n let content = (d.latestEntry || {}).asJson || {};\n let textBody = content.textBody;\n if (textBody === \"Text body not available.\") {\n textBody = null;\n }\n if (isEmpty(textBody)) {\n textBody = htmlToText(content.htmlBody);\n }\n d.message = textBody;\n\n d.displaySubject = getConversationSubject(d.subject);\n d.highlight = d.hasUnreads;\n });\n }\n\n const loading =\n conversationsStore.gettingConversations[perspectiveId] || conversationsStore.settingConversationStatuses;\n\n if (conversationsStore.settingConversationStatuses === true) {\n data = [];\n }\n\n const statuses = this.props.conversationsStore.statuses || [];\n const waitingResponseStatus = find(\n statuses,\n status => status.conversationStatusName.toLowerCase() === \"waiting for response\"\n );\n const activeStatus = find(statuses, status => status.conversationStatusName.toLowerCase() === \"active\");\n const closedStatus = find(statuses, status => status.conversationStatusName.toLowerCase() === \"closed\");\n\n const companyInfo = this.props.getCompanyInfo(companyId);\n const myAddress = (((companyInfo || {}).connectorEmail || {}).synthetic || {})[perspectiveId];\n\n const isPortal = isCustomerPortal(this.props.history.location.pathname);\n\n return (\n \n
\n
\n {this.renderSendMessageButton()}\n row.hasUnreads === false)}\n onClick={() => {\n const conversationIds = selectedRows.map(row => row.conversationId);\n this.props\n .updateConversationReadStatuses(conversationIds, true)\n .then(res => this.setState({ selectedRows: [], selectedKeys: [] }));\n }}\n >\n \n {Resources.MarkAsRead}\n \n row.hasUnreads === true)}\n onClick={() => {\n const conversationIds = selectedRows.map(row => row.conversationId);\n this.props\n .updateConversationReadStatuses(conversationIds, false)\n .then(res => this.setState({ selectedRows: [], selectedKeys: [] }))\n .then(res => this.fetchFolderConversations());\n }}\n >\n \n {Resources.MarkAsUnread}\n \n {params.folder === \"archive\" ? (\n {\n const conversations = selectedRows.map(index => data[index]);\n const conversationsToInbox = [];\n const conversationsToSent = [];\n\n conversations.forEach(conversation => {\n if (\n isEmpty(conversation) ||\n isEmpty(conversation.latestEntry) ||\n isEmpty(conversation.latestEntry.asJson) ||\n isEmpty(conversation.latestEntry.asJson.from)\n ) {\n return;\n } else if ((conversation || {}).latestEntry.asJson.from[0].address === myAddress) {\n conversationsToSent.push(conversation);\n } else {\n conversationsToInbox.push(conversation);\n }\n });\n\n const promises = [];\n\n if (!isEmpty(conversationsToInbox)) {\n promises.push(\n this.props.setConversationStatusesTo(conversationsToInbox, activeStatus.conversationStatusId)\n );\n }\n if (!isEmpty(conversationsToSent)) {\n this.props.setConversationStatusesTo(\n conversationsToSent,\n waitingResponseStatus.conversationStatusId\n );\n }\n\n Promise.all(promises).then(res => {\n this.setState({ selectedRows: [], selectedKeys: [] });\n this.fetchFolderConversations();\n this.props.fetchContextGroups(companyId, perspectiveId);\n });\n }}\n >\n \n {Resources.MoveToInbox}\n \n ) : (\n {\n const conversations = selectedRows;\n this.props.setConversationStatusesTo(conversations, closedStatus.conversationStatusId).then(res => {\n this.setState({ selectedRows: [], selectedKeys: [] });\n this.fetchFolderConversations();\n this.props.fetchContextGroups(companyId, perspectiveId);\n });\n }}\n >\n \n {Resources.Archive}\n \n )}\n
\n
\n {\n const searchTerm = e.target.value;\n\n const request = {\n request: searchTerm,\n perspectiveId,\n resourceIds: [],\n withCompanyIds: [this.props.withCompanyId],\n label: this.getFolderLabel()\n };\n this.setState({ searchTerm });\n\n this.props.debouncedFetchSearchResults(this.props.companyId, request);\n }}\n isShowingSearchResult={conversationsStore.isShowingSearchResult}\n handleClearResult={() => {\n this.setState({ searchTerm: \"\" });\n this.props.clearSearchResults();\n this.fetchFolderConversations();\n }}\n text={this.state.searchTerm}\n noResultsMessage={Resources.NoMessageSearchResultsMessage}\n showNoResultsMessage={searchStore.fetchingSearchResultsFailed === false}\n maxOptions={7}\n loading={searchStore.isFetchingSearchResults}\n handleSelectOption={option => {\n this.setState({ selectedRows: [] });\n this.props.setConversationsToSearchResult([option], this.props.perspectiveId);\n this.props.displayFlyout(\"messageFlyout\", {\n conversationId: option.conversationId,\n companyId,\n perspectiveId,\n withCompanyId: statementsStore.withCompanyId,\n withCompanyName,\n withContextGroupId,\n conversationSubject: option.subject,\n isPortal\n });\n }}\n callToActionButton={\n \n this.props.setConversationsToSearchResult(searchStore.searchResults, this.props.perspectiveId)\n }\n >\n {Resources.SeeAllMessageResults(this.state.searchTerm)}\n
\n }\n renderOption={option => {\n return (\n
\n \n {option.subject || Resources.NoSubject}\n \n {formatDate(option.updatedDate)}\n
\n );\n }}\n options={searchStore.searchResults}\n width=\"300px\"\n />\n
\n \n\n this.handleLoadMore(pageSelected)}\n maxRows={perspectiveContent.count || 0}\n loading={loading}\n offsetHeight=\"40\"\n localSelectedKeys={this.state.selectedKeys}\n showSelectAll\n pageName=\"messages\"\n selectedType=\"messages\"\n rowKey=\"conversationId\"\n onRowClick={row =>\n this.props.displayFlyout(\"messageFlyout\", {\n conversationId: row.conversationId,\n companyId,\n perspectiveId,\n withCompanyId: statementsStore.withCompanyId,\n withCompanyName,\n withContextGroupId,\n conversationSubject: row.displaySubject,\n isPortal\n })\n }\n onRowSelectToggle={key =>\n this.toggleSelectRow(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k => find(data, row => row.conversationId === k))\n )\n }\n emptyRender={\n
\n

{Resources.EmptyInboxMessages}

\n
\n }\n />\n
\n );\n }\n\n render() {\n const { conversationsStore, perspectiveId, withCompanyName } = this.props;\n\n const perspectiveContent = conversationsStore.conversations[perspectiveId] || {};\n const data = perspectiveContent.value || [];\n const loading =\n conversationsStore.gettingConversations[perspectiveId] || conversationsStore.settingConversationStatuses;\n\n const helmet = (\n \n \n {withCompanyName} | {Resources.Communications}\n \n \n );\n\n const renderEmptyInboxState = isEmpty(data) && !conversationsStore.gettingConversations[perspectiveId];\n const activeCounts = conversationsStore.unassignedUnreads || 0;\n\n let cardContent;\n\n if (renderEmptyInboxState) {\n cardContent = this.renderEmptyState();\n } else if (loading && data.length === 0) {\n cardContent = ;\n } else {\n cardContent = this.renderCardContent();\n }\n\n return (\n \n {helmet}\n
\n \n {Resources.InboxCount(activeCounts)}\n \n \n {Resources.Sent}\n \n \n {Resources.Archive}\n \n
\n \n {cardContent}\n \n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n contextGroupsStore: store.contextGroups,\n conversationsStore: store.conversations,\n statementsStore: store.statements,\n searchStore: store.search,\n pageRowCount: store.general.pageRowCount\n };\n};\n\nexport default connect(storeToProps, dispatchToProps)(Messages);\n","import React, { Component } from \"react\";\nimport LockstepLogo from \"../library/lockstepLogo\";\nimport Resources from \"../../lib/resources\";\n\nclass PortalSessionExpired extends Component {\n render() {\n return (\n
\n
\n \n {Resources.ConnectedBy}\n {\" \"}\n \n
\n \n \n \n \n \n \n \n \n \n

{Resources.YourSessionHasExpired}

\n

{Resources.PortalSessionExpired}

\n
\n );\n }\n}\n\nexport default PortalSessionExpired;\n","import React, { Component } from \"react\";\nimport LockstepLogo from \"../library/lockstepLogo\";\nimport Resources from \"../../lib/resources\";\n\nclass PortalAccountError extends Component {\n render() {\n return (\n
\n
\n \n {Resources.ConnectedBy}\n {\" \"}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

{Resources.OopsThereIsAnIssueAccessingYourAccount}

\n

{Resources.PleaseContactSupportToReportThisError}

\n
\n );\n }\n}\n\nexport default PortalAccountError;\n","import React, { Component } from \"react\";\n\nclass IconGlobe extends Component {\n render() {\n let { className, height, style } = this.props;\n\n return (\n \n \n \n \n );\n }\n}\n\nIconGlobe.defaultProps = {\n height: 22\n};\n\nexport default IconGlobe;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport Resources from \"../../lib/resources\";\n\nimport IconGlobe from \"../library/icons/iconGlobe\";\n\nimport { dispatchToProps as locDP } from \"../../store/localization-actions\";\nimport { isEmpty } from \"../../lib/utils\";\n\nconst dispatchToProps = dispatch => ({\n ...locDP(dispatch)\n});\n\nclass LanguageSelector extends Component {\n render() {\n let { languages, languageId } = this.props;\n if (isEmpty(languages)) {\n return null;\n }\n return (\n
\n \n \n {Resources.Language}\n \n \n {(Object.keys(languages) || []).map((key, i) => {\n let language = languages[key];\n return (\n {\n this.props.setLanguage(language.languageId);\n }}\n >\n {language.languageDescription}\n
\n );\n })}\n
\n \n );\n }\n}\n\nconst storeToProps = store => ({\n languages: store.localization.resources,\n languageId: store.localization.languageId\n});\n\nexport default connect(storeToProps, dispatchToProps)(LanguageSelector);\n","import React from 'react';\n\nimport Dropdown from './dropdown';\nimport IconAngleDown from '../library/icons/iconAngleDown';\n\nconst DropdownSearchSort = (props) => {\n const { longestCustomerName, selectedCompany, onSetVisible } = props;\n\n return (\n \n {\n selectedCompany.displayName\n }\n \n
\n }\n children = {props.children}\n buttonWidth= {longestCustomerName}\n menuWidth={longestCustomerName}\n matchButtonMenuWidth={false}\n menuClassName={'multi-customer-dropdown dropdown-max-height-scroll'}\n buttonClassName='button-select-input dropdown-button-border h36 table-padding-left font-weight-medium fs-15'\n aria-labelledby={`dropdown-${longestCustomerName}`}\n isForm={true}\n onSetVisible={onSetVisible}\n />\n )\n}\n\nexport default DropdownSearchSort ","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { NavLink, Redirect, Route, Switch } from \"react-router-dom\";\nimport moment from \"moment\";\n\nimport MainContentHeader from \"../main_content_header/mainContentHeader\";\nimport OpenInvoices from \"./openInvoices\";\nimport ClosedInvoices from \"./closedInvoices\";\nimport Payments from \"./payments\";\nimport Documents from \"./documents\";\nimport Profile from \"./profile\";\nimport ContactInfo from \"./contactInfo\";\nimport Messages from \"./messages\";\nimport MainLoader from \"../mainLoader\";\nimport PortalSessionExpired from \"./portalSessionExpired\";\nimport PortalAccountError from \"./portalAccountError\";\nimport LanguageSelector from \"./languageSelector\";\nimport DropdownSearchSort from \"../library/dropdownSearchSort\";\nimport TableDataSortableHeader from \"../library/tableDataSortableHeader\";\nimport SearchInput from \"../searchInput\";\nimport Resources from \"../../lib/resources\";\nimport { capStringAtLength, find, isEmpty } from \"../../lib/utils\";\nimport \"../../css/index.scss\";\n\nimport { dispatchToProps as genDP } from \"../../store/general-actions\";\nimport { dispatchToProps as aaDP } from \"../../store/accounts-actions\";\nimport { dispatchToProps as paDP } from \"../../store/perspectives-actions\";\nimport { dispatchToProps as cgDP } from \"../../store/contextGroups-actions\";\nimport { dispatchToProps as convDP } from \"../../store/conversations-actions\";\nimport { dispatchToProps as saDP } from \"../../store/statements-actions\";\nimport { dispatchToProps as caDP } from \"../../store/company-actions\";\nimport { dispatchToProps as uaDP } from \"../../store/user-actions\";\nimport { dispatchToProps as moDP } from \"../../store/modal-actions\";\n\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\nimport { cloneDeep, isEqual } from \"lodash\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...genDP(dispatch),\n ...aaDP(dispatch),\n ...saDP(dispatch),\n ...paDP(dispatch),\n ...cgDP(dispatch),\n ...caDP(dispatch),\n ...uaDP(dispatch),\n ...convDP(dispatch),\n ...moDP(dispatch)\n };\n};\n\nclass CustomerPortal extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n displayAccountError: false,\n changedWithCompanyId: false,\n allAccountsSelected: false,\n selectedCompany: {},\n filterValue: '',\n dropdownSortBy: 'Account',\n dropdownSortDirection: 'desc',\n dropdownCompanies: [],\n longestCustomerName: 0,\n hoveredRow: '',\n initialLoad: true,\n \n };\n\n this.searchInputRef = React.createRef();\n this.allAccountsDisplayName = \"All Accounts\";\n }\n\n componentDidMount() {\n window.Intercom(\"shutdown\");\n this.props.fetchDropdownContent();\n this.tryUpdate();\n }\n\n componentDidUpdate(prevProps) {\n this.tryUpdate(prevProps);\n }\n\n componentWillUnmount() {\n window.Intercom(\"boot\");\n }\n\n tryUpdate(prevProps = {}) {\n let {\n userStore,\n contextGroupsStore,\n perspectivesStore,\n statementsStore,\n conversationsStore,\n accountsStore\n } = this.props;\n\n if (this.props.APILive === false) {\n return null;\n }\n\n const companyId = accountsStore.selectedCompanyId;\n const perspectiveId = perspectivesStore.selectedPerspectiveId;\n const subscription = this.props.getSubscription();\n\n // The rule for whether we have a national account, i.e. show-all pay-all features should be enabled, is that the account has multiple companies\n // under it and the national account option is enabled in ATC.\n const nationalAccount = accountsStore.selectedAccount.companies.length > 1 && (accountsStore.selectedAccount.features || {}).portalAllowNAcctAccess === 1;\n\n if (subscription === null) {\n return;\n } else if ((subscription.subscriptionTypeName || \"\").toLowerCase() !== \"customer portal\") {\n this.props.history.push(\"/\");\n }\n\n if (userStore.isLoggingIn !== true) {\n let duration = moment.duration(moment(new Date(userStore.decoded.exp * 1000)).diff(moment()));\n let asMinutes = duration.asMinutes();\n\n if (asMinutes < 5 && !userStore.isTokenExpiring) {\n this.props.tokenExpiring();\n }\n }\n\n // This check needs to be done before the check for whether we can try to auto-select the All Accounts option. The reason is the call to the\n // action method for selecting a company must be made with the proper data in order to be able to switch from All Accounts to the primary\n // company. We don't want the call to select a company below to happen last if we are dealing with a national account.\n if (isEmpty(companyId)) {\n this.props.selectCompany(this.props.getDefaultCompany().companyId);\n return null;\n }\n\n // If this is the initial page load and the current account is a national account, we want to auto-select All Accounts as a convenience to the\n // user\n if (this.state.initialLoad && accountsStore.hasDropdownContent && nationalAccount) {\n this.handleDropDownClick({\n value: \"ALL_ACCOUNTS_ID\",\n displayName: this.allAccountsDisplayName,\n fullName: this.allAccountsDisplayName,\n openInvoices: accountsStore?.dropdownContent?.allAccountObj?.openInvoices\n });\n\n this.setState({ initialLoad: false });\n }\n\n if (isEmpty(contextGroupsStore.companyId) && !isEmpty(companyId)) {\n this.props.fetchCompanyInfo(companyId);\n this.props.selectCompany(companyId);\n }\n\n if (isEmpty(perspectiveId)) {\n const companyPerspectives = this.props.getCompanyPerspectives(companyId);\n\n if (companyPerspectives === null) {\n return;\n }\n\n const vendorPerspective = find(\n companyPerspectives,\n cPerspective => cPerspective.parentPerspective.perspectiveName === \"vendors\"\n );\n\n this.props.setSelectedPerspectiveId(vendorPerspective.perspectiveId);\n } else if (isEmpty(statementsStore.withCompanyId)) {\n // This should only run once\n const contextGroupsMaps = this.props.getContextGroupsMaps(companyId, perspectiveId);\n\n if (contextGroupsMaps === null) {\n return;\n }\n\n if (isEmpty(contextGroupsMaps)) {\n // There are no context groups to show or assosciated companies with this account. This does not make sense as it is a portal account.\n if (this.state.displayAccountError !== true) {\n this.setState({ displayAccountError: true });\n }\n\n return;\n } else if (this.state.displayAccountError === true) {\n this.setState({ displayAccountError: false });\n }\n\n const withCompanyId = (contextGroupsMaps[Object.keys(contextGroupsMaps)[0]] || {}).companyId;\n\n this.props.fetchCompanyInfo(withCompanyId);\n this.props.setWithCompanyId(withCompanyId);\n }\n\n if (!isEmpty(prevProps) && statementsStore.withCompanyId !== prevProps.statementsStore.withCompanyId) {\n const withCompanyId = this.props.statementsStore.withCompanyId;\n const withContextGroupId = (\n find(this.props.contextGroupsStore.value, contextGroup => contextGroup.companyId === withCompanyId) || {}\n ).contextGroupId;\n\n if (\n conversationsStore.gettingConversations[perspectiveId] !== true &&\n conversationsStore.fetchedConversations[perspectiveId] !== true\n ) {\n // Get unassigned conversations to populate inbox counter\n this.props.getLabeledWithCompanyConversations(companyId, perspectiveId, withContextGroupId, \"unassigned\");\n }\n\n if (statementsStore.fetchingPaymentInfoFailed !== true) {\n this.props.fetchPaymentInfo(companyId, withCompanyId);\n }\n\n if (statementsStore.fetchingCurrenciesFailed !== true) {\n this.props.fetchCurrencies(companyId, perspectiveId, withCompanyId);\n }\n\n this.setState({ changedWithCompanyId: true });\n }\n\n if (isEqual(this.state.selectedCompany, {})) {\n this.setState({ selectedCompany: this.setDropdownRowValues(this.props.accountsStore.selectedCompany) });\n }\n }\n\n getRouteFromATCPage(custPage){\n switch (custPage){\n case \"Statements\":\n return \"open-invoices\";\n case \"Invoices\":\n return \"closed-invoices\";\n case \"Payments\":\n return \"payments\";\n default:\n return \"\";\n }\n }\n\n getDefaultRouteFromPage(defaultRoute) {\n if (isEmpty(defaultRoute)) {\n return \"\";\n }\n switch (defaultRoute) {\n case \"Documents\":\n return \"documents\";\n case \"CustPayments\":\n return \"payments\";\n case \"CustContactInfo\":\n return \"contacts\";\n case \"CustInvoices\":\n return \"closed-invoices\";\n case \"CustStatement\":\n default:\n return \"open-invoices\";\n }\n }\n\n getCompanySelector = (accountsStore, nationalAccount) => {\n const allAccountObj = {\n value: 'ALL_ACCOUNTS_ID',\n displayName: this.allAccountsDisplayName,\n fullName: this.allAccountsDisplayName,\n openInvoices: accountsStore?.dropdownContent?.allAccountObj?.openInvoices\n };\n\n return (\n {\n this.searchInputRef.current.focus();\n }}\n >\n this.onFilterValueChange(e)}\n onKeyPress={this.onFilterValueChange}\n onClick={this.onFilterValueChange}\n className='account-search-container d-flex mt-2'\n inputRef={this.searchInputRef}\n />\n \n {/* TODO: Future dynamic styling for header width */}\n {/* */}\n \n \n \n \n \n \n \n {nationalAccount ? this.handleDropDownClick(allAccountObj)}>\n \n \n : null}\n {this.props?.accountsStore?.dropdownContent?.combinedDropdownData.filter(company => this.state.filterValue === '' || company.fullName.toLowerCase().includes(this.state.filterValue)).length !==0\n ?\n this.props?.accountsStore?.dropdownContent?.combinedDropdownData.filter(company => this.state.filterValue === '' || company.fullName.toLowerCase().includes(this.state.filterValue))\n .map((item, index) => {\n return (\n this.handleDropDownClick(item)}>\n \n {nationalAccount ? : null}\n \n )\n }):
Sorry! No Account Found.
}\n \n \n
\n this.handleDropdownSort(sortBy, sortDirection)}\n />\n \n {nationalAccount ?\n this.handleDropdownSort(sortBy, sortDirection)}\n /> : null}\n
{allAccountObj.displayName}{allAccountObj.openInvoices > 0 ? allAccountObj.openInvoices : ''}
{\n this.setState({ hoveredRow: index })\n }}\n onMouseLeave={() => {\n this.setState({ hoveredRow: null })\n }}\n >\n {item.displayName}\n {item.openInvoices > 0 ? item.openInvoices : ''}
\n \n );\n }\n\n setDropdownRowValues = (company) => {\n if (company) {\n return {\n value: company.companyId,\n displayName: company.companyName.length >= Resources.TruncateLimit ? capStringAtLength(company.companyName, Resources.TruncateLimit) : company.companyName,\n fullName: company.companyName,\n openInvoices: company.openInvoiceCount\n }\n }\n }\n\n handleDropDownClick = (item) => {\n if (item.displayName === this.allAccountsDisplayName && this.state.allAccountsSelected) {\n return;\n }\n else if (item.displayName === this.allAccountsDisplayName && !this.state.allAccountsSelected) {\n this.setState({\n allAccountsSelected: true,\n selectedCompany: item,\n filterValue: ''\n })\n } else {\n this.setState({\n allAccountsSelected: false,\n selectedCompany: item,\n filterValue: ''\n })\n }\n\n if (item.value !== this.props.accountsStore.selectedCompany.companyId) {\n this.setState({hoveredRow: ''})\n }\n\n // We need to include the primary company ID value in order to set it in the ledger store, which will also respond to this action\n this.props.selectCompany(item.value, this.props.accountsStore.primaryCompany.companyId);\n }\n\n onFilterValueChange = (e) => {\n if (e.target.value || e.target.value === '') {\n this.setState({ filterValue: e.target.value.toLowerCase() });\n }\n }\n\n handleDropdownSort = (sortBy, sortDirection) => {\n // If the sort direction changes, reverse current array in the table\n let sortedDropdownCompanies = cloneDeep(this.props?.accountsStore?.dropdownContent?.combinedDropdownData);\n\n if (this.state.dropdownSortBy === sortBy) {\n sortedDropdownCompanies = sortedDropdownCompanies.reverse();\n } else if(sortBy === 'OpenInvoiceCount') {\n sortedDropdownCompanies = sortedDropdownCompanies.sort((a, b) => b.openInvoices - a.openInvoices);\n } else {\n sortedDropdownCompanies = sortedDropdownCompanies.sort((a, b) => a.fullName.localeCompare(b.fullName));\n }\n\n this.setState({\n dropdownSortBy: sortBy,\n dropdownSortDirection: sortDirection,\n dropdownCompanies: sortedDropdownCompanies\n })\n\n this.props.updateDropdownSort(sortedDropdownCompanies);\n }\n\n render() {\n const {\n contextGroupsStore,\n perspectivesStore,\n statementsStore,\n userStore,\n companyStore,\n accountsStore\n } = this.props;\n\n const { allAccountsSelected } = this.state;\n const nationalAccount = accountsStore.selectedAccount.companies.length > 1 && (accountsStore.selectedAccount.features || {}).portalAllowNAcctAccess === 1;\n\n if (this.state.displayAccountError) {\n return ;\n }\n\n const selectedCompany = accountsStore.selectedCompany;\n const { companyName, companyId } = selectedCompany;\n\n const perspectiveId = perspectivesStore.selectedPerspectiveId;\n const withCompanyId = statementsStore.withCompanyId;\n const companyCustId = this.props.getCompanyInfo(companyId).CustID || \"\";\n let defaultPage = (this.props.getCompanyInfo(withCompanyId).CompanySettings || {}).DefaultPortalPage;\n\n if (companyStore.fetchedCompanyInfo[withCompanyId] && isEmpty(defaultPage)) {\n defaultPage = \"CustStatement\";\n }\n\n let defaultRoute = this.getDefaultRouteFromPage(defaultPage);\n const atcCustPage = window.localStorage.getItem(\"cust-page\");\n\n if (atcCustPage) {\n const overrideRoute = this.getRouteFromATCPage(atcCustPage);\n\n if (overrideRoute) {\n defaultRoute = overrideRoute;\n }\n }\n\n const withContextGroup = find(contextGroupsStore.value, contextGroup => contextGroup.companyId === withCompanyId) || {};\n const withContextGroupId = withContextGroup.contextGroupId;\n const withCompanyName = withContextGroup.displayName || withContextGroup.companyName;\n const displayCompanyName = withContextGroup.displayName;\n const injectedProps = { companyId, perspectiveId, withCompanyId, withCompanyName, withContextGroupId, allAccountsSelected, nationalAccount };\n const unassignedUnreads = this.props.conversationsStore.unassignedUnreads;\n\n const headerLinks = (\n \n \n {Resources.OpenInvoices.toLocaleUpperCase()}\n \n\n {(accountsStore.selectedAccount.features || {}).custInvoices === 1 && ( \n \n {Resources.ClosedInvoices.toLocaleUpperCase()}\n \n )}\n\n {(accountsStore.selectedAccount.features || {}).custPayments === 1 && (\n \n {Resources.Payments.toLocaleUpperCase()}\n \n )}\n\n { !this.state.allAccountsSelected ? \n <>\n \n {Resources.Messages.toLocaleUpperCase()}\n {unassignedUnreads > 0 && (\n
\n {unassignedUnreads}\n
\n )}\n \n {this.props.flags.updatedProfileAndDocumentsContent ? (\n \n {Resources.Profile.toLocaleUpperCase()}\n \n ) : (\n \n {Resources.Contacts.toLocaleUpperCase()}\n \n )}\n\n \n {Resources.Documents.toLocaleUpperCase()}\n \n : null\n }\n
\n );\n\n const propMerger = Component => {\n return props => {\n const mergedProps = { ...props, ...injectedProps };\n return ;\n };\n };\n\n if (userStore.isTokenExpiring) {\n return ;\n }\n\n if (isEmpty(withCompanyName) || (isEmpty(statementsStore.currencies) && this.state.changedWithCompanyId === false)) {\n return ;\n }\n\n let logoUrl = this.props.getCompanyInfo(withCompanyId).iconUrl;\n let headerSubtitle =\n companyName === companyCustId\n ? Resources.HelloCompanyNameWelcomeBack(companyName)\n : Resources.HelloCompanyNameIdWelcomeBack(companyName, companyCustId);\n let portalCompanySelector;\n\n if (nationalAccount) {\n portalCompanySelector = this.getCompanySelector(accountsStore, nationalAccount);\n }\n\n let userAgentString = navigator.userAgent;\n let chromeAgent = userAgentString.indexOf(\"Chrome\") > -1;\n let safariAgent = userAgentString.indexOf(\"Safari\") > -1;\n\n if (chromeAgent && safariAgent) {\n safariAgent = false;\n }\n\n if (safariAgent === true) {\n let errorMessage = Resources.UnsupportedBrowserText;\n this.props.displayModal(\"safariModal\", { errorMessage });\n }\n\n return (\n
\n \n {this.props.flags.giveFeedbackSsPortal.enabled ? (\n {\n this.props.displayModal(\"portalGiveFeedbackModal\");\n }}\n >\n {Resources.GiveFeedback}\n
\n ) : null}\n
\n \n {!isEmpty(defaultRoute) && (\n \n )}\n }\n />\n \n \n {\n (accountsStore.selectedAccount.features || {}).custInvoices !== 1 && (\n \n )\n }\n\n \n {\n (accountsStore.selectedAccount.features || {}).custPayments !== 1 && (\n \n )\n }\n\n \n {/* These redirects deal with the case where the user selects All Accounts while viewing a tab that is normally hidden in that mode */}\n {\n allAccountsSelected && (\n \n )\n }\n {\n allAccountsSelected && (\n \n )\n }\n {\n allAccountsSelected && (\n \n )\n }\n {\n allAccountsSelected && (\n \n )\n }\n \n \n \n \n \n \n
\n
\n \n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n accountsStore: store.accounts,\n userStore: store.user,\n conversationsStore: store.conversations,\n companyStore: store.companies,\n perspectivesStore: store.perspectives,\n statementsStore: store.statements,\n contextGroupsStore: store.contextGroups,\n APILive: store.general.isAPILive\n };\n};\n\nexport default withLDConsumer()(connect(storeToProps, dispatchToProps)(CustomerPortal));\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport Resources from \"../lib/resources\";\r\nimport MainContentHeader from \"../components/main_content_header/mainContentHeader\";\r\nimport RadioInput from \"./library/radioInput\";\r\nimport { dispatchToProps as uaDP } from \"../store/user-actions\";\r\nimport { dispatchToProps as gaDP } from \"../store/general-actions\";\r\nimport { isEmpty } from \"../lib/utils\";\r\nconst dispatchToProps = dispatch => {\r\n return {\r\n ...uaDP(dispatch),\r\n ...gaDP(dispatch)\r\n };\r\n};\r\nclass NotificationSettings extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n notificationFrequency: \"daily\",\r\n readOnly: true\r\n };\r\n this.handleEditOrSave = this.handleEditOrSave.bind(this);\r\n }\r\n componentDidMount() {\r\n if (!isEmpty(this.props.userStore.userConfig)) {\r\n this.setState({ notificationFrequency: this.props.userStore.userConfig.notificationFrequency || \"daily\" });\r\n }\r\n }\r\n componentDidUpdate(prevProps) {\r\n if (this.props.userStore.userConfig !== prevProps.userStore.userConfig) {\r\n this.setState({\r\n notificationFrequency: this.props.userStore.userConfig.notificationFrequency || \"daily\"\r\n });\r\n }\r\n }\r\n handleEditOrSave() {\r\n if (this.state.readOnly) {\r\n this.setState({ readOnly: false });\r\n return;\r\n } else {\r\n this.setState({ readOnly: true });\r\n this.props\r\n .updateUserConfig({ notificationFrequency: this.state.notificationFrequency })\r\n .then(() => {\r\n this.props.showToast({\r\n timeout: 5000,\r\n text: Resources.NotificationPreferencesSaved,\r\n linkHidden: true\r\n });\r\n })\r\n .catch(err => {\r\n return;\r\n });\r\n }\r\n }\r\n render() {\r\n const notificationFrequencyRadios = [\r\n { label: Resources.DailyWeekdays, value: \"daily\" },\r\n { label: Resources.WeeklyMondays, value: \"weekly\" },\r\n { label: Resources.Never, value: \"never\" }\r\n ];\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n this.setState({ notificationFrequency: item.value })}\r\n />\r\n
\r\n \r\n {this.state.readOnly === false && (\r\n \r\n this.setState({\r\n notificationFrequency: (this.props.userStore.userConfig || {}).notificationFrequency || \"daily\",\r\n readOnly: true\r\n })\r\n }\r\n >\r\n {Resources.Cancel}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nconst storeToProps = store => {\r\n return {\r\n userStore: store.user\r\n };\r\n};\r\nexport default connect(storeToProps, dispatchToProps)(NotificationSettings);\r\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\n\nimport Dropzone from \"react-dropzone\";\nimport ReactQuill from \"./library/lockstepQuill\";\nimport MainContentHeader from \"../components/main_content_header/mainContentHeader\";\n\nimport \"react-quill/dist/quill.snow.css\";\nimport \"../css/quill.scss\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport Resources from \"../lib/resources\";\nimport Icons from \"../lib/icons\";\n\nimport { dispatchToProps } from \"../store/user-actions\";\nimport { isEmpty } from \"../lib/utils\";\nimport { raiseError } from \"../store/error-actions\";\n\nclass ManageSignature extends Component {\n constructor(props) {\n super(props);\n this.quillRef = null;\n this.reactQuillRef = null;\n this.state = { ...this.defaultState };\n\n this.handleEditOrSave = this.handleEditOrSave.bind(this);\n // this.postEditorContents = this.postEditorContents.bind(this);\n this.uploadSignatureImages = this.uploadSignatureImages.bind(this);\n }\n\n defaultState = {\n dropEnabled: false,\n value: \"\",\n editorSelection: { index: 0 },\n quillConfig: {\n readOnly: true,\n theme: \"snow\",\n modules: {\n toolbar: [\n [{ header: [1, 2, 3, 4, false] }],\n [\"bold\", \"italic\", \"underline\"],\n [\"strike\", \"blockquote\"],\n [{ list: \"ordered\" }, { list: \"bullet\" }, { indent: \"-1\" }, { indent: \"+1\" }],\n [\"link\"]\n ],\n keyboard: {\n bindings: {\n tab: {\n key: 9,\n handler: () => {\n return true;\n }\n }\n }\n }\n }\n },\n savingAsTemplate: false\n };\n\n attachQuillRefs = () => {\n // We need to update state to hook into componentDidUpdate\n if (this.state.quillRefAttached !== true) {\n this.setState({ quillRefAttached: true });\n }\n\n if (typeof (this.reactQuillRef || {}).getEditor !== \"function\") return;\n this.quillRef = this.reactQuillRef.getEditor();\n };\n\n componentDidUpdate() {\n const { userStore } = this.props;\n this.attachQuillRefs();\n\n const shouldTryUpdate =\n userStore.isUpdatingCompanyUserSignature === false &&\n userStore.updatedCompanyUserSignature === false &&\n userStore.updatingCompanyUserSignatureFailed === false;\n\n if (isEmpty(this.state.companySignatureId)) {\n const signature = this.props.getCompanyUserSignature(\n this.props.getMyUserIdFromToken(),\n this.props.match.params.companyId\n );\n\n if (signature !== null) {\n if (!isEmpty(signature)) {\n this.setState({\n companySignatureId: signature.companySignatureId,\n existingSignature: signature.signatureHtml\n });\n this.reactQuillRef.setEditorContents(this.quillRef, signature.signatureHtml);\n } else if (shouldTryUpdate) {\n this.props\n .updateCompanyUserSignature(this.props.match.params.companyId, {\n companySignatureId: this.state.companySignatureId || null,\n description: \"\",\n signatureTitle: \"\",\n signatureText: \"\",\n signatureHtml: \"\"\n })\n .then(companySignature => {\n this.setState({ companySignatureId: companySignature[0].companySignatureId });\n });\n }\n }\n }\n }\n\n getText() {\n let uEditor = this.reactQuillRef.makeUnprivilegedEditor(this.quillRef);\n return uEditor.getText();\n }\n\n handleEditOrSave() {\n let nextQuillConfig = { ...this.state.quillConfig };\n if (this.state.quillConfig.readOnly) {\n nextQuillConfig.readOnly = false;\n this.setState({ quillConfig: nextQuillConfig });\n return;\n } else {\n nextQuillConfig.readOnly = true;\n this.setState({ quillConfig: nextQuillConfig });\n\n return this.props\n .updateCompanyUserSignature(this.props.match.params.companyId, {\n companySignatureId: this.state.companySignatureId || null,\n description: \"\",\n signatureTitle: this.state.signatureTitle || this.getText(),\n signatureText: this.getText(),\n signatureHtml: this.state.value\n })\n .then(sigantures => {\n this.setState({ existingSignature: sigantures[0].signatureHtml });\n this.props.showToast({\n timeout: 5000,\n text: Resources.NotificationPreferencesSaved,\n linkHidden: true\n });\n })\n .catch(err => {\n return;\n });\n }\n }\n\n uploadSignatureImages(images) {\n let companySignatureId;\n if (!isEmpty(this.state.companySignatureId)) {\n companySignatureId = Promise.resolve(this.state.companySignatureId);\n } else {\n companySignatureId = this.props\n .updateCompanyUserSignature(this.props.match.params.companyId, {\n companySignatureId: this.state.companySignatureId || null,\n description: \"\",\n signatureTitle: \"\",\n signatureText: \"\",\n signatureHtml: \"\"\n })\n .then(companySignature => {\n return Promise.resolve(companySignature.companySignatureId);\n });\n }\n\n companySignatureId\n .then(companySignatureId => {\n return this.props.updateSignatureAttachments(this.props.match.params.companyId, companySignatureId, images);\n })\n .then(attachedImages => {\n const { index } = this.state.editorSelection;\n\n attachedImages.reverse().forEach(image => {\n this.quillRef.insertEmbed(index, \"image\", image.attachmentURI);\n });\n })\n .catch(err => console.log(err));\n\n this.setState({ dropEnabled: false });\n }\n\n render() {\n return (\n \n \n
\n
{Resources.SignaturesExplanation}
\n
\n
\n
\n {\n this.setState({ dropEnabled: true });\n }}\n onDragLeave={e => {\n this.setState({ dropEnabled: false });\n }}\n onDrop={(acceptedFiles, rejectedFiles) => {\n this.uploadSignatureImages([...acceptedFiles]);\n if (!isEmpty(rejectedFiles)) {\n raiseError(\n Resources.ImageOnlyUploadWarning,\n
    \n {rejectedFiles.map(f => {\n return
  • {f.name}
  • ;\n })}\n
\n );\n }\n }}\n >\n {({ getRootProps, getInputProps }) => (\n
\n {\n this.reactQuillRef = el;\n }}\n {...this.state.quillConfig}\n value={this.state.value}\n onBlur={range => {\n this.setState({ editorSelection: { ...range } });\n }}\n onChange={value => {\n this.setState({ value });\n }}\n />\n {this.state.dropEnabled && (\n
\n

{Resources.DropImageFilesHere}

\n
\n )}\n
\n )}\n \n
\n
\n {\n if (this.state.quillConfig.readOnly !== true) {\n window.document.getElementById(\"uploadFiles\").click();\n }\n }}\n >\n \n {Resources.InsertImage}\n
\n
\n
\n
\n
\n
\n \n {this.state.quillConfig.readOnly === false && (\n {\n this.reactQuillRef.setEditorContents(this.quillRef, this.state.existingSignature);\n this.setState({\n quillConfig: { ...this.state.quillConfig, readOnly: true }\n });\n }}\n >\n {Resources.Cancel}\n \n )}\n
\n
\n {\n const files = [...e.target.files];\n this.uploadSignatureImages(files);\n e.target.value = \"\";\n }}\n />\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n userStore: store.user\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ManageSignature));\n","import React, { Component } from \"react\";\nimport Card from \"../../../library/card\";\nimport TextInput from \"../../../library/textInput\";\nimport Resources from \"../../../../lib/resources\";\nimport SelectInput from \"../../../library/selectInput\";\nimport { find } from \"../../../../lib/utils\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps as netDP } from \"../../../../store/network-actions\";\n\nconst dispatchToProps = dispatch => ({\n ...netDP(dispatch)\n});\n\nclass LoginInformationForm extends Component {\n componentDidMount() {\n if (this.props.contact && !this.props.profileupdate) {\n let accessId = this.props.match.params.accessId;\n this.props.fetchCustContact(accessId).then(response => {\n this.props.formOnChange(\"username\", this.props.networkStore.custContact.emailAddr);\n this.props.formOnChange(\"accessId\", accessId);\n });\n }\n }\n\n render() {\n let departments = [];\n if (this.props.conversion) {\n departments = [\n { value: 1, department: \"Acumatica\" },\n { value: 2, department: \"Epicor (E10)\" },\n { value: 3, department: \"Epicor (P21)\" },\n { value: 4, department: \"Microsoft Dynamic Business Central\" },\n { value: 5, department: \"Microsoft Dynamic Great Plains\" },\n { value: 6, department: \"Microsoft Dynamics Navision\" },\n { value: 7, department: \"NetSuite\" },\n { value: 8, department: \"QuickBooks\" },\n { value: 9, department: \"Sage 100\" },\n { value: 10, department: \"Sage 500\" },\n { value: 11, department: \"Sage Intacct\" },\n { value: 12, department: \"SAP BusinessOne\" },\n { value: 13, department: \"SAP R/3\" },\n { value: 14, department: \"Xero\" },\n { value: 15, department: \"Other\" }\n ];\n } else {\n departments = [\n { value: 1, department: \"Accounts Payable\" },\n { value: 2, department: \"Accounts Recievable\" }\n ];\n }\n\n const workspaceLabel =\n this.props.match.params.mode === \"ar\" ? Resources.ARDepartmentEmailAddress : Resources.APDepartmentEmailAddress;\n\n return (\n \n {\n let value = e.target.value;\n this.props.formOnChange(\"username\", value);\n }}\n />\n {\n let value = e.target.value;\n this.props.formOnChange(\"password\", value);\n }}\n />\n {this.props.displayModePicker ? (\n i.value === this.props.profile.departmentId) || {}.value || Resources.Select}\n displayValue={(find(departments, i => i.value === this.props.profile.departmentId) || {}).department}\n optionValueKey=\"value\"\n optionDisplayKey=\"department\"\n options={departments}\n labelInline={false}\n label={this.props.conversion ? Resources.WhichAccountingSystem : Resources.Department}\n width={\"23.2rem\"}\n onSelectOption={option => {\n this.props.formOnChange(\"departmentId\", option.value);\n }}\n />\n ) : null}\n {this.props.submitButton ? (\n \n \n {`${Resources.BySignuingUpYourAreAgreeingTo} `}\n {Resources.TermsAndConditions}\n {` ${Resources.And} `}\n {Resources.PrivacyPolicy}.\n \n
\n \n
\n
\n ) : null}\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(LoginInformationForm));\n","import React, { Component } from \"react\";\nimport Card from \"../../../library/card\";\nimport Resources from \"../../../../lib/resources\";\nimport IconArchive from \"../../../library/icons/iconArchive\";\nimport IconPhone from \"../../../library/icons/iconPhone\";\nimport IconMapPin from \"../../../library/icons/iconMapPin\";\nimport IconLinkedIn from \"../../../library/icons/iconLinkedIn\";\nimport IconClipboard from \"../../../library/icons/iconClipboard\";\nimport IconMail from \"../../../library/icons/iconMail\";\nimport IconBriefcase from \"../../../library/icons/iconBriefcase\";\nimport IconAlertCircle from \"../../../library/icons/iconAlertCircle\";\n\nimport { formatDate, isEmpty } from \"../../../../lib/utils\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps as netDP } from \"../../../../store/network-actions\";\nimport Avatar from \"../../../library/avatar\";\n\nconst dispatchToProps = dispatch => ({\n ...netDP(dispatch)\n});\n\nclass ContactDisplayCard extends Component {\n componentDidMount() {\n if (!this.props.signup) {\n let accessId = this.props.match.params.accessId;\n this.props.fetchCustContact(accessId);\n }\n }\n\n render() {\n let roles = {\n 1: \"CFO\",\n 2: \"Manager/Controller\",\n 3: \"Disputes\",\n 4: \"Payments\",\n 5: \"Remittance\",\n 6: \"Primary\",\n 7: \"Secondary\"\n };\n\n let selectedContact = this.props.signup ? this.props.selectedContact : this.props.networkStore.custContact;\n\n return (\n \n
\n {Resources.UpdatedDate(formatDate(selectedContact.updateDate))}\n
\n
\n {isEmpty(selectedContact.contactName) ? null : (\n
\n {!this.props.noavatar ? (\n
\n \n
\n ) : null}\n
\n

{selectedContact.contactName}

\n
\n
\n )}\n {isEmpty(selectedContact.title) ? null : (\n
\n
\n \n
\n
\n {selectedContact.title}, {roles[selectedContact.contactRoleId]}\n
\n
\n )}\n
\n
\n \n
\n
\n {selectedContact.emailAddr === \"\" || selectedContact.emailAddr === null ? (\n
this.setState({ editMode: true })} className=\"missing-email-address-container\">\n \n {Resources.MissingEmailAddress}\n
\n ) : (\n selectedContact.emailAddr\n )}\n
\n
\n {!isEmpty(selectedContact.phone) && (\n
\n
\n \n
\n
{selectedContact.phone}
\n
\n )}\n {!isEmpty(selectedContact.fax) && (\n
\n
\n \n
\n
{selectedContact.fax}
\n
\n )}\n {!isEmpty(\n [\n selectedContact.addrLn1,\n selectedContact.city,\n selectedContact.state,\n selectedContact.postalcode,\n selectedContact.country\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n
\n
{selectedContact.addrLn1}
\n
\n {selectedContact.city}, {selectedContact.state} {selectedContact.postalcode}\n
\n
{selectedContact.country}
\n
\n
\n )}\n {!isEmpty(selectedContact.linkedInProfile) && (\n \n )}\n {!isEmpty(selectedContact.notes) && (\n
\n
\n \n
\n
{selectedContact.notes}
\n
\n )}\n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ContactDisplayCard));\n","import React, { Component } from \"react\";\nimport { Card } from \"reactstrap\";\nimport Avatar from \"./avatar\";\nimport IconMail from \"./icons/iconMail\";\nimport IconPhone from \"./icons/iconPhone\";\nimport IconArchive from \"./icons/iconArchive\";\nimport IconMapPin from \"./icons/iconMapPin\";\nimport IconLinkedIn from \"./icons/iconLinkedIn\";\nimport IconClipboard from \"./icons/iconClipboard\";\nimport IconBriefcase from \"./icons/iconBriefcase\";\n\nimport Resources from \"../../lib/resources\";\n\nimport { isEmpty, formatDate } from \"../../lib/utils\";\n\nclass CompanyInfoCard extends Component {\n render() {\n let classifications = [\n { value: 1, classification: \"Corporation\" },\n { value: 2, classification: \"Partnership\" },\n { value: 3, classification: \"Sole-proprietor\" }\n ];\n let accountData = this.props.accountData;\n let accountingGroupDetails = this.props.accountingGroupDetails;\n\n return (\n
\n \n
\n {Resources.UpdatedDate(formatDate(accountData.profileUpdateDate))}\n
\n
\n \n

{accountData.companyName}

\n
\n
\n
\n
\n \n
\n
\n {accountData.emailAddr || accountingGroupDetails.emailAddr}\n
\n
\n {!isEmpty(accountData.phone) && (\n
\n
\n \n
\n
{accountData.phone}
\n
\n )}\n {!isEmpty(accountData.fax) && (\n
\n
\n \n
\n
{accountData.fax}
\n
\n )}\n {!isEmpty(\n [\n accountData.mailToAddrLn1,\n accountData.mailToCity,\n accountData.mailToState,\n accountData.mailToPostalcode,\n accountData.mailToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n
\n
{accountData.mailToAddrLn1}
\n
\n {accountData.mailToCity}, {accountData.mailToState} {accountData.mailToPostalcode}\n
\n
{accountData.mailToCountry}
\n
\n
\n )}\n {!isEmpty(\n [\n accountData.billToAddrLn1,\n accountData.billToCity,\n accountData.billToState,\n accountData.billToPostalcode,\n accountData.billToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n
\n
{Resources.BillTo}
\n
{accountData.billToAddrLn1}
\n
\n {accountData.billToCity}, {accountData.billToState} {accountData.billToPostalcode}\n
\n
{accountData.billToCountry}
\n
\n
\n )}\n {!isEmpty(\n [\n accountData.shipToAddrLn1,\n accountData.shipToCity,\n accountData.shipToState,\n accountData.shipToPostalcode,\n accountData.shipToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n
\n
{Resources.ShipTo}
\n
{accountData.shipToAddrLn1}
\n
\n {accountData.shipToCity}, {accountData.shipToState} {accountData.shipToPostalcode}\n
\n
{accountData.shipToCountry}
\n
\n
\n )}\n {!isEmpty([accountData.taxId, accountData.entityClassification].filter(value => !isEmpty(value))) && (\n
\n
\n \n
\n
\n
\n {Resources.ein}: {accountData.taxId}\n
\n
\n {Resources.EntityClassification}:{\" \"}\n {\n (classifications.filter(i => i.value === accountData.entityClassificationId)[0] || {})\n .classification\n }\n
\n
\n
\n )}\n {!isEmpty(accountData.linkedInProfile) && (\n \n )}\n {!isEmpty(accountData.notes) && (\n
\n
\n \n
\n
{accountData.notes}
\n
\n )}\n
\n
\n
\n );\n }\n}\n\nexport default CompanyInfoCard;\n","import React, { Component } from \"react\";\nimport { Switch, Route, Redirect } from \"react-router-dom\";\nimport { find, isEmpty, updateSelectedRows } from \"../../../../lib/utils\";\nimport Resources from \"../../../../lib/resources\";\nimport LockstepHeader from \"../lockstepHeader\";\nimport { generatePath, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport LoginInformationForm from \"./loginInformationForm\";\nimport ProfileUpdateForm from \"../profileUpdate/profileUpdateForm\";\nimport ContactUpdateForm from \"../profileUpdate/contactUpdateForm\";\nimport ContactDisplayCard from \"./contactDisplayCard\";\nimport { dispatchToProps as accDP } from \"../../../../store/accounts-actions\";\nimport { dispatchToProps as regDP } from \"../../../../store/registration-actions\";\nimport { dispatchToProps as perDP } from \"../../../../store/perspectives-actions\";\nimport { dispatchToProps as netDP } from \"../../../../store/network-actions\";\nimport { handlePromiseError } from \"../../../../store/error-actions\";\nimport SignupRoutes from \"./signupRoutes.json\";\nimport CompanyInfoCard from \"../../../library/companyInfoCard\";\nimport MainLoader from \"../../../mainLoader\";\nimport ContactsTable from \"../../contactsTable\";\n\nconst dispatchToProps = dispatch => ({\n ...accDP(dispatch),\n ...regDP(dispatch),\n ...perDP(dispatch),\n ...netDP(dispatch)\n});\n\nclass SignupView extends Component {\n constructor(props) {\n super(props);\n this.state = {\n profile: {\n username: \"\",\n password: \"\",\n departmentId: 1,\n taxId: \"\",\n companyName: \"\",\n emailAddr: \"\",\n companyWebsite: \"\",\n phone: \"\"\n },\n currentUser: {},\n currentUserEdit: {},\n sameAsBilling: false,\n contactEditMode: true,\n profileEditMode: false,\n accountId: \"\",\n selectedKeys: [],\n selectedRows: []\n };\n this.formOnChange = this.formOnChange.bind(this);\n this.toggleSameAsBilling = this.toggleSameAsBilling.bind(this);\n this.contactFormOnChange = this.contactFormOnChange.bind(this);\n this.createAccount = this.createAccount.bind(this);\n this.getCompanyInfo = this.getCompanyInfo.bind(this);\n this.markForInvite = this.markForInvite.bind(this);\n }\n\n getCompanyInfo() {\n this.props.fetchCustAccountContacts(this.props.match.params.accessId, this.props.match.params.mode);\n this.props.fetchCustAccount(this.props.match.params.accessId, this.props.match.params.mode).then(() => {\n this.setState({\n profile:\n this.props.networkStore.custAccount.companyAPDetails || this.props.networkStore.custAccount.companyARDetails\n });\n });\n }\n\n formOnChange(field, value) {\n this.setState(prevState => {\n return { profile: { ...prevState.profile, [field]: value } };\n });\n }\n\n contactFormOnChange(field, value) {\n this.setState(prevState => {\n return { currentUserEdit: { ...prevState.currentUserEdit, [field]: value } };\n });\n }\n\n createAccount() {\n let modeMap = {\n 1: \"ap\",\n 2: \"ar\"\n };\n let companyInfoObj = {\n personalEmail: this.state.profile.username,\n password: this.state.profile.password,\n companyWebsite: this.state.profile.linkedInProfile,\n streetAddress:\n this.state.profile.departmentId === 1 ? this.state.profile.billToAddrLn1 : this.state.profile.mailToAddrLn1,\n city: this.state.profile.departmentId === 1 ? this.state.profile.billToCity : this.state.profile.mailToCity,\n state: this.state.profile.departmentId === 1 ? this.state.profile.billToState : this.state.profile.mailToState,\n zip:\n this.state.profile.departmentId === 1\n ? this.state.profile.billToPostalcode\n : this.state.profile.mailToPostalcode,\n country:\n this.state.profile.departmentId === 1 ? this.state.profile.billToCountry : this.state.profile.mailToCountry\n };\n this.props\n .createUserAccount(companyInfoObj)\n .then(response => {\n this.props.createAccount(this.state.profile.companyName).then(response => {\n this.setState({ accountId: response.accountId });\n let companyBody = {\n companyName: this.state.profile.companyName,\n companyEmail: this.state.profile.emailAddr,\n accountId: this.state.accountId,\n inviteId: this.state.profile.inviteId\n };\n this.props.createAccountCompany(companyBody).then(response => {\n let companyId = response.companyId;\n this.props.fetchPerspectives().then(response => {\n let parentPerspectiveId = find(this.props.perspectives.perspectives, i =>\n modeMap[this.state.profile.departmentId] === \"ap\"\n ? i.perspectiveName === \"vendors\"\n : i.perspectiveName === \"customers\"\n ).perspectiveId;\n let payload = {\n parentPerspectiveId: parentPerspectiveId,\n perspectiveName:\n modeMap[this.state.profile.departmentId] === \"ap\" ? \"Accounts Payable\" : \"Accounts Recievable\"\n };\n this.props.createCompanyPerspective(companyId, payload).then(response => {\n let companyDetailsToggle =\n modeMap[this.state.profile.departmentId] === \"ap\" ? \"companyAPDetails\" : \"companyARDetails\";\n let accountingGroupDetailsToggle =\n modeMap[this.state.profile.departmentId] === \"ap\"\n ? \"accountingGroupAPDetails\"\n : \"accountingGroupARDetails\";\n let postRequest = {\n [companyDetailsToggle]: {\n ...this.state.profile\n },\n [accountingGroupDetailsToggle]: {\n ...this.state.profile\n },\n isLockstepVerified: true\n };\n this.props\n .postAccountingGroupProfile(\n response[0].perspectiveId,\n companyId,\n modeMap[this.state.profile.departmentId],\n postRequest\n )\n .then(response => {\n this.props.history.push(\"/v2\");\n });\n let profilePostRequest = {\n isLockstepVerified: true,\n ...this.state.currentUserEdit\n };\n this.props.postMyProfile(profilePostRequest);\n });\n });\n });\n });\n })\n .catch(error => {\n handlePromiseError(error, Resources.AUserWithThisEmailAlreadyExists, \"user accounts\");\n });\n }\n\n toggleSameAsBilling() {\n this.setState({ sameAsBilling: !this.state.sameAsBilling });\n }\n\n markForInvite(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedRows);\n this.setState({ selectedKeys: newSelectedKeys, selectedRows: newSelectedRows });\n }\n\n componentDidMount() {\n this.props.getSelfServiceStatus();\n if (this.props.match.params.accessId !== undefined) {\n this.getCompanyInfo();\n this.setState({ profileEditMode: true, contactEditMode: false });\n }\n }\n\n render() {\n let accountData = {\n ...(this.props.networkStore.custAccount.companyAPDetails || this.props.networkStore.custAccount.companyARDetails),\n ...this.state.accountData\n };\n let accountingGroupDetails = {\n ...(this.props.networkStore.custAccount.accountingGroupAPDetails ||\n this.props.networkStore.custAccount.accountingGroupARDetails),\n ...this.state.accountingGroupDetails\n };\n let modeMap = {\n 1: \"ap\",\n 2: \"ar\"\n };\n\n let remainingContacts = [];\n if (this.props.match.params.accessId !== undefined) {\n remainingContacts = (this.props.networkStore.custAccountContacts.contacts || []).filter(\n i => i.entityGlobalKey !== this.state.currentUser.entityGlobalKey\n );\n }\n return (\n \n {!this.props.networkStore.selfServiceStatus.claim &&\n this.props.networkStore.selfServiceStatus.claim !== undefined &&\n this.props.match.params.accessId !== undefined && }\n {!this.props.networkStore.selfServiceStatus.create &&\n this.props.networkStore.selfServiceStatus.claim !== undefined &&\n this.props.match.params.accessId === undefined && }\n \n \n \n \n \n \n \n
\n

{Resources.CreateUsernamePasswordHeading}

\n

{Resources.RecomendUsingCompanyEmail}

\n \n {\n if (this.props.match.params.accessId !== undefined) {\n this.props.networkStore.custAccountContacts.contacts.forEach(i => {\n if (i.emailAddr === this.state.profile.username) {\n this.setState({ currentUser: i, currentUserEdit: i });\n }\n if (isEmpty(this.state.currentUser)) {\n this.setState(prevState => {\n return {\n currentUser: { ...prevState.currentUser, emailAddr: this.state.profile.username },\n currentUserEdit: {\n ...prevState.currentUserEdit,\n emailAddr: this.state.profile.username\n }\n };\n });\n }\n });\n }\n this.props.history.push(\n generatePath(SignupRoutes.account.userinfo, {\n accessId: this.props.match.params.accessId,\n mode: this.props.match.params.mode\n })\n );\n }}\n className=\"button-primary-square large\"\n >\n {Resources.Next}\n \n
\n
\n \n
\n {this.props.networkStore.gettingCustAccount ? (\n
\n \n
\n ) : this.state.profileEditMode ? (\n
\n
\n

{Resources.YourOneStepCloserToOptimizing}

\n

{Resources.ConfirmCompanyInfoProfile}

\n
\n \n
\n ) : (\n
\n

{Resources.CreateUserProfileInfo}

\n \n
\n )}\n {this.props.networkStore.gettingCustAccount ? null : (\n
\n {this.props.match.params.accessId !== undefined ? (\n this.setState({ profileEditMode: !this.state.profileEditMode })}\n className=\"button-secondary-square large\"\n >\n {!this.state.profileEditMode ? Resources.Cancel : Resources.INeedToUpdateThisProfile}\n \n ) : null}\n {\n let accountingGroupToggle =\n this.props.match.params.mode === \"ap\"\n ? \"accountingGroupAPDetails\"\n : \"accountingGroupARDetails\";\n let companyDetailToggle =\n this.props.match.params.mode === \"ap\" ? \"companyAPDetails\" : \"companyARDetails\";\n if (this.props.match.params.accessId !== undefined) {\n let accountingGroupDetails = {\n ...(this.props.networkStore.custAccount.accountingGroupAPDetails ||\n this.props.networkStore.custAccount.accountingGroupARDetails),\n ...this.state.accountingGroupDetails\n };\n let body = {\n [companyDetailToggle]: this.state.profile,\n [accountingGroupToggle]: {\n emailAddr: accountingGroupDetails.emailAddr\n },\n isLockstepVerified: true\n };\n this.props.postCustAccount(\n this.props.match.params.accessId,\n this.props.match.params.mode,\n body\n );\n }\n this.props.history.push(\n generatePath(\n this.props.match.params.accessId !== undefined\n ? SignupRoutes.account.invite\n : SignupRoutes.account.profile,\n {\n mode: this.props.match.params.mode,\n accessId: this.props.match.params.accessId\n }\n )\n );\n }}\n className=\"button-primary-square large\"\n >\n {this.props.match.params.accessId !== undefined ? Resources.LooksGood : Resources.Next}\n \n
\n )}\n
\n
\n \n
\n

{Resources.GreatWhoGetsInvite}

\n
\n \n
\n
\n {\n // TODO\n // In the future the endpoint call to send out a claim request to each of these contacts\n // will also go here.\n this.props.history.push(\n generatePath(SignupRoutes.account.profile, {\n mode: this.props.match.params.mode,\n accessId: this.props.match.params.accessId\n })\n );\n }}\n className=\"button-primary-square large\"\n >\n {Resources.Next}\n \n
\n
\n
\n \n {this.props.networkStore.gettingCustAccountContacts ? (\n \n ) : (\n
\n

{Resources.CreateUserMyProfileInfo}

\n {this.state.contactEditMode ? (\n \n ) : (\n \n )}\n
\n {this.props.match.params.accessId !== undefined ? (\n this.setState({ contactEditMode: !this.state.contactEditMode })}\n className=\"button-secondary-square large\"\n >\n {this.state.contactEditMode ? Resources.Cancel : Resources.INeedToUpdateThisProfile}\n \n ) : null}\n {\n if (this.props.match.params.accessId !== undefined && this.state.contactEditMode) {\n this.setState({ currentUser: this.state.currentUserEdit, contactEditMode: false });\n } else {\n if (this.props.match.params.accessId !== undefined) {\n let companyInfoObj = {\n personalEmail: this.state.profile.username,\n password: this.state.profile.password\n };\n this.props.createUserAccount(companyInfoObj).then(response => {\n this.props.claimProfile(this.props.match.params.accessId).then(response => {\n let profileRequest = {\n ...this.state.currentUser,\n isLockstepVerified: true\n };\n this.props.postMyProfile(profileRequest);\n this.props.history.push(\"/v2\");\n });\n });\n } else {\n if (this.props.networkStore.selfServiceStatus.create) {\n this.createAccount();\n }\n }\n }\n }}\n className=\"button-primary-square large\"\n >\n {this.state.contactEditMode ? Resources.Save : Resources.LooksGood}\n \n
\n
\n )}\n
\n
\n
\n \n \n \n
\n

{Resources.CreateUsernamePasswordHeading}

\n

{Resources.RecomendUsingCompanyEmail}

\n \n {\n this.props.history.push(\n generatePath(\"/signup/contact/userinfo/:accessId\", {\n accessId: this.state.profile.accessId\n })\n );\n }}\n className=\"button-primary-square large\"\n >\n {Resources.Next}\n \n
\n
\n \n
\n

{Resources.CreateUserMyContactProfileInfo}

\n {this.state.editMode ? (\n \n ) : (\n \n )}\n
\n {this.state.editMode ? null : (\n {\n this.setState({ editMode: true });\n }}\n className=\"button-secondary-square large\"\n >\n {Resources.INeedToUpdateThisProfile}\n \n )}\n\n {\n this.props.history.push(\n generatePath(\"/signup/contact/userinfo/:accessId\", {\n accessId: this.state.profile.accessId\n })\n );\n }}\n className=\"button-primary-square large\"\n >\n {Resources.Next}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n accountsStore: store.accounts,\n registration: store.registration,\n perspectives: store.perspectives,\n networkStore: store.network\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(SignupView));\n","import React, { Component } from \"react\";\n\nimport Card from \"./card\";\nimport { Link } from \"react-router-dom\";\n\nclass SummaryCard extends Component {\n renderValue(item) {\n return item.value || (item.value === 0 ? 0 : \"-\");\n }\n\n render() {\n const { summaryItems, title, renderColumns } = this.props;\n\n const renderSummaryRows = Array.isArray(summaryItems[0]) ? summaryItems : [summaryItems];\n\n return (\n \n {renderSummaryRows.map((row, index) => (\n
\n {row.map(item => (\n
\n
{item.description}
\n
\n {!!item.linkTo ? {this.renderValue(item)} : this.renderValue(item)}\n
\n
\n ))}\n
\n ))}\n \n );\n }\n}\n\nexport default SummaryCard;\n","import React, { Component } from \"react\";\nimport { withRouter, Switch, Route, Redirect, generatePath } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport { formatDate } from \"../../../lib/utils\";\nimport Resources from \"../../../lib/resources\";\nimport Card from \"../../library/card\";\nimport TableData from \"../../library/tableData\";\n\nimport ViewContentHeader from \"./viewContentHeader\";\n\nimport { dispatchToProps as netwDP } from \"../../../store/network-actions\";\n// import IconXCircle from \"../../library/icons/iconXCircle\";\n// import IconHand from \"../../library/icons/iconHand\";\n\nconst dispatchToProps = dispatch => ({\n ...netwDP(dispatch)\n});\n\nclass OpenRequestsView extends Component {\n componentDidMount() {\n let { companyId, perspectiveId } = this.props.match.params;\n this.props.getOpenOnboardingRequests(companyId, perspectiveId);\n this.props.getOpenProfileUpdateRequests(perspectiveId);\n }\n\n renderOpenRequestsTable(dataView) {\n const {\n gettingOpenOnboardingRequests,\n openOnboardingRequests = [],\n openOnboardingRequestsCount,\n openProfileUpdateRequests = [],\n openProfileUpdateRequestsCount,\n gettingOpenProfileUpdateRequests\n } = this.props;\n const { perspectiveId } = this.props.match.params;\n\n let columns = [\n // {\n // type: \"rowSelect\",\n // width: \"9%\"\n // },\n {\n header: Resources.To.toLocaleUpperCase(),\n content: row => row.recipient,\n width: \"25%\"\n },\n {\n header: Resources.InitialRequest.toLocaleUpperCase(),\n content: row => formatDate(row.requestDate || {}),\n width: \"15%\"\n },\n {\n header: Resources.LatestReminder.toLocaleUpperCase(),\n content: row => formatDate(row.latestReminderDate || {}),\n width: \"15%\"\n },\n {\n header: Resources.NextReminder.toLocaleUpperCase(),\n content: row => formatDate(row.nextReminderDate),\n width: \"15%\"\n }\n // {\n // header: Resources.Status.toLocaleUpperCase(),\n // content: row => {\n // return (\n //
\n // {row.status}\n //
\n //
\n // );\n // },\n // width: \"10%\"\n // }\n ];\n\n let hoverColumns = [\n // {\n // type: \"rowSelect\",\n // width: \"9%\"\n // },\n {\n header: Resources.To.toLocaleUpperCase(),\n content: row => row.recipient,\n width: \"25%\"\n },\n {\n header: Resources.InitialRequest.toLocaleUpperCase(),\n content: row => formatDate(row.requestDate || {}),\n\n width: \"15%\"\n },\n {\n header: Resources.LatestReminder.toLocaleUpperCase(),\n content: row => formatDate(row.latestReminderDate || {}),\n\n width: \"15%\"\n },\n {\n header: Resources.NextReminder.toLocaleUpperCase(),\n content: row => formatDate(row.nextReminderDate),\n width: \"15%\"\n }\n // {\n // header: Resources.Status.toLocaleUpperCase(),\n // content: row => {\n // return (\n //
\n // \n // \n //
\n // );\n // },\n // width: \"10%\"\n // }\n ];\n\n return (\n \n {/*
\n
\n
\n {\n const searchTerm = e.target.value;\n return searchTerm;\n }}\n isShowingSearchResult={false}\n handleClearResult={() => {}}\n text={null}\n noResultsMessage={Resources.NoStatementSearchResultsMessage}\n showNoResultsMessage={false}\n maxOptions={7}\n loading={false}\n handleSelectOption={option => {}}\n callToActionButton={\n
{}}>\n {Resources.SeeAllInvoiceResults(\"a\")}\n
\n }\n renderOption={option => `${Resources.InvoiceNumber} ${option.id}`}\n options={[]}\n width=\"300px\"\n />\n
\n
\n \n \n \n
\n
\n
\n
*/}\n {\n if (dataView === \"onboarding\") {\n this.props.selectOpenOnboardingRequestsPage(perspectiveId, page);\n } else {\n this.props.selectOpenProfileUpdateRequestsPage(perspectiveId, page);\n }\n }}\n style={{ maxHeight: \"40vh\" }}\n rowHeight=\"5rem\"\n onRowSelectToggle={() => {}}\n />\n
\n );\n }\n\n render() {\n const { openOnboardingRequestsCount, openProfileUpdateRequestsCount } = this.props;\n\n let subViews = [\n {\n subView: \"onboarding\",\n display: Resources.OnboardingCount(openOnboardingRequestsCount || 0).toLocaleUpperCase(),\n path: \"/v2/:companyId/:perspectiveId/home/open-requests/onboarding\"\n },\n {\n subView: \"profile-update\",\n display: Resources.ProfileCount(openProfileUpdateRequestsCount || 0).toLocaleUpperCase(),\n path: \"/v2/:companyId/:perspectiveId/home/open-requests/profile-update\"\n }\n ];\n return (\n \n \n \n \n
{this.renderOpenRequestsTable(\"onboarding\")}
\n
\n \n \n
{this.renderOpenRequestsTable(\"profile-update\")}
\n
\n \n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n openOnboardingRequests: store.network.openOnboardingRequests.value,\n openOnboardingRequestsCount: store.network.openOnboardingRequests.count,\n gettingOpenOnboardingRequests: store.network.gettingOpenOnboardingRequests,\n openProfileUpdateRequests: store.network.openProfileUpdateRequests.value,\n openProfileUpdateRequestsCount: store.network.openProfileUpdateRequests.count,\n gettingOpenProfileUpdateRequests: store.network.gettingOpenProfileUpdateRequests\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(OpenRequestsView));\n","import React, { Component } from \"react\";\nimport { Switch, Route, generatePath, Redirect, withRouter } from \"react-router-dom\";\n\nimport Resources from \"../../../lib/resources\";\nimport { formatDate, isEmpty } from \"../../../lib/utils\";\nimport { connect } from \"react-redux\";\n\nimport SummaryCard from \"../../library/summaryCard\";\nimport Card from \"../../library/card\";\n\nimport ViewContentHeader from \"./viewContentHeader\";\nimport OpenRequestsView from \"./openRequestsView\";\n\nimport IconSend from \"../../library/icons/iconSend\";\n\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\n\nimport { dispatchToProps as saDP } from \"../../../store/statements-actions\";\nimport { dispatchToProps as aaDP } from \"../../../store/accounts-actions\";\nimport { dispatchToProps as cgDP } from \"../../../store/contextGroups-actions\";\nimport { dispatchToProps as paDP } from \"../../../store/perspectives-actions\";\nimport { dispatchToProps as modDP } from \"../../../store/modal-actions\";\nimport { dispatchToProps as networkDP } from \"../../../store/network-actions\";\nimport { dispatchToProps as netDP } from \"../../../store/network-actions\";\nimport { dispatchToProps as genDP } from \"../../../store/general-actions\";\nimport { dispatchToProps as userDP } from \"../../../store/user-actions\";\n\nimport Avatar from \"../../library/avatar\";\nimport MainLoader from \"../../mainLoader\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...dispatch(saDP),\n ...dispatch(aaDP),\n ...dispatch(cgDP),\n ...dispatch(paDP),\n ...dispatch(modDP),\n ...networkDP(dispatch),\n ...dispatch(netDP),\n ...dispatch(genDP),\n ...dispatch(userDP)\n };\n};\n\nclass HomeView extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n handleActivityClick(activty) {\n let activitykey = activty.networkActivityKey;\n this.setState({ [activitykey]: false });\n switch (activty.networkActivityTypeId) {\n case 3:\n case 1:\n this.props.history.push(\n generatePath(\"/v2/:companyId/:perspectiveId/home/open-requests/profile-update\", {\n companyId: this.props.match.params.companyId,\n perspectiveId: this.props.match.params.perspectiveId\n })\n );\n break;\n case 2:\n if (activty.entityTypeId === 13) {\n this.props.displayFlyout(\"myProfileView\", {\n myProfile: this.props.networkStore.custContact,\n companyId: this.props.match.params.companyId,\n perspectiveId: this.props.match.params.perspectiveId\n });\n } else {\n this.props.history.push(\n generatePath(\"/v2/:companyId/:perspectiveId/network/contacts/:entityGlobalKey/profile\", {\n companyId: this.props.match.params.companyId,\n perspectiveId: this.props.match.params.perspectiveId,\n entityGlobalKey: activty.entityGlobalKey\n })\n );\n }\n break;\n case 4:\n if (activty.entityTypeId === 12) {\n this.props.displayFlyout(\"companyProfileView\", {\n myProfile: this.props.accountsStore.selectedAccount,\n companyId: this.props.match.params.companyId,\n perspectiveId: this.props.match.params.perspectiveId\n });\n } else {\n this.props.history.push(\n generatePath(\"/v2/:companyId/:perspectiveId/network/accounts/:entityGlobalKey/profile\", {\n companyId: this.props.match.params.companyId,\n perspectiveId: this.props.match.params.perspectiveId,\n entityGlobalKey: activty.entityGlobalKey\n })\n );\n }\n break;\n default:\n }\n }\n\n renderActivityItem(activity, index) {\n let activityType = activity.networkActivityTypeId;\n\n // Ensures a unique key for the element being returned. For some reason React was reporting duplicate keys when running Inbox locally.\n let activityKey = activity.networkActivityKey + `_${index}`;\n\n let activityDescription = \"\";\n if (activityType === 1) {\n let name = activity.profileName;\n\n activityDescription =\n activity.itemCount === 1\n ? Resources.SentContactUpdateRequest(name)\n : Resources.SentContactUpdateRequests(name, activity.itemCount);\n } else if (activityType === 2) {\n activityDescription = Resources.UpdatedContactInfo(activity.profileName);\n } else if (activityType === 3) {\n let name = activity.profileName;\n\n activityDescription =\n activity.itemCount === 1\n ? Resources.SentProfileUpdateRequest(name)\n : Resources.SentProfileUpdateRequests(name, activity.itemCount);\n } else if (activityType === 4) {\n let name = activity.profileName;\n\n activityDescription = Resources.UpdatedProfileInfo(name);\n } else {\n activityDescription = Resources.InvalidActivityType;\n }\n\n return (\n this.handleActivityClick(activity)} className=\"network-activity-card\" key={activityKey}>\n
\n \n
\n
\n
{activityDescription}
\n
{formatDate(activity.insertDate)}
\n
\n \n
\n );\n }\n\n getContextGroupSummaryValues() {\n const { contextGroupsStore } = this.props;\n\n if (!contextGroupsStore.gotContextGroups) {\n return {};\n }\n\n let unassignedCount = 0;\n let mineCount = 0;\n\n contextGroupsStore.value.forEach(group => {\n unassignedCount += group.activeCounts.unassigned;\n mineCount += group.activeCounts.assignedToMe;\n });\n\n return { unassignedCount, mineCount };\n }\n\n componentDidMount() {\n let { perspectiveId } = this.props.match.params;\n this.props.fetchOpenProfileUpdateRequests(perspectiveId);\n this.props.fetchOpenOnboardingRequests(perspectiveId);\n }\n\n render() {\n const { match = { params: {} } } = this.props;\n let { perspectiveId } = this.props.match.params;\n\n if (\n this.props.perspectivesStore.selectedPerspectiveType !== \"vendors\" &&\n this.props.perspectivesStore.selectedPerspectiveType !== \"customers\" &&\n !isEmpty(this.props.perspectivesStore.selectedPerspectiveType)\n ) {\n return ;\n }\n\n let summaryItems = [\n [\n {\n description: Resources.YourOpenActivities,\n value: this.getContextGroupSummaryValues().mineCount,\n linkTo: location => generatePath(\"/v2/:companyId/:perspectiveId/activities\", match.params) + \"/mine\"\n },\n {\n description: Resources.OpenOnboardingRequests,\n value: this.props.getOpenOnboardingRequests(perspectiveId).count,\n linkTo: location => location.pathname + \"/open-requests/onboarding\"\n }\n ],\n [\n {\n description: Resources.UnassignedOpenActivities,\n value: this.getContextGroupSummaryValues().unassignedCount,\n linkTo: location => generatePath(\"/v2/:companyId/:perspectiveId/activities\", match.params) + \"/unassigned\"\n },\n\n {\n description: Resources.OpenProfileUpdateRequests,\n value: this.props.getOpenProfileUpdateRequests(perspectiveId).count,\n linkTo: location => location.pathname + \"/open-requests/profile-update\"\n }\n ]\n ];\n this.props.getActivityList(perspectiveId, {\n top: 100,\n skip: this.props.networkStore.activityList.value.length\n });\n let activityCount = this.props.networkStore.activityList.count;\n\n return (\n \n \n \n \n
\n \n

{Resources.NetworkActivity}

\n {(this.props.networkStore.activityList.value || []).map((activity, index) => this.renderActivityItem(activity, index))}\n {this.props.networkStore.gettingNetworkActivityList ? (\n
\n \n
\n ) : null}\n {activityCount > this.props.networkStore.activityList.value.length &&\n !this.props.gettingNetworkActivityList && (\n \n this.props.fetchActivityList(match.params.companyId, match.params.perspectiveId, {\n top: 20,\n skip: this.props.networkStore.activityList.value.length\n })\n }\n >\n {Resources.SeeMore}\n \n )}\n {this.props.networkStore.gettingNetworkActivityList ? null : this.props.networkStore.activityList.value\n .length === 0 ? (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n

{Resources.NothingToSeeHere}

\n

{Resources.homeViewEmptyMessage}

\n
\n \n this.props.displayFlyout(\"profileUpdateRequestFlyout\", {\n companyId: this.props.match.params.companyId,\n accountingGroupId: this.props.match.params.perspectiveId\n })\n }\n >\n \n {Resources.RequestProfileUpdates}\n \n
\n
\n ) : null}\n
\n
\n \n \n \n \n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n contextGroupsStore: store.contextGroups,\n statementsStore: store.statements,\n accountsStore: store.accounts,\n perspectivesStore: store.perspectives,\n ledgerStore: store.ledger,\n pageRowCount: store.general.pageRowCount,\n networkStore: store.network,\n gettingNetworkActivityList: store.network.gettingNetworkActivityList\n };\n};\n\nexport default withLDConsumer()(withRouter(connect(storeToProps, dispatchToProps)(HomeView)));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps as seqDP } from \"../../../../store/sequences-actions\";\n\nimport Card from \"../../../library/card\";\nimport ToggleSwitch from \"../../../library/toggleSwitch\";\n\nimport Resources from \"../../../../lib/resources\";\nimport { isEmpty, formatDimensionalDate } from \"../../../../lib/utils\";\nimport MainLoader from \"../../../mainLoader\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...dispatch(seqDP)\n };\n};\n\nclass SequencesTabContent extends Component {\n toggleSequenceActivation(row) {\n const { customerSequenceId, isActive } = row;\n this.props.postSequence(this.props.companyId, { customerSequenceId, isActive: !isActive });\n }\n\n render() {\n const sequences = this.props.sequencesStore.sequences;\n\n if (isEmpty(sequences) && this.props.sequencesStore.isFetchingSequences) {\n return ;\n }\n\n return (\n
\n {sequences.map(sequence => {\n return (\n {\n this.props.editSequence(sequence);\n }}\n key={sequence.customerSequenceId}\n >\n
\n

{sequence.customerSequenceName}

\n
\n {Resources.LastGeneratedDate(formatDimensionalDate(sequence.modifiedDate))}\n
\n
\n
\n
{sequence.description}
\n this.toggleSequenceActivation(sequence)}\n text={sequence.isActive ? Resources.Active : Resources.Inactive}\n />\n
\n \n );\n })}\n
\n );\n }\n}\nconst storeToProps = store => {\n return {\n sequencesStore: store.sequences\n };\n};\nexport default connect(\n storeToProps,\n dispatchToProps\n)(SequencesTabContent);\n","import Resources from \"../../../../lib/resources\";\n\nconst accountUpdateData = [\n { fieldName: Resources.CompanyName, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.ein, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.EntityClassification, type: Resources.DropdownSelection, required: Resources.Yes },\n { fieldName: Resources.ApEmail, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.ApPhone, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.ApFax, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.CompanyLinkedIn, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.CompanyLogo, type: Resources.FileUpload, required: Resources.Yes },\n { fieldName: Resources.BillToAddress, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.ShipToAddress, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.Notes, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.Contacts, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.CreditApplication, type: Resources.FileUpload, required: Resources.Yes },\n { fieldName: Resources.ProofOfInsurance, type: Resources.FileUpload, required: Resources.Yes },\n { fieldName: Resources.TaxExemptionCertificate, type: Resources.FileUpload, required: Resources.Yes }\n];\n\nconst aniversaryAccountData = [\n { fieldName: Resources.CompanyName, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.ein, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.EntityClassification, type: Resources.DropdownSelection, required: Resources.Yes },\n { fieldName: Resources.ApEmail, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.ApPhone, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.ApFax, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.CompanyLinkedIn, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.CompanyLogo, type: Resources.FileUpload, required: Resources.Yes },\n { fieldName: Resources.BillToAddress, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.ShipToAddress, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.Notes, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.Contacts, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.CreditApplication, type: Resources.FileUpload, required: Resources.Yes },\n { fieldName: Resources.ProofOfInsurance, type: Resources.FileUpload, required: Resources.Yes },\n { fieldName: Resources.TaxExemptionCertificate, type: Resources.FileUpload, required: Resources.Yes }\n];\n\nconst contactUpdateData = [\n { fieldName: Resources.Name, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.EmailAddress, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.Phone, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.Fax, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.Role, type: Resources.DropdownSelection, required: Resources.Yes },\n { fieldName: Resources.Title, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.LinkedIn, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.ProfilePicture, type: Resources.FileUpload, required: Resources.No },\n { fieldName: Resources.Notes, type: Resources.FreeformText, required: Resources.No }\n];\n\nconst onboardingData = [\n { fieldName: Resources.CompanyName, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.ein, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.EntityClassification, type: Resources.DropdownSelection, required: Resources.Yes },\n { fieldName: Resources.EmailAddress, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.Phone, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.Fax, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.LinkedIn, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.CompanyLogo, type: Resources.FileUpload, required: Resources.Yes },\n { fieldName: Resources.BillToAddress, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.ShipToAddress, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.Notes, type: Resources.FreeformText, required: Resources.No },\n { fieldName: Resources.PrimaryContactName, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.PrimaryContactRole, type: Resources.DropdownSelection, required: Resources.Yes },\n { fieldName: Resources.PrimaryContactEmail, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.PrimaryContactPhone, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.SecondaryContactName, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.SecondaryContactRole, type: Resources.DropdownSelection, required: Resources.Yes },\n { fieldName: Resources.SecondaryContactEmail, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.SecondaryContactPhone, type: Resources.FreeformText, required: Resources.Yes },\n { fieldName: Resources.CreditApplication, type: Resources.FileUpload, required: Resources.Yes },\n { fieldName: Resources.ProofOfInsurance, type: Resources.FileUpload, required: Resources.Yes },\n { fieldName: Resources.TaxExemptionCertificate, type: Resources.FileUpload, required: Resources.Yes }\n];\n\nexport { contactUpdateData, onboardingData, accountUpdateData, aniversaryAccountData };\n","import React from \"react\";\n\nimport Card from \"../../../library/card\";\nimport ToggleSwitch from \"../../../library/toggleSwitch\";\nimport Resources from \"../../../../lib/resources\";\nimport TableData from \"../../../library/tableData\";\nimport { onboardingData, accountUpdateData, contactUpdateData, aniversaryAccountData } from \"./sequenceData\";\n\nfunction ViewSequenceContent(props) {\n const { sequence = {} } = props;\n\n let sequenceTypes = {\n \"Profile Update\": \"profile update\",\n \"Customer Onboarding\": \"onboarding\"\n };\n\n let columns = [\n { header: Resources.FieldName.toLocaleUpperCase(), content: row => row.fieldName, width: \"25%\" },\n { header: Resources.Type.toLocaleUpperCase(), content: row => row.type, width: \"25%\" },\n { header: Resources.Required.toLocaleUpperCase(), content: row => row.required, width: \"25%\" }\n ];\n\n let sequenceMap = {\n \"Account profile update request\": (\n
\n \n
\n ),\n \"Contact profile update request\": (\n
\n \n
\n ),\n \"Account onboarding\": (\n
\n \n
\n ),\n \"Account annual anniversary\": (\n
\n \n
\n )\n };\n\n return (\n \n
\n
{sequence.description}
\n \n
\n props.toggleSequenceActivation()}\n text={sequence.isActive ? Resources.Active : Resources.Inactive}\n />\n
\n
\n
\n
\n

{Resources.Steps}

\n
\n {(sequence.sequenceSteps || []).map((sequenceStep, i) => SequenceStep({ sequenceStep, i }))}\n
\n
\n
\n
\n

{Resources.FormFields}

\n

\n {Resources.FormFieldsDescription(sequenceTypes[sequence.customerSequenceName])}\n

\n {sequenceMap[sequence.customerSequenceName]}\n

{Resources.SequenceContactPrivateMessage}

\n
\n
\n );\n}\n\nfunction SequenceStep(props) {\n let { sequenceStep, i } = props;\n return (\n
\n
{i + 1}
\n \n {sequenceStep.description}\n \n
\n );\n}\n\nexport default ViewSequenceContent;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter, Switch, Route, generatePath } from \"react-router-dom\";\n\nimport { dispatchToProps as contDP } from \"../../../../store/contextGroups-actions\";\nimport { dispatchToProps as comDP } from \"../../../../store/company-actions\";\nimport { dispatchToProps as modDP } from \"../../../../store/modal-actions\";\nimport { dispatchToProps as manDP } from \"../../../../store/manage-actions\";\nimport { dispatchToProps as saDP } from \"../../../../store/sequences-actions\";\n\nimport SequencesTabContent from \"./sequencesTabContent\";\nimport ViewSequenceContent from \"./viewSequenceContent\";\n\nimport Resources from \"../../../../lib/resources\";\n\nimport ViewContentHeader from \"../viewContentHeader\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...dispatch(comDP),\n ...dispatch(contDP),\n ...dispatch(manDP),\n ...dispatch(modDP),\n ...dispatch(saDP)\n };\n};\n\nclass SequencesView extends Component {\n componentDidMount() {\n const { companyId } = this.props.match.params;\n this.props.fetchSequenceSamples();\n this.props.fetchTriggers(companyId);\n this.props.fetchSequenceActions(companyId);\n this.props.fetchSequences(companyId);\n }\n\n toggleSequenceActivation(sequence) {\n const { customerSequenceId, isActive } = sequence;\n this.props.postSequence(this.props.match.params.companyId, { customerSequenceId, isActive: !isActive });\n }\n\n render() {\n let { match, sequencesStore } = this.props;\n const { companyId } = match.params;\n\n const numberRegex = \"\\\\d+\";\n\n let subViews = [\n {\n subView: \"activities\",\n path: \"/v2/:companyId/:perspectiveId/:view(activities)\",\n display: Resources.Activities.toLocaleUpperCase()\n },\n {\n subView: \"sequences\",\n path: \"/v2/:companyId/:perspectiveId/:view(sequences)\",\n display: Resources.Sequences.toLocaleUpperCase()\n }\n ];\n\n // const backButton = (\n // \n // );\n\n return (\n \n \n \n
\n \n this.props.history.push(this.props.location.pathname.replace(\"list\", \"templates\"))\n }\n editSequence={sequence => {\n this.props.history.push(\n generatePath(match.path, {\n ...match.params,\n sequenceView: sequence.customerSequenceId\n })\n );\n }}\n />\n
\n
\n \n \n
\n \n this.toggleSequenceActivation(sequencesStore.sequenceMaps[match.params.sequenceView])\n }\n />\n
\n
\n
\n );\n }\n}\nconst storeToProps = store => {\n return {\n companyStore: store.companies,\n manageStore: store.manage,\n sequencesStore: store.sequences\n };\n};\nexport default withRouter(connect(storeToProps, dispatchToProps)(SequencesView));\n","import React, { Component } from \"react\";\nimport { Switch, Redirect, withRouter, Route, generatePath } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\n\nimport SequencesView from \"./sequences/sequencesView\";\nimport DepartmentView from \"../../departmentView\";\n\nimport { dispatchToProps as conDP } from \"../../../store/conversations-actions\";\nimport { isGuid } from \"../../../lib/utils\";\n\nconst dispatchToProps = dispatch => ({\n ...conDP(dispatch)\n});\n\nclass CommunicationsView extends Component {\n componentDidMount() {\n this.fetchFolderConversations(this.props.pageRowCount, 0);\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.match.params.subView !== this.props.match.params.subView) {\n this.fetchFolderConversations(this.props.pageRowCount, 0);\n }\n }\n\n getFolderLabel() {\n switch (this.props.match.params.subView) {\n case \"closed\":\n return \"closed\";\n case \"sent\":\n return \"waiting-for-response\";\n case \"snoozed\":\n return \"reminder\";\n case \"open\":\n default:\n if (isGuid(this.props.match.params.subView)) {\n return null;\n } else {\n return this.props.match.params.subView;\n }\n }\n }\n\n fetchFolderConversations(top, skip) {\n // TODO: The call below to getConversations was causing additional, unneeded requests to be made to fetch conversations. The \n // component handles that for itself. If the sequences feature is not going to be enabled or further developed, this function can\n // likely be removed completely.\n\n // const { companyId, perspectiveId } = this.props.match.params;\n // const label = this.getFolderLabel();\n\n // this.props.getConversations(companyId, perspectiveId, label, top, skip);\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n {!this.props.flags.sequencesActivityTab && (\n \n )}\n \n \n \n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n pageRowCount: store.general.pageRowCount,\n gettingConversations: store.conversations.gettingConversations,\n conversations: store.conversations.conversations\n };\n};\n\nexport default withLDConsumer()(withRouter(connect(storeToProps, dispatchToProps)(CommunicationsView)));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\nimport { Switch, Redirect, withRouter, Route, generatePath } from \"react-router-dom\";\n\nimport Resources from \"../../../../lib/resources\";\nimport { formatDate, isEmpty, find, updateSelectedRows, openUrlForDownload, needClickBackRoute } from \"../../../../lib/utils\";\n\nimport DepartmentView from \"../../../departmentView\";\nimport MainLoader from \"../../../mainLoader\";\nimport Card from \"../../../library/card\";\nimport ProfileUpdateForm from \"../profileUpdate/profileUpdateForm\";\nimport ContactsTable from \"../../contactsTable\";\nimport TableData from \"../../../library/tableData\";\nimport ViewContentHeader from \"../viewContentHeader\";\nimport IconArchive from \"../../../library/icons/iconArchive\";\nimport IconPhone from \"../../../library/icons/iconPhone\";\nimport IconMapPin from \"../../../library/icons/iconMapPin\";\nimport IconLinkedIn from \"../../../library/icons/iconLinkedIn\";\nimport IconClipboard from \"../../../library/icons/iconClipboard\";\nimport IconMail from \"../../../library/icons/iconMail\";\nimport IconEdit from \"../../../library/icons/iconEdit\";\nimport IconSend from \"../../../library/icons/iconSend\";\nimport IconTrash from \"../../../library/icons/iconTrash\";\nimport IconBriefcase from \"../../../library/icons/iconBriefcase\";\nimport TextArea from \"../../../library/textAreaInput\";\nimport IconAlertCircle from \"../../../library/icons/iconAlertCircle\";\nimport AutoCompleteInput from \"../../../library/autoCompleteInput\";\n\nimport OpenInvoices from \"../../../customer_portal/openInvoices\";\nimport ClosedInvoices from \"../../../customer_portal/closedInvoices\";\nimport Payments from \"../../../customer_portal/payments\";\n\nimport Dropdown from \"../../../library/dropdown\";\nimport IconAward from \"../../../library/icons/iconAward\";\nimport IconLock from \"../../../library/icons/iconLock\";\nimport IconUnlock from \"../../../library/icons/iconUnlock\";\nimport IconPlusCircle from \"../../../library/icons/iconPlusCircle\";\n\nimport { dispatchToProps as netDP } from \"../../../../store/network-actions\";\nimport { dispatchToProps as modDP } from \"../../../../store/modal-actions\";\nimport { dispatchToProps as persDP } from \"../../../../store/perspectives-actions\";\nimport IconDownload from \"../../../library/icons/iconDownload\";\nimport IconFile from \"../../../library/icons/iconFile\";\nimport IconAngleDown from \"../../../library/icons/iconAngleDown\";\n\nconst dispatchToProps = dispatch => ({\n ...netDP(dispatch),\n ...modDP(dispatch),\n ...persDP(dispatch)\n});\n\nclass AccountView extends Component {\n constructor(props) {\n super(props);\n this.state = {\n notesEditMode: false,\n selectedAccountKeys: [],\n selectedAccountRows: [],\n selectedEmailAttachmentKeys: [],\n selectedEmailAttachments: [],\n selectedAccountDocuments: [],\n selectedDocumentKeys: [],\n filters: { documents: [] },\n notes: [],\n newNote: \"\",\n loadedTable: false,\n editMode: false\n };\n this.toggleNotesEditMode = this.toggleNotesEditMode.bind(this);\n this.postNoteChanges = this.postNoteChanges.bind(this);\n this.deleteNote = this.deleteNote.bind(this);\n this.toggleEditMode = this.toggleEditMode.bind(this);\n this.refreshData = this.refreshData.bind(this);\n this.uploadFile = this.uploadFile.bind(this);\n }\n\n componentDidMount() {\n this.refreshData();\n this.refreshTimer = setInterval(() => this.refreshData(), 30000);\n }\n\n componentWillUnmount() {\n clearInterval(this.refreshTimer);\n }\n\n componentDidUpdate(prevProps) {\n const { match } = this.props;\n if (prevProps.match.params.accountId !== match.params.accountId) {\n this.props.fetchAccountProfile(match.params.perspectiveId, match.params.accountId);\n }\n }\n\n refreshData() {\n const { match } = this.props;\n this.props.fetchAccountProfile(match.params.perspectiveId, match.params.accountId);\n this.props.fetchMyProfile();\n this.props.fetchAccountDocuments(match.params.perspectiveId, match.params.accountId);\n this.props.fetchNotes(this.props.match.params.accountId);\n this.props.fetchEmailAttachments(match.params.perspectiveId, match.params.companyId, match.params.accountId);\n }\n\n toggleSelectRowAccounts(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedAccountKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedAccountRows);\n this.setState({ selectedAccountKeys: newSelectedKeys, selectedAccountRows: newSelectedRows });\n }\n\n toggleSelectRowDocuments(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedDocumentKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedAccountDocuments);\n this.setState({ selectedDocumentKeys: newSelectedKeys, selectedAccountDocuments: newSelectedRows });\n }\n\n toggleSelectEmailAttachments(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedEmailAttachmentKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedEmailAttachments);\n this.setState({ selectedEmailAttachmentKeys: newSelectedKeys, selectedEmailAttachments: newSelectedRows });\n }\n\n toggleNotesEditMode() {\n this.setState({ notesEditMode: !this.state.notesEditMode });\n }\n\n toggleEditMode() {\n this.setState({ editMode: false });\n this.props.fetchAccountProfile(this.props.match.params.perspectiveId, this.props.match.params.accountId);\n this.props.fetchAccountList(this.props.match.params.perspectiveId);\n }\n\n uploadFile() {\n window.document.getElementById(\"uploadFile\").click();\n }\n\n postNoteChanges() {\n let newNote = this.state.newNote;\n if (newNote !== \"\") {\n let request = {\n note: newNote\n };\n this.props.postNotes(this.props.match.params.accountId, request).then(response => {\n this.props.fetchNotes(this.props.match.params.accountId);\n });\n }\n this.toggleNotesEditMode();\n }\n\n deleteNote(note) {\n this.props.deleteNote(this.props.match.params.accountId, note.entityGlobalIdentifierNoteKey).then(response => {\n this.props.fetchNotes(this.props.match.params.accountId);\n });\n }\n\n renderNotesCard() {\n let accountId = this.props.match.params.accountId;\n return (\n \n
\n

{Resources.Notes.toLocaleUpperCase()}

\n {this.state.notesEditMode ? null : (\n \n
\n \n
\n
\n )}\n
\n {(this.props.gettingNotes && this.props.notes[accountId] === undefined) || this.props.postingNotes ? (\n
\n \n
\n ) : isEmpty(this.props.notes[accountId] || []) && !this.state.notesEditMode ? (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n

{Resources.NothingToSeeHereNotes}

\n
\n
\n ) : (\n \n {(this.props.notes[accountId] || []).map((note, i) => {\n return (\n
\n
\n
{note.note}
\n {!this.state.notesEditMode ? null : (\n \n {\n this.deleteNote(note);\n let newNotes = [...this.state.notes];\n newNotes.splice(i, 1);\n this.setState({ notes: newNotes });\n }}\n >\n \n
\n \n )}\n
\n

\n {note.userFullName === null ? null : note.userFullName + \" \"}\n {formatDate(note.createdDate)}\n

\n \n );\n })}\n
\n )}\n\n {this.state.notesEditMode ? (\n
\n
\n {\n let value = e.target.value;\n this.setState({ newNote: value });\n }}\n />\n
\n
\n \n
\n
\n ) : null}\n
\n );\n }\n\n renderTableHeaderButtons(outside) {\n return (\n
\n {\n outside\n ? this.state.selectedAccountDocuments.forEach(i => {\n openUrlForDownload(i.documentURL);\n })\n : this.state.selectedEmailAttachments.forEach(i => {\n let signature = i.downloadURL.split(\"/\")[i.downloadURL.split(\"/\").length - 1];\n this.props.downloadAttachment(\n this.props.match.params.perspectiveId,\n this.props.match.params.companyId,\n this.props.match.params.accountId,\n i.attachmentKey,\n signature\n );\n });\n }}\n >\n \n {Resources.Download}\n \n {\n this.props.displayModal(\"setNewDocumentTypeDialog\", {\n selectedDocuments: outside ? this.state.selectedDocumentKeys : this.state.selectedEmailAttachmentKeys,\n documentTypes:\n this.props.perspectiveStore.selectedPerspectiveType !== \"vendors\"\n ? [\n { label: Resources.CreditApplication, value: 1 },\n { label: Resources.ProofOfInsurance, value: 2 },\n { label: Resources.TaxExemptionCertificate, value: 3 }\n ]\n : [\n { label: Resources.BankVerification, value: 1 },\n { label: Resources.WNine, value: 2 },\n { label: Resources.Other, value: 3 }\n ],\n perspectiveId: this.props.match.params.perspectiveId,\n accountId: this.props.match.params.accountId,\n companyId: this.props.match.params.companyId,\n attachments: !outside\n });\n }}\n >\n \n {Resources.DocumentType}\n \n {/* {outside ? (\n {\n console.log(\"document type\");\n }}\n >\n \n {Resources.MarkAsPrivate}\n \n ) : null} */}\n {\n this.props.displayModal(\"deleteDocumentConfirmDialog\", {\n selectedDocuments: outside ? this.state.selectedDocumentKeys : this.state.selectedEmailAttachmentKeys,\n perspectiveId: this.props.match.params.perspectiveId,\n accountId: this.props.match.params.accountId,\n companyId: this.props.match.params.companyId,\n attachments: !outside\n });\n this.setState({ selectedDocumentKeys: [], selectedEmailAttachmentKeys: [] });\n }}\n >\n \n {Resources.Delete}\n \n
\n );\n }\n\n render() {\n const {\n match = { params: {} },\n gettingAccountProfiles,\n gettingAccountDocuments,\n gettingAccountContacts\n } = this.props;\n\n const gettingSelectedAccount = gettingAccountProfiles[match.params.accountId];\n const gettingSelectedAccountDocuments = gettingAccountDocuments[match.params.accountId];\n const gettingSelectedAccountContacts = gettingAccountContacts[match.params.accountId];\n const displayProfileLoadingState =\n isEmpty(this.props.getAccountProfile(match.params.perspectiveId, match.params.accountId) || {}) &&\n gettingSelectedAccount;\n const displayActivitiesLoadingState =\n isEmpty(this.props.getAccountProfile(match.params.perspectiveId, match.params.accountId) || {}) &&\n gettingSelectedAccount;\n const displayContactsLoadingState =\n isEmpty(this.props.getAccountContacts(match.params.perspectiveId, match.params.accountId)) &&\n gettingSelectedAccountContacts;\n const displayDocumentsLoadingState =\n isEmpty(this.props.getAccountDocuments(match.params.perspectiveId, match.params.accountId)) &&\n gettingSelectedAccountDocuments;\n\n const selectedAccount = this.props.getAccountProfile(match.params.perspectiveId, match.params.accountId) || {};\n const companyName = selectedAccount.vendorName ? selectedAccount.vendorName : selectedAccount.companyName;\n\n const selectedAccountDocuments =\n this.props.getAccountDocuments(match.params.perspectiveId, match.params.accountId) || [];\n const selectedAccountEmailAttachments =\n this.props.getEmailAttachments(match.params.perspectiveId, match.params.companyId, match.params.accountId) || [];\n const selectedAccountContacts =\n this.props.getAccountContacts(match.params.perspectiveId, match.params.accountId) || [];\n const selectedAccountArchivedContacts =\n this.props.getAccountArchivedContacts(match.params.perspectiveId, match.params.accountId) || [];\n\n const combinedContacts = selectedAccountContacts.concat(selectedAccountArchivedContacts);\n\n const contactTableHeaderButtons = (\n
\n {\n this.props.sendContactProfileUpdateRequest([...this.state.selectedAccountKeys]).then(response => {\n this.props.fetchOpenProfileUpdateRequests(match.params.perspectiveId);\n this.props.fetchOpenOnboardingRequests(match.params.perspectiveId);\n this.props.fetchActivityList(match.params.perspectiveId, {\n top: 100,\n skip: 0\n });\n });\n this.props.displayNotification(\"sendProfileUpdateRequestNotifiation\");\n }}\n >\n \n {Resources.RequestProfileUpdate}\n \n {/* {\n alert(\"send message\");\n }}\n >\n \n {Resources.SendMessage}\n */}\n {\n this.state.selectedAccountKeys.map(i => {\n let currentContact = this.props.networkStore.contactsMap[i];\n if (currentContact.isPrivate) {\n this.props\n .updateContactPrivacy(\n this.props.match.params.perspectiveId,\n i,\n false,\n this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\"\n )\n .then(response => {\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n this.props.fetchArchivedContactList(match.params.perspectiveId);\n this.props.fetchAccountArchivedContacts(match.params.perspectiveId, match.params.accountId);\n this.props.fetchAccountContacts(match.params.perspectiveId, match.params.accountId);\n });\n }\n return null;\n });\n this.props.displayNotification(\"contactMarkedPrivateNotification\");\n }}\n >\n \n {Resources.MarkAsPublic}\n \n {\n this.state.selectedAccountKeys.map(i => {\n let currentContact = this.props.networkStore.contactsMap[i];\n if (!currentContact.isPrivate) {\n this.props\n .updateContactPrivacy(\n this.props.match.params.perspectiveId,\n i,\n true,\n this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\"\n )\n .then(response => {\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n this.props.fetchArchivedContactList(match.params.perspectiveId);\n this.props.fetchAccountArchivedContacts(match.params.perspectiveId, match.params.accountId);\n this.props.fetchAccountContacts(match.params.perspectiveId, match.params.accountId);\n });\n }\n return null;\n });\n this.props.displayNotification(\"contactMarkedPrivateNotification\");\n }}\n >\n \n {Resources.MarkAsPrivate}\n \n {\n this.state.selectedAccountKeys.map(i => [\n this.props\n .markContactPrimary(\n this.props.match.params.perspectiveId,\n i,\n this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\"\n )\n .then(response => {\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n this.props.fetchArchivedContactList(match.params.perspectiveId);\n this.props.fetchAccountArchivedContacts(match.params.perspectiveId, match.params.accountId);\n this.props.fetchAccountContacts(match.params.perspectiveId, match.params.accountId);\n })\n ]);\n this.props.displayNotification(\"markingAsPrimaryNotification\");\n }}\n >\n \n {Resources.MarkAsPrimary}\n \n {\n let mode = this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\";\n this.state.selectedAccountRows.forEach(i => {\n this.props\n .toggleContactArchived(match.params.perspectiveId, i.entityGlobalKey, !i.isArchived, mode)\n .then(response => {\n this.props.fetchContactList(match.params.perspectiveId);\n this.props.fetchArchivedContactList(match.params.perspectiveId);\n this.props.fetchAccountArchivedContacts(match.params.perspectiveId, match.params.accountId);\n this.props.fetchAccountContacts(match.params.perspectiveId, match.params.accountId);\n });\n });\n this.setState({ selectedAccountRows: [], selectedAccountKeys: [] });\n\n this.props.displayNotification(\"updatedContactStatusNotification\");\n }}\n >\n \n {Resources.Archive}\n \n
\n );\n\n let enableAccountingData =\n this.props.perspectiveStore.selectedPerspectiveType !== \"vendors\"\n ? this.props.flags.arAccountingData\n : this.props.flags.apAccountingData;\n\n let subViews = [{ subView: \"activities\", display: Resources.Activities.toLocaleUpperCase() }];\n\n if (enableAccountingData) {\n subViews = [\n ...subViews,\n { subView: \"open-invoices\", display: Resources.OpenInvoices.toLocaleUpperCase() },\n { subView: \"closed-invoices\", display: Resources.ClosedInvoices.toLocaleUpperCase() },\n { subView: \"payments\", display: Resources.Payments.toLocaleUpperCase() }\n ];\n }\n\n subViews = [\n ...subViews,\n { subView: \"profile\", display: Resources.Profile.toLocaleUpperCase() },\n { subView: \"contacts\", display: Resources.Contacts.toLocaleUpperCase() },\n { subView: \"documents\", display: Resources.Documents.toLocaleUpperCase() }\n ];\n\n let classifications = [\n { value: 1, classification: \"Corporation\" },\n { value: 2, classification: \"Partnership\" },\n { value: 3, classification: \"Sole-proprietor\" }\n ];\n\n let docTypeArray =\n this.props.perspectiveStore.selectedPerspectiveType !== \"vendors\"\n ? [Resources.CreditApplication, Resources.ProofOfInsurance, Resources.TaxExemptionCertificate]\n : [Resources.BankVerification, Resources.WNine, Resources.Other];\n\n let docTypes =\n this.props.perspectiveStore.selectedPerspectiveType !== \"vendors\"\n ? {\n 1: Resources.CreditApplication,\n 2: Resources.ProofOfInsurance,\n 3: Resources.TaxExemptionCertificate\n }\n : {\n 1: Resources.BankVerification,\n 2: Resources.WNine,\n 3: Resources.Other\n };\n\n let documentColumns = [\n {\n type: \"rowSelect\",\n justify: \"center\",\n width: \"3%\"\n },\n {\n header: Resources.DocumentName.toLocaleUpperCase(),\n content: row => {\n return (\n {\n if (row.downloadURL === \"\" || row.downloadURL === undefined) {\n openUrlForDownload(row.documentURL);\n } else {\n let signature = row.downloadURL.split(\"/\")[row.downloadURL.split(\"/\").length - 1];\n this.props.downloadAttachment(\n this.props.match.params.perspectiveId,\n this.props.match.params.companyId,\n this.props.match.params.accountId,\n row.attachmentKey,\n signature\n );\n }\n }}\n >\n {row.fileName}\n
\n );\n },\n width: \"30%\"\n },\n {\n header: Resources.DocumentType.toLocaleUpperCase(),\n content: row => {\n return (\n \n
\n {docTypes[row.documentTypeId] !== undefined ? docTypes[row.documentTypeId] : Resources.Other}\n }>\n
\n {docTypeArray.map(i => {\n return (\n {\n let body = {\n fileKeys: [row.arDocumentKey || row.apDocumentKey || row.attachmentKey],\n newType: docTypeArray.indexOf(i) + 1\n };\n row.attachmentKey === undefined\n ? this.props\n .updateDocumentType(\n this.props.match.params.perspectiveId,\n this.props.match.params.accountId,\n body\n )\n .then(response => {\n this.props.fetchAccountDocuments(\n match.params.perspectiveId,\n match.params.accountId\n );\n })\n : this.props\n .updateEmailAttachmentType(\n this.props.match.params.perspectiveId,\n this.props.match.params.companyId,\n body\n )\n .then(response => {\n this.props.fetchEmailAttachments(\n this.props.match.params.perspectiveId,\n this.props.match.params.companyId,\n this.props.match.params.accountId\n );\n });\n }}\n >\n {i}\n \n );\n })}\n
\n
\n
\n
\n );\n },\n width: \"30%\"\n },\n {\n header: Resources.Owner.toLocaleUpperCase(),\n content: row => row.owner,\n width: \"25%\"\n },\n {\n header: Resources.LastUpdated.toLocaleUpperCase(),\n content: row => formatDate(row.updateDate),\n width: \"15%\"\n },\n { content: row => null, width: \"0%\" }\n ];\n\n const requestProfileUpdateButton = (\n \n {\n this.props.sendAccountProfileUpdateRequest([selectedAccount.entityGlobalKey]).then(response => {\n this.props.fetchOpenProfileUpdateRequests(match.params.perspectiveId);\n this.props.fetchOpenOnboardingRequests(match.params.perspectiveId);\n this.props.fetchActivityList(match.params.perspectiveId, {\n top: 100,\n skip: 0\n });\n });\n this.props.displayNotification(\"sendProfileUpdateRequestNotifiation\");\n }}\n >\n \n {Resources.RequestProfileUpdate}\n \n \n );\n\n const editProfileButton = (\n \n {\n this.setState({ editMode: true });\n }}\n >\n \n {Resources.EditProfile}\n \n \n );\n\n if (this.props.networkStore.failedGetCustomerAccounts[this.props.match.params.accountId]) {\n return (\n \n );\n }\n\n const getViewContentHeader = () => {\n const contentHeaderProps = {\n links: subViews,\n accountViewing: selectedAccount\n };\n\n if (needClickBackRoute(this.props.location.pathname)) {\n contentHeaderProps.onClickBackRoute = generatePath(\n `/v2/:companyId/:perspectiveId/network/${selectedAccount.isArchived ? \"accountArchive\" : \"accounts\"}`,\n this.props.match.params\n );\n }\n\n return ();\n }\n\n return (\n \n \n \n \n {\n !displayActivitiesLoadingState &&\n !isEmpty(\n selectedAccount.displayName ||\n selectedAccount.custName ||\n selectedAccount.vendorName ||\n selectedAccount.companyName\n ) && (\n getViewContentHeader()\n )\n }\n
\n \n \n \n {displayActivitiesLoadingState ? (\n \n ) : (\n \n )}\n \n \n \n {enableAccountingData ? (\n \n ) : (\n \n )}\n \n \n {enableAccountingData ? (\n \n ) : (\n \n )}\n \n \n {enableAccountingData ? (\n \n ) : (\n \n )}\n \n \n {this.state.editMode ? (\n \n ) : displayProfileLoadingState ? (\n \n ) : (\n \n
\n {requestProfileUpdateButton}\n {editProfileButton}\n
\n
\n \n \n {Resources.UpdatedDate(formatDate(selectedAccount.profileUpdateDate))}\n
\n
\n
\n
\n \n
\n \n {selectedAccount.emailAddr === \"\" || selectedAccount.emailAddr === null ? (\n this.setState({ editMode: true })}\n className=\"missing-email-address-container\"\n >\n \n {Resources.MissingEmailAddress}\n
\n ) : (\n \n \n this.props.displayFlyout(\"newActivityFlyout\", {\n companyId: this.props.match.params.companyId,\n perspectiveId: this.props.match.params.perspectiveId,\n sendToAccountId: this.props.match.params.accountId\n })\n }\n >\n {selectedAccount.emailAddr}\n \n \n )}\n
\n
\n {!isEmpty(selectedAccount.phone) && (\n
\n
\n \n
\n \n {selectedAccount.phone}\n
\n \n )}\n {!isEmpty(selectedAccount.fax) && (\n
\n
\n \n
\n \n {selectedAccount.fax}\n
\n \n )}\n {!isEmpty(\n [\n selectedAccount.mailToAddrLn1,\n selectedAccount.mailToCity,\n selectedAccount.mailToState,\n selectedAccount.mailToPostalcode,\n selectedAccount.mailToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n \n
\n {selectedAccount.mailToAddrLn1}\n
\n
\n {selectedAccount.mailToCity}, {selectedAccount.mailToState}{\" \"}\n {selectedAccount.mailToPostalcode}\n
\n
\n {selectedAccount.mailToCountry}\n
\n
\n \n )}\n {!isEmpty(\n [\n selectedAccount.billToAddrLn1,\n selectedAccount.billToCity,\n selectedAccount.billToState,\n selectedAccount.billToPostalcode,\n selectedAccount.billToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n \n {isEmpty(\n [\n selectedAccount.shipToAddrLn1,\n selectedAccount.shipToCity,\n selectedAccount.shipToState,\n selectedAccount.shipToPostalcode,\n selectedAccount.shipToCountry\n ].filter(value => !isEmpty(value))\n ) ? null : (\n
{Resources.BillTo}
\n )}\n
\n {selectedAccount.billToAddrLn1}\n
\n
\n {selectedAccount.billToCity}, {selectedAccount.billToState}{\" \"}\n {selectedAccount.billToPostalcode}\n
\n
\n {selectedAccount.billToCountry}\n
\n
\n \n )}\n {!isEmpty(\n [\n selectedAccount.shipToAddrLn1,\n selectedAccount.shipToCity,\n selectedAccount.shipToState,\n selectedAccount.shipToPostalcode,\n selectedAccount.shipToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n {!isEmpty(\n [\n selectedAccount.billToAddrLn1,\n selectedAccount.billToCity,\n selectedAccount.billToState,\n selectedAccount.billToPostalcode,\n selectedAccount.billToCountry\n ].filter(value => !isEmpty(value))\n ) ? null : (\n \n )}\n
\n \n {isEmpty(\n [\n selectedAccount.billToAddrLn1,\n selectedAccount.billToCity,\n selectedAccount.billToState,\n selectedAccount.billToPostalcode,\n selectedAccount.billToCountry\n ].filter(value => !isEmpty(value))\n ) ? null : (\n
{Resources.ShipTo}
\n )}\n
\n {selectedAccount.shipToAddrLn1}\n
\n
\n {selectedAccount.shipToCity}, {selectedAccount.shipToState}{\" \"}\n {selectedAccount.shipToPostalcode}\n
\n
\n {selectedAccount.shipToCountry}\n
\n
\n \n )}\n {((selectedAccount.entityClassificationId !== null &&\n selectedAccount.entityClassificationId !== undefined &&\n selectedAccount.entityClassificationId !== 0) ||\n !isEmpty(selectedAccount.taxId) ||\n !isEmpty(selectedAccount.stateOfIncoporation) ||\n !isEmpty(selectedAccount.dateOfIncoporation)) && (\n
\n
\n \n
\n \n {!isEmpty(selectedAccount.taxId) && (\n
\n {Resources.ein}: {selectedAccount.taxId}\n
\n )}\n {selectedAccount.entityClassificationId !== null &&\n selectedAccount.entityClassificationId !== undefined &&\n selectedAccount.entityClassificationId !== 0 && (\n
\n {Resources.EntityClassification}:{\" \"}\n {\n (classifications[selectedAccount.entityClassificationId - 1] || {})\n .classification\n }\n
\n )}\n {!isEmpty(selectedAccount.stateOfIncoporation) ? (\n !isEmpty(selectedAccount.dateOfIncoporation) ? (\n
\n {Resources.IncorporatedInStateDate(\n selectedAccount.stateOfIncoporation,\n selectedAccount.dateOfIncoporation\n )}\n
\n ) : (\n
\n {Resources.IncorporatedInState(selectedAccount.stateOfIncoporation)}\n
\n )\n ) : (\n !isEmpty(selectedAccount.dateOfIncoporation) && (\n
\n {Resources.IncorporatedDate(selectedAccount.dateOfIncoporation)}\n
\n )\n )}\n
\n \n )}\n {!isEmpty(selectedAccount.linkedInProfile) && (\n
\n \n \n
\n \n \n {selectedAccount.linkedInProfile}\n \n \n \n )}\n {!isEmpty(selectedAccount.notes) && (\n
\n
\n \n
\n \n {selectedAccount.notes}\n
\n \n )}\n \n \n {this.renderNotesCard()}\n \n \n )}\n
\n \n {displayContactsLoadingState ? (\n \n ) : isEmpty(combinedContacts) ? (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n

{Resources.NoContactsHaveBeenAddedYet}

\n

{Resources.RequestProfileUpdateToHaveAccountAddContactsToProfile}

\n {requestProfileUpdateButton}\n
\n ) : (\n \n
\n {!isEmpty(this.state.selectedAccountKeys) ? (\n contactTableHeaderButtons\n ) : (\n {\n this.props.displayFlyout(\"addContactFlyout\", {\n perspectiveId: this.props.match.params.perspectiveId,\n companyId: this.props.match.params.companyId,\n accountId: this.props.match.params.accountId\n });\n }}\n className=\"button-primary\"\n >\n \n {Resources.AddContact}\n \n )}\n
\n \n \n this.toggleSelectRowAccounts(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k =>\n find(combinedContacts, row => row.entityGlobalKey === k)\n )\n )\n }\n />\n \n
\n )}\n
\n \n {displayDocumentsLoadingState ? (\n \n ) : isEmpty(selectedAccountDocuments) && isEmpty(selectedAccountEmailAttachments) ? (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n

{Resources.NoDocumentsHaveBeenAddedYet}

\n

{Resources.RequestProfileUpdateToHaveAccountAddDocumentsToProfile}

\n {requestProfileUpdateButton}\n
\n ) : (\n
\n {!isEmpty(this.state.selectedDocumentKeys) ? (\n this.renderTableHeaderButtons(true)\n ) : (\n
\n \n {\n let mode = this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\";\n this.props\n .addAccountingGroupDocument(\n match.params.perspectiveId,\n match.params.accountId,\n mode,\n e.target.files[0]\n )\n .then(() => {\n this.props.fetchAccountDocuments(match.params.perspectiveId, match.params.accountId);\n });\n this.props.displayNotification(\"uploadingDocumentNotification\");\n }}\n />\n
\n )}\n

{Resources.ProfileDocuments}

\n \n \n \n this.toggleSelectRowDocuments(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k =>\n find(\n this.props.networkStore.accountDocumentsMap[this.props.match.params.accountId],\n row =>\n this.props.perspectiveStore.selectedPerspectiveType === \"vendors\"\n ? row.arDocumentKey === k\n : row.apDocumentKey === k\n )\n )\n )\n }\n rowHeight={\"5rem\"}\n />\n \n \n

{Resources.EmailAttachments}

\n \n \n
\n {!isEmpty(this.state.selectedEmailAttachmentKeys) ? (\n this.renderTableHeaderButtons(false)\n ) : (\n
\n {\n const accountsSearchTerm = e.target.value;\n this.setState({ accountsSearchTerm });\n this.props.debouncedFetchAttachmentSearchResults(\n match.params.perspectiveId,\n match.params.companyId,\n match.params.accountId,\n {\n searchTerm: accountsSearchTerm\n }\n );\n }}\n callToActionButton={\n this.setState({ displayAccountSearchResults: true })}\n >\n {Resources.SeeAllResultsFor(this.props.networkStore.accountSearchTerm)}\n
\n }\n isShowingSearchResult={this.state.displayAccountSearchResults}\n handleClearResult={() => {\n this.setState({\n accountsSearchTerm: \"\",\n displayAccountSearchResults: false,\n accountsSearchLoadedPage: 1\n });\n }}\n text={this.state.accountsSearchTerm}\n noResultsMessage={Resources.NoResultsFound}\n showNoResultsMessage={this.props.networkStore.gotNetworkAccountSearchResults}\n maxOptions={7}\n handleSelectOption={option => {\n this.setState({\n accountsSearchTerm: option.fileName,\n displayAccountSearchResults: true,\n selectedEmailAttachmentKeys: [option.attachmentKey]\n });\n this.props.fetchAttachmentSearchResults(\n match.params.perspectiveId,\n match.params.companyId,\n match.params.accountId,\n {\n searchTerm: option.fileName\n }\n );\n }}\n renderOption={option => `${option.displayName || option.fileName}`}\n options={this.props.networkStore.accountSearchResults.value}\n width=\"300px\"\n />\n
\n )}\n
\n \n this.toggleSelectEmailAttachments(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k =>\n find(this.props.networkStore.emailAttachments.value, row => row.attachmentKey === k)\n )\n )\n }\n rowHeight={\"5rem\"}\n />\n \n \n \n )}\n
\n
\n \n \n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n gettingAccountProfiles: store.network.gettingAccountProfiles,\n gettingAccountContacts: store.network.gettingAccountContacts,\n gettingAccountDocuments: store.network.gettingAccountDocuments,\n notes: store.network.notes,\n networkStore: store.network,\n gettingNotes: store.network.gettingNotes,\n postingNotes: store.network.postingNotes,\n perspectiveStore: store.perspectives,\n contextGroupsStore: store.contextGroups\n };\n};\n\nexport default withLDConsumer()(withRouter(connect(storeToProps, dispatchToProps)(AccountView)));\n","import React, { Component } from \"react\";\nimport { Switch, Redirect, withRouter, Route, Link, generatePath } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport Resources from \"../../../../lib/resources\";\nimport { isEmpty, formatDate } from \"../../../../lib/utils\";\n\nimport Card from \"../../../library/card\";\nimport ViewContentHeader from \"../viewContentHeader\";\nimport IconArchive from \"../../../library/icons/iconArchive\";\nimport IconPhone from \"../../../library/icons/iconPhone\";\nimport IconMapPin from \"../../../library/icons/iconMapPin\";\nimport IconLinkedIn from \"../../../library/icons/iconLinkedIn\";\nimport IconClipboard from \"../../../library/icons/iconClipboard\";\nimport IconMail from \"../../../library/icons/iconMail\";\nimport IconSend from \"../../../library/icons/iconSend\";\nimport IconEdit from \"../../../library/icons/iconEdit\";\nimport TextArea from \"../../../library/textAreaInput\";\nimport MainLoader from \"../../../mainLoader\";\nimport IconAlertCircle from \"../../../library/icons/iconAlertCircle\";\nimport ContactUpdateForm from \"../profileUpdate/contactUpdateForm\";\n\nimport { dispatchToProps as netDP } from \"../../../../store/network-actions\";\nimport { dispatchToProps as modDP } from \"../../../../store/modal-actions\";\nimport { dispatchToProps as persDP } from \"../../../../store/perspectives-actions\";\n\nimport IconTrash from \"../../../library/icons/iconTrash\";\nimport DepartmentView from \"../../../departmentView\";\nimport IconBriefcase from \"../../../library/icons/iconBriefcase\";\nimport IconLock from \"../../../library/icons/iconLock\";\nimport IconUnlock from \"../../../library/icons/iconUnlock\";\nimport IconAward from \"../../../library/icons/iconAward\";\n\nconst dispatchToProps = dispatch => ({\n ...netDP(dispatch),\n ...modDP(dispatch),\n ...persDP(dispatch)\n});\n\nclass ContactView extends Component {\n constructor(props) {\n super(props);\n this.state = {\n notesEditMode: false,\n notes: [],\n newNote: \"\",\n editMode: false\n };\n this.toggleNotesEditMode = this.toggleNotesEditMode.bind(this);\n this.postNoteChanges = this.postNoteChanges.bind(this);\n this.deleteNote = this.deleteNote.bind(this);\n this.toggleEditMode = this.toggleEditMode.bind(this);\n this.refreshData = this.refreshData.bind(this);\n }\n\n componentDidMount() {\n this.refreshData();\n this.refreshTimer = setInterval(() => this.refreshData(), 30000);\n }\n\n componentWillUnmount() {\n clearInterval(this.refreshTimer);\n }\n\n refreshData() {\n this.props.fetchContactProfile(this.props.match.params.perspectiveId, this.props.match.params.contactId);\n this.props.fetchMyProfile();\n this.props.fetchNotes(this.props.match.params.contactId);\n }\n\n toggleNotesEditMode() {\n this.setState({ notesEditMode: !this.state.notesEditMode });\n }\n\n postNoteChanges() {\n let newNote = this.state.newNote;\n if (newNote !== \"\") {\n let request = {\n note: newNote\n };\n this.props.postNotes(this.props.match.params.contactId, request).then(response => {\n this.props.fetchNotes(this.props.match.params.contactId);\n });\n }\n this.toggleNotesEditMode();\n }\n\n deleteNote(note) {\n this.props.deleteNote(this.props.match.params.contactId, note.entityGlobalIdentifierNoteKey).then(response => {\n this.props.fetchNotes(this.props.match.params.contactId);\n });\n }\n\n renderNotesCard() {\n let contactId = this.props.match.params.contactId;\n return (\n \n
\n

{Resources.Notes.toLocaleUpperCase()}

\n {this.state.notesEditMode ? null : (\n \n
\n \n
\n
\n )}\n
\n {(this.props.gettingNotes && this.props.notes[contactId] === undefined) || this.props.postingNotes ? (\n
\n \n
\n ) : isEmpty(this.props.notes[contactId] || []) && !this.state.notesEditMode ? (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n

{Resources.NothingToSeeHereNotes}

\n
\n
\n ) : (\n \n {(this.props.notes[contactId] || []).map((note, i) => {\n return (\n
\n
\n
{note.note}
\n {!this.state.notesEditMode ? null : (\n \n {\n this.deleteNote(note);\n let newNotes = [...this.state.notes];\n newNotes.splice(i, 1);\n this.setState({ notes: newNotes });\n }}\n >\n \n
\n \n )}\n
\n

\n {note.userFullName === null ? null : note.userFullName + \" \"}\n {formatDate(note.createdDate)}\n

\n \n );\n })}\n
\n )}\n {this.state.notesEditMode ? (\n
\n
\n {\n let value = e.target.value;\n this.setState({ newNote: value });\n }}\n />\n
\n
\n \n
\n
\n ) : null}\n
\n );\n }\n\n toggleEditMode() {\n this.setState({ editMode: false });\n this.props.fetchContactProfile(this.props.match.params.perspectiveId, this.props.match.params.contactId);\n }\n\n render() {\n const { match = { params: {} }, gettingContactProfiles } = this.props;\n\n let roles = {\n 1: \"CFO\",\n 2: \"Manager/Controller\",\n 3: \"Disputes\",\n 4: \"Payments\",\n 5: \"Remittance\",\n 6: \"Primary\",\n 7: \"Secondary\"\n };\n\n let selectedContact =\n this.props.getContactProfile(match.params.perspectiveId, this.props.match.params.contactId) || {};\n\n const selectedContactCompanyName = selectedContact.vendorName || selectedContact.custName;\n const selectedContactCompanyGlobalKey = selectedContact.vendorGlobalKey || selectedContact.custGlobalKey;\n\n const contactCompanyLink = selectedContactCompanyGlobalKey && (\n \n {selectedContactCompanyName}\n \n );\n\n const gettingSelectedContact = gettingContactProfiles[match.params.contactId];\n const displayProfileLoadingState =\n isEmpty(selectedContact.email || selectedContact.emailAddr) && gettingSelectedContact;\n\n // let subViews = [\n // //{ subView: \"messages\", display: Resources.Messages.toLocaleUpperCase() },\n // { subView: \"profile\", display: Resources.Profile.toLocaleUpperCase() }\n // ];\n\n if (this.props.networkStore.failedGetCustomerContacts[this.props.match.params.contactId]) {\n return (\n \n );\n }\n\n return (\n \n \n \n {displayProfileLoadingState && isEmpty(selectedContact.contactName) ? null : (\n \n )}\n
\n {this.state.editMode ? (\n \n ) : (\n \n \n {displayProfileLoadingState ? (\n \n ) : (\n \n
\n {\n if (selectedContact.isPrivate) {\n this.props.displayModal(\"sendPrivateContactRequestDialog\", {\n perspectiveId: this.props.match.params.perspectiveId,\n contactId: this.props.match.params.contactId,\n selectedContact: selectedContact,\n selectedPerspectiveType: this.props.perspectiveStore.selectedPerspectiveType\n });\n } else {\n this.props.displayNotification(\"sendProfileUpdateRequestNotifiation\");\n this.props\n .sendContactProfileUpdateRequest([selectedContact.entityGlobalKey])\n .then(response => {\n this.props.fetchOpenProfileUpdateRequests(match.params.perspectiveId);\n this.props.fetchOpenOnboardingRequests(match.params.perspectiveId);\n this.props.fetchActivityList(match.params.perspectiveId, {\n top: 100,\n skip: 0\n });\n });\n }\n }}\n >\n \n {Resources.RequestProfileUpdate}\n \n {selectedContact.isPrivate ? (\n {\n this.props\n .updateContactPrivacy(\n this.props.match.params.perspectiveId,\n this.props.match.params.contactId,\n !selectedContact.isPrivate,\n this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\"\n )\n .then(response => {\n this.props.fetchContactProfile(\n this.props.match.params.perspectiveId,\n this.props.match.params.contactId\n );\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n });\n this.props.displayNotification(\"contactMarkedPrivateNotification\");\n }}\n >\n \n {Resources.MarkAsPublic}\n \n ) : (\n {\n this.props\n .updateContactPrivacy(\n this.props.match.params.perspectiveId,\n this.props.match.params.contactId,\n !selectedContact.isPrivate,\n this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\"\n )\n .then(response => {\n this.props.fetchContactProfile(\n this.props.match.params.perspectiveId,\n this.props.match.params.contactId\n );\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n });\n this.props.displayNotification(\"contactMarkedPrivateNotification\");\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n }}\n >\n \n {Resources.MarkAsPrivate}\n \n )}\n {\n this.props\n .markContactPrimary(\n this.props.match.params.perspectiveId,\n this.props.match.params.contactId,\n this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\"\n )\n .then(response => {\n this.props.fetchContactProfile(\n this.props.match.params.perspectiveId,\n this.props.match.params.contactId\n );\n });\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n this.props.displayNotification(\"markingAsPrimaryNotification\");\n }}\n >\n \n {Resources.MarkAsPrimary}\n \n {\n this.setState({ editMode: true });\n }}\n >\n \n {Resources.EditProfile}\n \n
\n
\n \n \n {Resources.UpdatedDate(formatDate(selectedContact.updateDate))}\n
\n
\n {isEmpty(selectedContact.title) &&\n isEmpty(selectedContactCompanyName) &&\n (isEmpty(selectedContact.contactRoleId) || selectedContact.contactRoleId === 0) ? null : (\n
\n
\n \n
\n \n {!isEmpty(selectedContact.title) && selectedContact.title + \", \"}\n {!isEmpty(selectedContact.contactRoleId) && selectedContact.contactRoleId !== 0 ? (\n \n {roles[selectedContact.contactRoleId]}, {contactCompanyLink}\n \n ) : (\n contactCompanyLink\n )}\n
\n
\n )}\n
\n
\n \n
\n
\n {selectedContact.emailAddr === \"\" || selectedContact.emailAddr === null ? (\n this.setState({ editMode: true })}\n className=\"missing-email-address-container\"\n data-test-id=\"contact-profile__email--content\"\n >\n \n {Resources.MissingEmailAddress}\n
\n ) : (\n \n {selectedContact.emailAddr}\n \n )}\n
\n
\n {!isEmpty(selectedContact.phone) && (\n
\n \n \n
\n \n {selectedContact.phone}\n \n \n )}\n {!isEmpty(selectedContact.fax) && (\n
\n
\n \n
\n \n {selectedContact.fax}\n
\n \n )}\n {!isEmpty(\n [\n selectedContact.addrLn1,\n selectedContact.city,\n selectedContact.state,\n selectedContact.postalcode,\n selectedContact.country\n ].filter(value => !isEmpty(value))\n ) && (\n
\n \n \n
\n \n
\n {selectedContact.addrLn1}\n
\n
\n {selectedContact.city}, {selectedContact.state} {selectedContact.postalcode}\n
\n
{selectedContact.country}
\n \n \n )}\n {!isEmpty(selectedContact.linkedInProfile) && (\n
\n \n \n
\n \n \n {selectedContact.linkedInProfile}\n \n \n \n )}\n {!isEmpty(selectedContact.notes) && (\n
\n
\n \n
\n \n {selectedContact.notes}\n
\n \n )}\n \n \n {this.renderNotesCard()}\n \n
\n )}\n \n \n \n \n \n )}\n \n \n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n gettingContactProfiles: store.network.gettingContactProfiles,\n notes: store.network.notes,\n networkStore: store.network,\n gettingNotes: store.network.gettingNotes,\n postingNotes: store.network.postingNotes,\n contactName: store.network.custContact.contactName,\n perspectiveStore: store.perspectives\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ContactView));\n","import React, { useEffect } from \"react\";\nimport moment from \"moment\";\n\nimport Resources from \"../../lib/resources\";\nimport { isEmpty, includes, createKey } from \"../../lib/utils\";\nimport { isInt } from \"../../lib/validation\";\n\nimport SelectInput from \"./selectInput\";\nimport TextInput from \"./textInput\";\nimport DatePicker from \"react-datepicker\";\n\nimport IconPlusCircle from \"./icons/iconPlusCircle\";\nimport IconTrash from \"./icons/iconTrash\";\n\nexport default function FilterBuilder(props) {\n const {\n addFilter = () => null,\n deleteFilter = i => null,\n updateFilter = () => null,\n updateFilterString = () => null,\n clearFilters = () => null,\n filters = [],\n filterOptions,\n onDoneClick = () => null\n } = props;\n\n useEffect(() => {\n updateFilterString(generateFilterString(filters));\n }, [updateFilterString, filters]);\n\n return (\n
\n
\n {filters.map((filter, i) => {\n return (\n
\n \n
\n );\n })}\n {\n addFilter({ field: \"\", comparator: \"\", value: \"\", editing: true });\n }}\n >\n \n {Resources.AddFilter}\n \n
\n {\n clearFilters();\n }}\n >\n {Resources.ClearAll}\n \n \n
\n
\n
\n );\n}\n\nfunction generateFilterString(filters = []) {\n let filterString = \"\";\n let addedFirstVariable = false;\n filters.forEach((filter, i) => {\n if (isEmpty(filter.selectedOption) || isEmpty(filter.selectedOption.optionKey) || isEmpty(filter.value)) {\n return;\n }\n if (addedFirstVariable) {\n filterString += \"%20AND%20\";\n }\n switch (filter.filterValueType) {\n case \"date\":\n let equalToDate = moment(filter.value)\n .startOf(\"day\")\n .utc();\n const startingDateTimeString = equalToDate.format(\"YYYY-MM-DD kk:mm:ss.SSS\");\n const endingDateTimeString = equalToDate.add(1, \"day\").format(\"YYYY-MM-DD kk:mm:ss.SSS\");\n filterString += `(${filter.filterKey}%20>=%20'${startingDateTimeString}'%20AND%20${filter.filterKey}%20<%20'${endingDateTimeString}')`;\n break;\n case \"address\":\n let addressString = \"\";\n filter.addressFilterKeys.forEach((addressFilterKey, i) => {\n if (i > 0) {\n addressString += \"%20OR%20\";\n }\n addressString += addressFilterKey + \"%20\";\n addressString += filter.selectedOption.optionKey + \"%20\";\n addressString += filter.value;\n });\n addressString = `(${addressString})`;\n filterString += addressString;\n break;\n case \"string\":\n default:\n filterString += filter.filterKey + \"%20\";\n filterString += filter.selectedOption.optionKey + \"%20\";\n filterString += filter.value;\n break;\n }\n });\n return filterString;\n}\n\nfunction FilterItem(props) {\n const { updateFilter = (i, filter) => null, deleteFilter = () => null, filterOptions = [], filter, i } = props;\n\n let content;\n let comparatorItems = filter.filterCriteriaOptions || [];\n const hideValueInput =\n isEmpty(filter.selectedOption) || includes([\"IsNotNull\", \"IsNull\"], (filter.selectedOption || {}).optionKey);\n\n let input = (\n {\n let newValue;\n switch (filter.filterValueType) {\n case \"int\":\n newValue = isInt(e.target.value) ? e.target.value : filter.value;\n break;\n case \"string\":\n default:\n newValue = e.target.value;\n break;\n }\n updateFilter(i, { ...filter, value: newValue });\n }}\n />\n );\n\n if (filter.filterValueType === \"date\") {\n input = (\n \"date-picker-day\"}\n maxDate={new Date()}\n dateFormat=\"yyyy-MM-dd\"\n selected={filter.value ? moment(filter.value).toDate() : new Date()}\n onChange={d => {\n updateFilter(i, { ...filter, value: moment(d).format(\"YYYY-MM-DD\") });\n }}\n />\n );\n }\n\n content = (\n
\n
\n {\n updateFilter(i, {\n ...filter,\n ...option\n });\n }}\n />\n {\n updateFilter(i, { ...filter, selectedOption: { ...option } });\n }}\n />\n {!hideValueInput && input}\n
\n
\n );\n\n return (\n
\n {content}\n {!filter.editing && (\n \n )}\n
\n );\n}\n","import React, { Component } from \"react\";\nimport { Switch, Redirect, withRouter, Route } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport Resources from \"../../../../lib/resources\";\nimport { formatDate, find, updateSelectedRows, isEmpty } from \"../../../../lib/utils\";\nimport { guidRegex } from \"../../../../lib/validation\";\n\nimport SummaryCard from \"../../../library/summaryCard\";\nimport Card from \"../../../library/card\";\nimport AutoCompleteInput from \"../../../library/autoCompleteInput\";\nimport TableData from \"../../../library/tableData\";\nimport Dropdown from \"../../../library/dropdown\";\nimport ViewContentHeader from \"../viewContentHeader\";\nimport AccountView from \"./accountView\";\nimport ContactView from \"./contactView\";\nimport { dispatchToProps as netDP } from \"../../../../store/network-actions\";\nimport { dispatchToProps as modDP } from \"../../../../store/modal-actions\";\nimport IconSend from \"../../../library/icons/iconSend\";\nimport IconFilter from \"../../../library/icons/iconFilter\";\nimport ContactsTable from \"../../contactsTable\";\nimport Avatar from \"../../../library/avatar\";\nimport IconCheckCircle from \"../../../library/icons/iconCheckCircle\";\nimport FilterBuilder from \"../../../library/filterBuilder\";\nimport IconAlertCircle from \"../../../library/icons/iconAlertCircle\";\nimport IconLock from \"../../../library/icons/iconLock\";\nimport IconUnlock from \"../../../library/icons/iconUnlock\";\nimport { dispatchToProps as persDP } from \"../../../../store/perspectives-actions\";\nimport IconPlusCircle from \"../../../library/icons/iconPlusCircle\";\nimport IconAward from \"../../../library/icons/iconAward\";\nimport IconArchive from \"../../../library/icons/iconArchive\";\nimport Tooltip from \"../../../library/tooltip\";\n\nconst dispatchToProps = dispatch => ({\n ...netDP(dispatch),\n ...modDP(dispatch),\n ...persDP(dispatch)\n});\nclass NetworkView extends Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedAccountKeys: [],\n selectedAccountRows: [],\n\n selectedArchivedAccountKeys: [],\n selectedArchivedAccountRows: [],\n\n selectedContactKeys: [],\n selectedContactRows: [],\n\n selectedArchivedContactKeys: [],\n selectedArchivedContactRows: [],\n\n accountsSearchTerm: \"\",\n accountsSearchLoadedPage: 1,\n contactsSearchTerm: \"\",\n contactsSearchLoadedPage: 1,\n\n displayAccountSearchResults: false,\n displayContactSearchResults: false,\n\n filters: { accounts: [], contacts: [] },\n filterStrings: { accounts: \"\", contacts: \"\" }\n };\n }\n\n getAccountsFilterOptions() {\n return [\n {\n filterKey: this.props.selectedPerspectiveType === \"vendors\" ? \"VendorName\" : \"CustName\",\n filterDescription: Resources.ProfileName,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"string\"\n },\n {\n filterKey: \"EmailAddr\",\n filterDescription: Resources.EmailAddress,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"string\"\n },\n {\n filterKey: \"Phone\",\n filterDescription: Resources.PhoneNumber,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"string\"\n },\n {\n filterKey: \"ProfileUpdateDate\",\n filterDescription: Resources.LastUpdated,\n filterCriteriaOptions: [{ optionKey: \"=\", optionDescription: Resources.EqualTo }],\n filterValueType: \"date\"\n },\n {\n filterKey: \"IsLockstepVerified\",\n filterDescription: Resources.LockstepVerified,\n filterCriteriaOptions: [{ optionKey: \"=\", optionDescription: Resources.EqualTo }],\n filterValueType: \"bool\"\n },\n\n {\n filterKey: \"BillToAddress\",\n filterDescription: Resources.BillTo,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"address\",\n addressFilterKeys: [\n \"BillToAddrLn1\",\n \"BillToAddrLn2\",\n \"BillToCity\",\n \"BillToState\",\n \"BillToPostalCode\",\n \"BillToCountry\"\n ]\n },\n\n {\n filterKey: \"ShipToAddress\",\n filterDescription: Resources.ShipTo,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"address\",\n addressFilterKeys: [\n \"MailToAddrLn1\",\n \"MailToAddrLn2\",\n \"MailToCity\",\n \"MailToState\",\n \"MailToPostalCode\",\n \"MailToCountry\"\n ]\n },\n\n {\n filterKey: \"EntityClassification\",\n filterDescription: Resources.EntityClassification,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"string\"\n }\n ];\n }\n\n getContactsFilterOptions() {\n return [\n {\n filterKey: \"ContactName\",\n filterDescription: Resources.ProfileName,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"string\"\n },\n {\n filterKey: \"EmailAddr\",\n filterDescription: Resources.EmailAddress,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"string\"\n },\n {\n filterKey: this.props.selectedPerspectiveType === \"vendors\" ? \"VendorName\" : \"CustName\",\n filterDescription: Resources.CompanyName,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"string\"\n },\n {\n filterKey: \"ContactRole\",\n filterDescription: Resources.Role,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"string\"\n },\n {\n filterKey: \"ProfileUpdateDate\",\n filterDescription: Resources.LastUpdated,\n filterCriteriaOptions: [{ optionKey: \"=\", optionDescription: Resources.EqualTo }],\n filterValueType: \"date\"\n },\n {\n filterKey: \"IsLockstepVerified\",\n filterDescription: Resources.LockstepVerified,\n filterCriteriaOptions: [{ optionKey: \"=\", optionDescription: Resources.EqualTo }],\n filterValueType: \"bool\"\n },\n {\n filterKey: \"ContactTitle\",\n filterDescription: Resources.Title,\n filterCriteriaOptions: [\n { optionKey: \"=\", optionDescription: Resources.EqualTo },\n { optionKey: \"LIKE\", optionDescription: Resources.Contains }\n ],\n filterValueType: \"string\"\n }\n ];\n }\n\n componentDidMount() {\n this.props.fetchAccountList(this.props.match.params.perspectiveId);\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n this.props.fetchArchivedAccountList(this.props.match.params.perspectiveId);\n this.props.fetchArchivedContactList(this.props.match.params.perspectiveId);\n }\n\n componentDidUpdate(prevProps) {\n const { networkStore, pageRowCount, match } = this.props;\n\n if (prevProps && !isEmpty(prevProps.match.params.selectedItem) && isEmpty(match.params.selectedItem)) {\n this.props.fetchAccountList(this.props.match.params.perspectiveId, {\n skip: (networkStore.loadedAccountListPage - 1) * pageRowCount\n });\n this.props.fetchContactList(this.props.match.params.perspectiveId, {\n skip: (networkStore.loadedContactListPage - 1) * pageRowCount\n });\n this.props.fetchArchivedAccountList(this.props.match.params.perspectiveId);\n this.props.fetchArchivedContactList(this.props.match.params.perspectiveId);\n }\n }\n\n toggleSelectRowAccounts(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedAccountKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedAccountRows);\n this.setState({ selectedAccountKeys: newSelectedKeys, selectedAccountRows: newSelectedRows });\n }\n\n toggleSelectRowContacts(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedContactKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedContactRows);\n this.setState({ selectedContactKeys: newSelectedKeys, selectedContactRows: newSelectedRows });\n }\n\n toggleSelectRowArchivedAccounts(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedArchivedAccountKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedArchivedAccountRows);\n this.setState({ selectedArchivedAccountKeys: newSelectedKeys, selectedArchivedAccountRows: newSelectedRows });\n }\n\n toggleSelectRowArchivedContacts(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.selectedArchivedContactKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.selectedArchivedContactRows);\n this.setState({ selectedArchivedContactKeys: newSelectedKeys, selectedArchivedContactRows: newSelectedRows });\n }\n\n addFilter(table) {\n this.setState({\n filters: {\n ...this.state.filters,\n [table]: [\n ...this.state.filters[table],\n (table === \"accounts\" ? this.getAccountsFilterOptions() : this.getContactsFilterOptions())[0]\n ]\n }\n });\n }\n\n updateFilter(table, i, filter) {\n const newFiltersTable = [...this.state.filters[table]];\n if (i < newFiltersTable.length) {\n newFiltersTable[i] = filter;\n } else {\n newFiltersTable.push(filter);\n }\n this.setState({\n filters: {\n ...this.state.filters,\n [table]: newFiltersTable\n }\n });\n }\n\n deleteFilter(table, i) {\n const newFiltersTable = [...this.state.filters[table]];\n if (i < newFiltersTable.length) {\n newFiltersTable.splice(i, 1);\n }\n this.setState({\n filters: {\n ...this.state.filters,\n [table]: newFiltersTable\n }\n });\n }\n\n clearFilters(table) {\n this.setState({\n filters: {\n ...this.state.filters,\n [table]: []\n }\n });\n }\n\n updateFilterString(table, filterString) {\n if (this.state.filterStrings[table] === filterString || filterString === undefined) {\n return;\n }\n this.setState({ filterStrings: { ...this.state.filterStrings, [table]: filterString } });\n }\n\n render() {\n const { match = { params: {} }, gettingNetworkAccountList, gettingNetworkContactList, networkStore } = this.props;\n const {\n selectedAccountKeys,\n selectedContactKeys,\n selectedArchivedAccountKeys,\n selectedArchivedContactKeys\n } = this.state;\n const accountList = this.props.getAccountList(match.params.perspectiveId);\n const contactList = this.props.getContactList(match.params.perspectiveId);\n const archivedAccountList = this.props.getArchivedAccountList(match.params.perspectiveId);\n const archivedContactList = this.props.getArchivedContactList(match.params.perspectiveId);\n\n let summaryItemsAccounts = [\n { description: Resources.TotalNumberOfAccounts, value: accountList.count },\n {\n description: (\n \n
\n {Resources.LockstepVerifiedAccounts}\n
\n }>\n
{Resources.LockstepVerifiedInformation}
\n
\n
\n
\n
\n ),\n\n value: accountList.totalLockstepVerified\n },\n { description: Resources.UnverifiedAccounts, value: accountList.totalLockstepUnVerified }\n ];\n\n let summaryItemsArchivedAccounts = [\n { description: Resources.TotalNumberOfArchivedAccounts, value: archivedAccountList.count }\n ];\n\n let summaryItemsContacts = [\n { description: Resources.TotalNumberOfContacts, value: contactList.count },\n {\n description: (\n \n
\n {Resources.LockstepVerifiedContacts}\n
\n }>\n
{Resources.LockstepVerifiedInformation}
\n
\n
\n
\n
\n ),\n value: contactList.totalLockstepVerified\n },\n { description: Resources.UnverifiedContacts, value: contactList.totalLockstepUnVerified }\n ];\n\n let summaryItemsArchivedContacts = [\n { description: Resources.TotalNumberOfArchivedContacts, value: archivedContactList.count }\n ];\n\n let baseAccountColumns = [\n {\n type: \"rowSelect\",\n name: \"rowSelect\",\n justify: \"center\",\n header: \"\",\n content: row => (\n \n ),\n width: \"4.22rem\"\n },\n {\n header: Resources.Name.toLocaleUpperCase(),\n name: \"name\",\n content: row => {\n return (\n \n
\n {row.displayName || row.custName || row.vendorName}\n {row.isLockstepVerified ? (\n
\n }\n >\n
{Resources.LockstepVerifiedInformation}
\n \n
\n ) : null}\n
\n
\n );\n },\n width: \"27%\"\n },\n {\n header: Resources.EmailAddress.toLocaleUpperCase(),\n name: \"email\",\n content: row =>\n row.emailAddr === \"\" || row.emailAddr === null ? (\n
\n \n {Resources.MissingEmailAddress}\n
\n ) : (\n row.emailAddr\n ),\n width: \"25%\"\n },\n { header: Resources.PhoneNumber.toLocaleUpperCase(), name: \"phone\", content: row => row.phone, width: \"25%\" }\n ];\n\n let accountColumns = [\n ...baseAccountColumns,\n {\n header: Resources.LastUpdated.toLocaleUpperCase(),\n name: \"last-updated\",\n content: row => formatDate(row.profileUpdateDate || row.ContactInsertDate || null),\n width: \"15%\"\n }\n ];\n\n let accountHoverColumns = [\n ...baseAccountColumns,\n {\n header: \"\",\n name: \"hover-buttons\",\n content: row => {\n return (\n
\n {\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n this.props.sendAccountProfileUpdateRequest([row.entityGlobalKey]).then(response => {\n this.props.fetchActivityList(match.params.perspectiveId, {\n top: 100,\n skip: 0\n });\n });\n this.props.displayNotification(\"profileUpdateRequestSentNotification\");\n }}\n >\n \n \n }\n text={Resources.RequestProfileUpdate}\n />\n {\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n let mode = this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\";\n this.props\n .toggleAccountArchived(\n match.params.perspectiveId,\n row.entityGlobalKey,\n match.params.subView === \"accounts\",\n mode\n )\n .then(response => {\n this.props.fetchAccountList(match.params.perspectiveId);\n this.props.fetchArchivedAccountList(match.params.perspectiveId);\n });\n }}\n >\n \n \n }\n text={Resources.Archive}\n />\n
\n );\n },\n width: \"10%\"\n }\n ];\n\n let subViews = [\n { subView: \"accounts\", display: Resources.Accounts.toLocaleUpperCase() },\n { subView: \"contacts\", display: Resources.Contacts.toLocaleUpperCase() },\n { subView: \"accountArchive\", display: Resources.ArchivedAccounts.toLocaleUpperCase() },\n { subView: \"contactArchive\", display: Resources.ArchivedContacts.toLocaleUpperCase() }\n ];\n\n const accountTableHeaderButtons = (\n
\n i.emailAddr === \"\" || i.emailAddr === undefined || i.emailAddr === null\n )}\n onClick={() => {\n this.props.sendAccountProfileUpdateRequest([...selectedAccountKeys]).then(response => {\n this.props.fetchOpenProfileUpdateRequests(match.params.perspectiveId);\n this.props.fetchOpenOnboardingRequests(match.params.perspectiveId);\n this.props.fetchActivityList(match.params.perspectiveId, {\n top: 100,\n skip: 0\n });\n });\n this.props.displayNotification(\"sendProfileUpdateRequestNotifiation\");\n }}\n >\n \n {Resources.RequestProfileUpdate}\n \n {/* \n */}\n {\n let rows =\n match.params.subView === \"accounts\"\n ? this.state.selectedAccountRows\n : this.state.selectedArchivedAccountRows;\n let mode = this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\";\n rows.forEach(i => {\n this.props\n .toggleAccountArchived(\n match.params.perspectiveId,\n i.entityGlobalKey,\n match.params.subView === \"accounts\",\n mode\n )\n .then(response => {\n this.props.fetchAccountList(match.params.perspectiveId);\n this.props.fetchArchivedAccountList(match.params.perspectiveId);\n });\n this.setState({ selectedAccountRows: [], selectedAccountKeys: [] });\n\n match.params.subView === \"accounts\"\n ? this.props.displayNotification(\"archiveProfileNotification\")\n : this.props.displayNotification(\"unArchiveProfileNotification\");\n });\n }}\n >\n \n {match.params.subView === \"accounts\" ? Resources.Archive : Resources.Unarchive}\n \n
\n );\n\n const contactTableHeaderButtons = (\n
\n {\n this.props.sendContactProfileUpdateRequest([...selectedContactKeys]).then(response => {\n this.props.fetchOpenProfileUpdateRequests(match.params.perspectiveId);\n this.props.fetchOpenOnboardingRequests(match.params.perspectiveId);\n this.props.fetchActivityList(match.params.perspectiveId, {\n top: 100,\n skip: 0\n });\n });\n this.props.displayNotification(\"sendProfileUpdateRequestNotifiation\");\n }}\n >\n \n {Resources.RequestProfileUpdate}\n \n {/* {\n alert(\"send message\");\n }}\n >\n \n {Resources.SendMessage}\n */}\n {\n let keys =\n this.props.match.params.subView === \"contacts\" ? selectedContactKeys : selectedArchivedContactKeys;\n keys.map(i => {\n let currentContact;\n if (this.props.match.params.subView === \"contacts\") {\n currentContact = this.props.networkStore.contactsMap[i];\n } else {\n currentContact = find(this.props.networkStore.archivedContactList.value, j => j.entityGlobalKey === i);\n }\n if (currentContact.isPrivate) {\n this.props\n .updateContactPrivacy(\n this.props.match.params.perspectiveId,\n i,\n false,\n this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\"\n )\n .then(response => {\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n this.props.fetchArchivedContactList(this.props.match.params.perspectiveId);\n });\n }\n return null;\n });\n this.props.displayNotification(\"contactMarkedPrivateNotification\");\n }}\n >\n \n {Resources.MarkAsPublic}\n \n {\n let keys =\n this.props.match.params.subView === \"contacts\" ? selectedContactKeys : selectedArchivedContactKeys;\n keys.map(i => {\n let currentContact;\n if (this.props.match.params.subView === \"contacts\") {\n currentContact = this.props.networkStore.contactsMap[i];\n } else {\n currentContact = find(this.props.networkStore.archivedContactList.value, j => j.entityGlobalKey === i);\n }\n if (!currentContact.isPrivate) {\n this.props\n .updateContactPrivacy(\n this.props.match.params.perspectiveId,\n i,\n true,\n this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\"\n )\n .then(response => {\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n this.props.fetchArchivedContactList(this.props.match.params.perspectiveId);\n });\n }\n return null;\n });\n this.props.displayNotification(\"contactMarkedPrivateNotification\");\n }}\n >\n \n {Resources.MarkAsPrivate}\n \n {this.props.match.params.subView === \"contacts\" ? (\n {\n selectedContactKeys.forEach(i => {\n this.props\n .markContactPrimary(\n this.props.match.params.perspectiveId,\n i,\n this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\"\n )\n .then(response => {\n this.props.fetchContactList(this.props.match.params.perspectiveId);\n });\n });\n this.props.displayNotification(\"markingAsPrimaryNotification\");\n }}\n >\n \n {Resources.MarkAsPrimary}\n \n ) : null}\n {\n let mode = this.props.perspectiveStore.selectedPerspectiveType === \"vendors\" ? \"ap\" : \"ar\";\n let rows =\n this.props.match.params.subView === \"contacts\"\n ? this.state.selectedContactRows\n : this.state.selectedArchivedContactRows;\n rows.forEach(i => {\n if (i.isPrimaryContact) {\n this.props.displayModal(\"setnewPrimaryContactDialog\", {\n name: i.contactName,\n companyname: i.vendorName,\n perspectiveId: this.props.match.params.perspectiveId,\n account: i\n });\n } else {\n this.props\n .toggleContactArchived(\n match.params.perspectiveId,\n i.entityGlobalKey,\n match.params.subView === \"contacts\",\n mode\n )\n .then(response => {\n this.props.fetchContactList(match.params.perspectiveId);\n this.props.fetchArchivedContactList(match.params.perspectiveId);\n });\n this.setState({\n selectedContactRows: [],\n selectedContactKeys: [],\n selectedArchivedContactKeys: [],\n selectedArchivedContactRows: []\n });\n match.params.subView === \"contacts\"\n ? this.props.displayNotification(\"archiveContactNotification\")\n : this.props.displayNotification(\"unArchiveContactNotification\");\n }\n });\n }}\n >\n \n {match.params.subView === \"contacts\" ? Resources.Archive : Resources.Unarchive}\n \n
\n );\n\n return (\n \n \n \n \n \n \n \n
\n \n \n
\n {!isEmpty(selectedAccountKeys) ? (\n accountTableHeaderButtons\n ) : (\n
\n {\n const accountsSearchTerm = e.target.value;\n this.setState({ accountsSearchTerm });\n this.props.debouncedFetchAccountSearchResults(match.params.perspectiveId, {\n searchTerm: accountsSearchTerm\n });\n }}\n callToActionButton={\n this.setState({ displayAccountSearchResults: true })}\n >\n {Resources.SeeAllResultsFor(networkStore.accountSearchTerm)}\n
\n }\n isShowingSearchResult={this.state.displayAccountSearchResults}\n handleClearResult={() => {\n this.setState({\n accountsSearchTerm: \"\",\n displayAccountSearchResults: false,\n accountsSearchLoadedPage: 1\n });\n }}\n text={this.state.accountsSearchTerm}\n noResultsMessage={Resources.NoResultsFound}\n showNoResultsMessage={networkStore.gotNetworkAccountSearchResults}\n maxOptions={7}\n handleSelectOption={option => {\n this.setState({\n accountsSearchTerm:\n this.props.selectedPerspectiveType === \"vendors\"\n ? option.vendorName\n : option.custName,\n displayAccountSearchResults: true\n });\n this.props.fetchAccountSearchResults(match.params.perspectiveId, {\n searchTerm:\n this.props.selectedPerspectiveType === \"vendors\" ? option.vendorName : option.custName\n });\n }}\n renderOption={option =>\n `${\n this.props.selectedPerspectiveType === \"vendors\"\n ? option.displayName || option.vendorName\n : option.displayName || option.custName\n }`\n }\n options={networkStore.accountSearchResults.value}\n width=\"300px\"\n />\n }\n isForm\n disabled={this.state.displayAccountSearchResults}\n >\n this.addFilter(\"accounts\")}\n updateFilter={(i, filter) => this.updateFilter(\"accounts\", i, filter)}\n updateFilterString={filterString => this.updateFilterString(\"accounts\", filterString)}\n deleteFilter={i => this.deleteFilter(\"accounts\", i)}\n clearFilters={() => {\n this.clearFilters(\"accounts\");\n this.props.setAccountListFilter(match.params.perspectiveId, \"\");\n }}\n filterOptions={this.getAccountsFilterOptions()}\n onDoneClick={() => {\n this.props.setAccountListFilter(\n match.params.perspectiveId,\n this.state.filterStrings.accounts\n );\n }}\n />\n \n
\n )}\n
\n {\n this.props.history.push(match.url + \"/\" + row.entityGlobalKey);\n }}\n onLoadMore={pageToLoad =>\n this.state.displayAccountSearchResults\n ? this.props.fetchAccountSearchResults(match.params.perspectiveId, {\n searchTerm: this.state.accountsSearchTerm,\n skip: (pageToLoad - 1) * this.props.pageRowCount\n }) && this.setState({ accountsSearchLoadedPage: pageToLoad })\n : this.props.selectAccountListPage(match.params.perspectiveId, pageToLoad)\n }\n localSelectedKeys={selectedAccountKeys}\n // TODO: Change rowKey to whatever we are using to send profile update requests\n rowKey=\"entityGlobalKey\"\n onRowSelectToggle={key =>\n this.toggleSelectRowAccounts(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k =>\n find(accountList.value, row => row.entityGlobalKey === k)\n )\n )\n }\n rowHeight={\"5rem\"}\n />\n \n \n
\n \n
\n
\n {\n this.props.displayFlyout(\"addContactFlyout\", {\n perspectiveId: this.props.match.params.perspectiveId,\n companyId: this.props.match.params.companyId\n });\n }}\n className=\"button-primary\"\n >\n \n {Resources.AddContact}\n \n
\n \n \n
\n {!isEmpty(selectedContactKeys) ? (\n contactTableHeaderButtons\n ) : (\n
\n {\n const contactsSearchTerm = e.target.value;\n this.setState({ contactsSearchTerm });\n this.props.debouncedFetchContactSearchResults(match.params.perspectiveId, {\n searchTerm: contactsSearchTerm\n });\n }}\n callToActionButton={\n this.setState({ displayContactSearchResults: true })}\n >\n {Resources.SeeAllResultsFor(networkStore.contactSearchTerm)}\n
\n }\n isShowingSearchResult={this.state.displayContactSearchResults}\n handleClearResult={() => {\n this.setState({\n contactsSearchTerm: \"\",\n displayContactSearchResults: false,\n contactsSearchLoadedPage: 1\n });\n }}\n text={this.state.contactsSearchTerm}\n noResultsMessage={Resources.NoResultsFound}\n showNoResultsMessage={networkStore.gotNetworkContactSearchResults}\n maxOptions={7}\n handleSelectOption={option => {\n this.setState({\n contactsSearchTerm: option.contactName,\n displayContactSearchResults: true\n });\n this.props.fetchContactSearchResults(match.params.perspectiveId, {\n searchTerm: option.contactName\n });\n }}\n renderOption={option => `${option.contactName}`}\n options={networkStore.contactSearchResults.value}\n width=\"300px\"\n />\n }\n isForm\n disabled={this.state.displayContactSearchResults}\n >\n this.addFilter(\"contacts\")}\n updateFilter={(i, filter) => this.updateFilter(\"contacts\", i, filter)}\n updateFilterString={filterString => this.updateFilterString(\"contacts\", filterString)}\n deleteFilter={i => this.deleteFilter(\"contacts\", i)}\n clearFilters={() => {\n this.clearFilters(\"contacts\");\n this.props.setContactListFilter(match.params.perspectiveId, \"\");\n }}\n filterOptions={this.getContactsFilterOptions()}\n onDoneClick={() => {\n this.props.setContactListFilter(\n match.params.perspectiveId,\n this.state.filterStrings.contacts\n );\n }}\n />\n \n
\n )}\n
\n \n this.state.displayContactSearchResults\n ? this.props.fetchContactSearchResults(match.params.perspectiveId, {\n searchTerm: this.state.contactSearchTerm,\n skip: (pageToLoad - 1) * this.props.pageRowCount\n }) && this.setState({ contactsSearchLoadedPage: pageToLoad })\n : this.props.selectContactListPage(match.params.perspectiveId, pageToLoad)\n }\n selectedKeys={selectedContactKeys}\n rowKey=\"entityGlobalKey\"\n onRowSelectToggle={key =>\n this.toggleSelectRowContacts(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k =>\n find(contactList.value, row => row.entityGlobalKey === k)\n )\n )\n }\n />\n \n \n
\n \n
\n \n \n
\n {!isEmpty(selectedArchivedAccountKeys) ? (\n accountTableHeaderButtons\n ) : (\n
\n {\n const accountsSearchTerm = e.target.value;\n this.setState({ accountsSearchTerm });\n this.props.debouncedFetchAccountSearchResults(match.params.perspectiveId, {\n searchTerm: accountsSearchTerm\n });\n }}\n callToActionButton={\n this.setState({ displayAccountSearchResults: true })}\n >\n {Resources.SeeAllResultsFor(networkStore.accountSearchTerm)}\n
\n }\n isShowingSearchResult={this.state.displayAccountSearchResults}\n handleClearResult={() => {\n this.setState({\n accountsSearchTerm: \"\",\n displayAccountSearchResults: false,\n accountsSearchLoadedPage: 1\n });\n }}\n text={this.state.accountsSearchTerm}\n noResultsMessage={Resources.NoResultsFound}\n showNoResultsMessage={networkStore.gotNetworkAccountSearchResults}\n maxOptions={7}\n handleSelectOption={option => {\n this.setState({\n accountsSearchTerm:\n this.props.selectedPerspectiveType === \"vendors\"\n ? option.vendorName\n : option.custName,\n displayAccountSearchResults: true\n });\n this.props.fetchAccountSearchResults(match.params.perspectiveId, {\n searchTerm:\n this.props.selectedPerspectiveType === \"vendors\" ? option.vendorName : option.custName\n });\n }}\n renderOption={option =>\n `${\n this.props.selectedPerspectiveType === \"vendors\"\n ? option.displayName || option.vendorName\n : option.displayName || option.custName\n }`\n }\n options={networkStore.accountSearchResults.value}\n width=\"300px\"\n />\n }\n isForm\n disabled={this.state.displayAccountSearchResults}\n >\n this.addFilter(\"accounts\")}\n updateFilter={(i, filter) => this.updateFilter(\"accounts\", i, filter)}\n updateFilterString={filterString => this.updateFilterString(\"accounts\", filterString)}\n deleteFilter={i => this.deleteFilter(\"accounts\", i)}\n clearFilters={() => {\n this.clearFilters(\"accounts\");\n this.props.setAccountListFilter(match.params.perspectiveId, \"\");\n }}\n filterOptions={this.getAccountsFilterOptions()}\n onDoneClick={() => {\n this.props.setAccountListFilter(\n match.params.perspectiveId,\n this.state.filterStrings.accounts\n );\n }}\n />\n \n
\n )}\n
\n {\n this.props.history.push(match.url + \"/\" + row.entityGlobalKey);\n }}\n onLoadMore={pageToLoad =>\n this.state.displayAccountSearchResults\n ? this.props.fetchAccountSearchResults(match.params.perspectiveId, {\n searchTerm: this.state.accountsSearchTerm,\n skip: (pageToLoad - 1) * this.props.pageRowCount\n }) && this.setState({ accountsSearchLoadedPage: pageToLoad })\n : this.props.selectAccountListPage(match.params.perspectiveId, pageToLoad)\n }\n localSelectedKeys={selectedArchivedAccountKeys}\n // TODO: Change rowKey to whatever we are using to send profile update requests\n rowKey=\"entityGlobalKey\"\n onRowSelectToggle={key =>\n this.toggleSelectRowArchivedAccounts(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k =>\n find(archivedAccountList.value, row => row.entityGlobalKey === k)\n )\n )\n }\n rowHeight={\"5rem\"}\n />\n \n \n
\n \n
\n \n \n
\n {!isEmpty(selectedArchivedContactKeys) ? (\n contactTableHeaderButtons\n ) : (\n
\n {\n const contactsSearchTerm = e.target.value;\n this.setState({ contactsSearchTerm });\n this.props.debouncedFetchContactSearchResults(match.params.perspectiveId, {\n searchTerm: contactsSearchTerm\n });\n }}\n callToActionButton={\n this.setState({ displayContactSearchResults: true })}\n >\n {Resources.SeeAllResultsFor(networkStore.contactSearchTerm)}\n
\n }\n isShowingSearchResult={this.state.displayContactSearchResults}\n handleClearResult={() => {\n this.setState({\n contactsSearchTerm: \"\",\n displayContactSearchResults: false,\n contactsSearchLoadedPage: 1\n });\n }}\n text={this.state.contactsSearchTerm}\n noResultsMessage={Resources.NoResultsFound}\n showNoResultsMessage={networkStore.gotNetworkContactSearchResults}\n maxOptions={7}\n handleSelectOption={option => {\n this.setState({\n contactsSearchTerm: option.contactName,\n displayContactSearchResults: true\n });\n this.props.fetchContactSearchResults(match.params.perspectiveId, {\n searchTerm: option.contactName\n });\n }}\n renderOption={option => `${option.contactName}`}\n options={networkStore.contactSearchResults.value}\n width=\"300px\"\n />\n }\n isForm\n disabled={this.state.displayContactSearchResults}\n >\n this.addFilter(\"contacts\")}\n updateFilter={(i, filter) => this.updateFilter(\"contacts\", i, filter)}\n updateFilterString={filterString => this.updateFilterString(\"contacts\", filterString)}\n deleteFilter={i => this.deleteFilter(\"contacts\", i)}\n clearFilters={() => {\n this.clearFilters(\"contacts\");\n this.props.setContactListFilter(match.params.perspectiveId, \"\");\n }}\n filterOptions={this.getContactsFilterOptions()}\n onDoneClick={() => {\n this.props.setContactListFilter(\n match.params.perspectiveId,\n this.state.filterStrings.contacts\n );\n }}\n />\n \n
\n )}\n
\n \n this.state.displayContactSearchResults\n ? this.props.fetchContactSearchResults(match.params.perspectiveId, {\n searchTerm: this.state.contactSearchTerm,\n skip: (pageToLoad - 1) * this.props.pageRowCount\n }) && this.setState({ contactsSearchLoadedPage: pageToLoad })\n : this.props.selectContactListPage(match.params.perspectiveId, pageToLoad)\n }\n selectedKeys={selectedArchivedContactKeys}\n rowKey=\"entityGlobalKey\"\n onRowSelectToggle={key =>\n this.toggleSelectRowArchivedContacts(\n key,\n (Array.isArray(key) ? [...key] : [key]).map(k =>\n find(archivedContactList.value, row => row.entityGlobalKey === k)\n )\n )\n }\n />\n \n \n
\n
\n \n \n \n \n \n \n \n \n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network,\n pageRowCount: store.general.pageRowCount,\n gettingNetworkAccountList: store.network.gettingNetworkAccountList,\n gettingNetworkContactList: store.network.gettingNetworkContactList,\n selectedPerspectiveType: store.perspectives.selectedPerspectiveType,\n perspectiveStore: store.perspectives\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(NetworkView));\n","import React, { Component } from \"react\";\nimport { withRouter, Switch, Route, generatePath, Redirect } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps as searchDP } from \"../../../store/search-actions\";\nimport { isEmpty, formatDate } from \"../../../lib/utils\";\nimport Card from \"../../library/card\";\nimport Resources from \"../../../lib/resources\";\nimport ViewContentHeader from \"./viewContentHeader\";\nimport MainLoader from \"../../mainLoader\";\nimport Avatar from \"../../library/avatar\";\n\nconst dispatchToProps = dispatch => ({\n ...searchDP(dispatch)\n});\n\nclass SearchView extends Component {\n constructor(props) {\n super(props);\n this.renderAccountProfilesAll = this.renderAccountProfilesAll.bind(this);\n }\n\n renderAccountProfileResult(profile) {\n return (\n \n
\n \n
\n
\n
\n {profile.displayName || profile.custName || profile.vendorName}\n
\n {profile.profileUpdateDate && (\n
\n {Resources.LastUpdatedDate(formatDate(profile.profileUpdateDate))}\n
\n )}\n
\n
\n );\n }\n\n renderContactProfileResult(profile) {\n return (\n \n
\n \n
\n
\n
{profile.contactName}
\n {profile.contactUpdateDate && (\n
\n {Resources.LastUpdatedDate(formatDate(profile.contactUpdateDate))}\n
\n )}\n
\n
\n );\n }\n\n renderAccountProfilesAll() {\n const {\n searchResultValues,\n match,\n searchResultCounts,\n searchTerm,\n gettingSearchResults,\n selectedAccountingGroupType\n } = this.props;\n\n let searchResults;\n let searchResultCountAccounts;\n if (selectedAccountingGroupType === \"vendors\") {\n searchResults = searchResultValues.vendors || [];\n searchResultCountAccounts = searchResultCounts.vendors;\n } else {\n searchResults = searchResultValues.customers || [];\n searchResultCountAccounts = searchResultCounts.customers;\n }\n\n return (\n \n {searchResults.map((result, i) => {\n return (\n \n this.props.history.push(\n generatePath(\"/v2/:companyId/:perspectiveId/network/accounts/:accountId\", {\n ...match.params,\n accountId: result.custKey || result.vendorKey\n })\n )\n }\n >\n {this.renderAccountProfileResult(result)}\n \n );\n })}\n {searchResultCountAccounts > searchResults.length && !gettingSearchResults && (\n \n this.props.fetchAccountingGroupSearchResults(\n this.props.match.params.companyId,\n this.props.match.params.companyId,\n this.props.match.params.perspectiveId,\n { request: searchTerm },\n 20,\n searchResults.length,\n selectedAccountingGroupType === \"vendors\" ? \"vendors\" : \"customers\"\n )\n }\n >\n {Resources.SeeMore}\n \n )}\n {gettingSearchResults && (\n
\n \n
\n )}\n
\n );\n }\n\n renderContactProfilesAll() {\n const {\n searchResultValues,\n match,\n searchResultCounts,\n searchTerm,\n gettingSearchResults,\n selectedAccountingGroupType\n } = this.props;\n\n let searchResults;\n let searchResultCountContacts;\n if (selectedAccountingGroupType === \"vendors\") {\n searchResults = searchResultValues.vendorContacts || [];\n searchResultCountContacts = searchResultCounts.vendorContacts;\n } else {\n searchResults = searchResultValues.customerContacts || [];\n searchResultCountContacts = searchResultCounts.customerContacts;\n }\n\n return (\n \n {searchResults.map((result, i) => {\n return (\n \n this.props.history.push(\n generatePath(\"/v2/:companyId/:perspectiveId/network/contacts/:contactId\", {\n ...match.params,\n contactId: result.entityGlobalKey\n })\n )\n }\n >\n {this.renderContactProfileResult(result)}\n \n );\n })}\n {searchResultCountContacts > searchResults.length && !gettingSearchResults && (\n \n this.props.fetchAccountingGroupSearchResults(\n this.props.match.params.companyId,\n this.props.match.params.companyId,\n this.props.match.params.perspectiveId,\n { request: searchTerm },\n 20,\n searchResults.length,\n selectedAccountingGroupType === \"vendors\" ? \"vendorContacts\" : \"customerContacts\"\n )\n }\n >\n {Resources.SeeMore}\n \n )}\n {gettingSearchResults && (\n
\n \n
\n )}\n
\n );\n }\n\n render() {\n const {\n searchResultValues,\n searchResultCounts,\n match,\n gettingSearchResults,\n selectedAccountingGroupType\n } = this.props;\n const maxPreviewElements = 10;\n\n let searchResultAccounts;\n let searchResultContacts;\n let searchResultCountAccounts;\n let searchResultCountContacts;\n\n if (selectedAccountingGroupType === \"vendors\") {\n searchResultContacts = searchResultValues.vendorContacts || [];\n searchResultAccounts = searchResultValues.vendors || [];\n searchResultCountAccounts = searchResultCounts.vendors;\n searchResultCountContacts = searchResultCounts.vendorContacts;\n } else {\n searchResultContacts = searchResultValues.customerContacts || [];\n searchResultAccounts = searchResultValues.customers || [];\n searchResultCountAccounts = searchResultCounts.customers;\n searchResultCountContacts = searchResultCounts.customerContacts;\n }\n\n return (\n \n \n {isEmpty(searchResultValues) && !gettingSearchResults && }\n
\n \n \n {gettingSearchResults ? (\n \n {match.params.subView !== undefined && (\n \n )}\n \n \n ) : (\n \n {isEmpty(searchResultContacts) && !isEmpty(searchResultAccounts) && (\n \n )}\n {isEmpty(searchResultAccounts) && !isEmpty(searchResultContacts) && (\n \n )}\n {!isEmpty(searchResultAccounts) && (\n \n

{Resources.AccountProfilesNum(searchResultCountAccounts || 0)}

\n
\n {(searchResultAccounts || []).map((result, i) => {\n if (i === maxPreviewElements) {\n return (\n
\n \n this.props.history.push(\n generatePath(match.path, { ...match.params, subView: \"accounts\" })\n )\n }\n >\n {Resources.SeeAll}\n \n
\n );\n }\n if (i > maxPreviewElements) {\n return null;\n }\n return (\n \n this.props.history.push(\n generatePath(\"/v2/:companyId/:perspectiveId/network/accounts/:accountId\", {\n ...match.params,\n accountId: result.entityGlobalKey\n })\n )\n }\n >\n {this.renderAccountProfileResult(result)}\n
\n );\n })}\n
\n \n )}\n {!isEmpty(searchResultContacts) && (\n \n

{Resources.ContactProfilesNum(searchResultCountContacts || 0)}

\n
\n {(searchResultContacts || []).map((result, i) => {\n if (i === maxPreviewElements) {\n return (\n
\n \n this.props.history.push(\n generatePath(match.path, { ...match.params, subView: \"contacts\" })\n )\n }\n >\n {Resources.SeeAll}\n \n
\n );\n }\n if (i > maxPreviewElements) {\n return null;\n }\n return (\n \n this.props.history.push(\n generatePath(\"/v2/:companyId/:perspectiveId/network/accounts/:contactId\", {\n ...match.params,\n contactId: result.entityGlobalKey\n })\n )\n }\n >\n {this.renderContactProfileResult(result)}\n
\n );\n })}\n \n
\n )}\n
\n )}\n \n {this.renderAccountProfilesAll()}\n {this.renderContactProfilesAll()}\n \n \n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n searchTerm: store.search.searchTerm,\n searchResults: store.search.searchResults,\n searchResultsCount: store.search.searchResultsCount,\n gettingSearchResults: store.search.gettingSearchResults,\n searchResultValues: store.search.values,\n searchResultCounts: store.search.counts,\n selectedAccountingGroupType: store.perspectives.selectedPerspectiveType\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(SearchView));\n","import React, { Component } from \"react\";\nimport MyProfileView from \"./myProfileView\";\nimport CompanyProfileView from \"./companyProfileView\";\nimport { Switch, Route, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch)\n});\n\nclass ProfileManagmentView extends Component {\n render() {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nconst storeToProps = store => {\n return {};\n};\n\nexport default withRouter(\n connect(\n storeToProps,\n dispatchToProps\n )(ProfileManagmentView)\n);\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { Route } from \"react-router-dom\";\n\nimport HomeView from \"./views/homeView\";\nimport CommunicationsView from \"./views/communicationsView\";\nimport NetworkView from \"./views/network/networkView\";\nimport SearchView from \"./views/searchView\";\nimport ProfileManagementView from \"./views/profileManagement/profileManagementView\";\n\nclass ViewController extends Component {\n render() {\n const {\n match: { params }\n } = this.props;\n\n let viewContent;\n\n switch (params.view) {\n case \"home\":\n viewContent = ;\n break;\n case \"network\":\n viewContent = ;\n break;\n case \"search\":\n viewContent = ;\n break;\n //TODO: This needs rework, only added to drop in activities\n case \"activities\":\n case \"documents\":\n case \"statements\":\n case \"profile\":\n case \"settings\":\n viewContent = ;\n break;\n case \"management\":\n viewContent = ;\n break;\n case \"sequences\":\n default:\n viewContent = ;\n break;\n }\n\n return (\n \n
{viewContent}
\n
\n );\n }\n}\n\nexport default withRouter(ViewController);\n","import React, { useState } from \"react\";\n\nimport { isEmpty } from \"../../lib/utils\";\n\nimport { NavLink, useHistory } from \"react-router-dom\";\nimport IconAngleDown from \"./icons/iconAngleDown\";\nimport IconAngleRight from \"./icons/iconAngleRight\";\nimport { useEffect } from \"react\";\n\nexport default function ExpandableNavLink(props) {\n const {\n to,\n children,\n icon,\n description,\n badgeCount,\n badgeType = \"alert\",\n isActive = () => false,\n startExpanded\n } = props;\n\n const [expanded, setExpanded] = useState(startExpanded || null);\n useEffect(() => {\n if (expanded === null) {\n setExpanded(isActive());\n }\n }, [expanded, isActive]);\n\n let history = useHistory();\n function handleExpandClick() {\n if (!isActive()) {\n if (!expanded) {\n setExpanded(!expanded);\n }\n history.push(to);\n } else {\n setExpanded(!expanded);\n }\n }\n let linkContent = (\n \n {icon}\n {description}\n {!isEmpty(badgeCount) && badgeCount !== 0 && (\n \n {badgeCount}\n \n )}\n \n );\n\n return (\n \n \n {expanded ? (\n
\n {linkContent}\n
\n ) : (\n false}\n key={description}\n onClick={() => handleExpandClick()}\n >\n {linkContent}\n \n )}\n\n
\n {expanded ? : }\n
\n \n {expanded && children}\n
\n );\n}\n","import React, { Component } from \"react\";\n\nclass IconHouse extends Component {\n render() {\n let { className, height } = this.props;\n\n return (\n \n \n \n \n );\n }\n}\n\nIconHouse.defaultProps = {\n height: 22\n};\n\nexport default IconHouse;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { NavLink, generatePath, withRouter } from \"react-router-dom\";\n\nimport Resources from \"../../lib/resources\";\nimport { isGuid, includes, find } from \"../../lib/utils\";\n\nimport ExpandableNavLink from \"../library/expandableNavLink\";\n\nimport IconHouse from \"../library/icons/iconHouse\";\nimport IconList from \"../library/icons/iconList\";\nimport IconGlobe from \"../library/icons/iconGlobe\";\n\nimport { dispatchToProps as congDP } from \"../../store/contextGroups-actions\";\nimport { dispatchToProps as paDP } from \"../../store/perspectives-actions\";\nimport { dispatchToProps as manDP } from \"../../store/manage-actions\";\nimport { dispatchToProps as accountsDP } from \"../../store/accounts-actions\";\nimport { dispatchToProps as userDP } from \"../../store/user-actions\";\nimport { dispatchToProps as convDP } from \"../../store/conversations-actions\";\n\nimport { isEmpty } from \"lodash\";\nimport Tooltip from \"../library/tooltip\";\n\nconst dispatchToProps = dispatch => ({\n ...congDP(dispatch),\n ...manDP(dispatch),\n ...paDP(dispatch),\n ...accountsDP(dispatch),\n ...userDP(dispatch),\n ...convDP(dispatch)\n});\n\nclass ViewSelector extends Component {\n views = () => [\n {\n viewRoute: \"home\",\n display:\n this.props.perspectivesStore.selectedPerspectiveType === \"vendors\" ||\n this.props.perspectivesStore.selectedPerspectiveType === \"customers\",\n itemDescription: Resources.Home,\n itemIcon: \n },\n {\n viewRoute: \"activities\",\n itemDescription: Resources.Activities,\n itemIcon: ,\n expandedDefault: true,\n subViews: [\n { viewRoute: \"mine\", itemDescription: Resources.Mine },\n { viewRoute: \"unassigned\", itemDescription: Resources.Unassigned },\n { viewRoute: \"assigned\", itemDescription: Resources.Assigned },\n { viewRoute: \"waiting-for-response\", itemDescription: Resources.WaitingResponse },\n //{ viewRoute: \"pending-approval\", itemDescription: Resources.OutForApproval },\n { viewRoute: \"snoozed\", itemDescription: Resources.Snoozed },\n { viewRoute: \"closed\", itemDescription: Resources.Closed },\n { viewRoute: \"spam\", itemDescription: Resources.Spam }\n ]\n },\n {\n viewRoute: \"network\",\n display:\n this.props.perspectivesStore.selectedPerspectiveType === \"vendors\" ||\n this.props.perspectivesStore.selectedPerspectiveType === \"customers\",\n itemDescription: Resources.MyNetwork,\n itemIcon: ,\n subViews: [\n {\n itemDescription: Resources.AllAccountsAndContacts,\n generatePath: (path, params) => generatePath(path, { ...params, view: \"network\", subView: \"accounts\" }),\n exact: true\n },\n ...this.props.contextGroups\n .slice(0, 50)\n .filter(\n contextGroup =>\n contextGroup.companyLocalKey && contextGroup.companyLocalKey !== \"00000000-0000-0000-0000-000000000000\"\n )\n .map((contextGroup, i) => {\n return {\n itemDescription: contextGroup.companyName,\n tooltip: true,\n companyId: contextGroup.displayName,\n viewRoute: contextGroup.companyLocalKey,\n generatePath: (path, params) =>\n generatePath(path + \"/:accountId\", {\n ...params,\n view: \"network\",\n subView: \"accounts\",\n accountId: contextGroup.companyLocalKey\n })\n };\n })\n .filter((item, i, self) => {\n if (!item) {\n return false;\n }\n return (\n self.findIndex(item2 => {\n if (!item2) {\n return false;\n }\n return (\n item2.generatePath(this.props.match.path, this.props.match.params) ===\n item.generatePath(this.props.match.path, this.props.match.params)\n );\n }) === i\n );\n })\n ]\n }\n ];\n\n componentDidMount = () => {\n const companyId = this.props.match.params.companyId;\n const perspectiveId = this.props.match.params.perspectiveId;\n this.props.fetchCompanyWorkflows(companyId);\n if (isGuid(perspectiveId)) {\n this.props.getReminders(companyId, perspectiveId);\n this.props.fetchContextGroups(companyId, perspectiveId);\n }\n this.refreshTimer = setInterval(() => this.refreshData(), 45000);\n }\n\n componentWillUnmount = () => {\n clearInterval(this.refreshTimer);\n }\n\n componentDidUpdate = (prevProps) => {\n const companyId = this.props.match.params.companyId;\n const prevCompanyId = prevProps.match.params.companyId;\n const perspectiveId = this.props.match.params.perspectiveId;\n const prevPerspectiveId = prevProps.match.params.perspectiveId;\n\n if (companyId !== prevCompanyId) {\n this.props.fetchCompanyWorkflows(companyId);\n }\n if (perspectiveId !== prevPerspectiveId) {\n this.props.getReminders(companyId, perspectiveId);\n this.props.fetchContextGroups(companyId, perspectiveId);\n }\n }\n\n resetNavigation = () => {\n // This function resets various flags to ensure the view the user is navigating to starts with its default initial state. For conversation views,\n // that means not showing any search artifacts and starting on page 1 of the given list of items.\n this.props.setNavigatingBack(false);\n this.props.setDisplayingSearchResults(false);\n this.props.setConversationsViewSearchTerm(\"\");\n this.props.setConversationsCurrentPage(1);\n this.props.setConversationsLabel(\"mine\");\n\n return true;\n }\n\n refreshData = () => {\n this.props.refreshContextGroups(this.props.match.params.companyId, this.props.match.params.perspectiveId);\n this.props.getReminders(this.props.match.params.companyId, this.props.match.params.perspectiveId);\n }\n\n getBadgeType = (contextGroupName) => {\n const {\n contextGroupsStats,\n perspectivesStore: { selectedPerspectiveId }\n } = this.props;\n\n return ((contextGroupsStats[selectedPerspectiveId] || {}).badgeTypes || {})[contextGroupName] || \"info\";\n }\n\n getBadgeCount = (contextGroupName) => {\n const {\n contextGroupsStats,\n perspectivesStore: { selectedPerspectiveId },\n conversationsStore: { reminders = {} }\n } = this.props;\n\n if (contextGroupName === \"snoozed\") {\n return reminders.count || 0;\n }\n\n return ((contextGroupsStats[selectedPerspectiveId] || {}).summaryCounts || {})[contextGroupName] || 0;\n }\n\n renderNavLink = (subView, subViewToUrl, view) => {\n return (\n {\n return this.resetNavigation();\n }}\n isActive={() => {\n if (!this.props.match) {\n return false;\n }\n\n return (\n this.props.match.params.view === view.viewRoute &&\n (this.props.match.params.subView === subView.viewRoute ||\n (subView.generatePath &&\n (subView.exact\n ? this.props.location.pathname ===\n subView.generatePath(this.props.match.path, this.props.match.params)\n : includes(\n this.props.location.pathname,\n subView.generatePath(this.props.match.path, this.props.match.params)\n ))))\n );\n }}\n >\n {subView.itemIcon}\n \n {subView.itemDescription}\n
\n {this.getBadgeCount(subView.viewRoute) !== 0 && (\n \n {this.getBadgeCount(subView.viewRoute)}\n \n )}\n \n \n );\n }\n\n render() {\n let path = this.props.match.path;\n const companyName = this.props.getDefaultCompany().companyName;\n const perspectiveType = this.props.perspectivesStore.selectedPerspectiveType || \"\";\n const selectedPerspective = this.props.perspectivesStore.selectedPerspective || {};\n const perspectives = [\n { value: \"vendors\", perspective: Resources.AccountsPayable.toLocaleUpperCase() },\n { value: \"customers\", perspective: Resources.AccountsReceivable.toLocaleUpperCase() }\n ];\n return (\n
\n
{companyName}
\n
\n {(find(perspectives, perspective => perspective.value === perspectiveType) || {}).perspective ||\n (selectedPerspective.perspectiveName || \"\").toLocaleUpperCase()}\n
\n {this.views().map(view => {\n if (view.display === false) {\n return null;\n }\n let toUrl = generatePath(path, { ...this.props.match.params, view: view.viewRoute, subView: null });\n let link = (\n {\n return this.resetNavigation();\n }}\n isActive={() => {\n if (!this.props.match) {\n return false;\n }\n\n return this.props.match.params.view === view.viewRoute;\n }}\n >\n {view.itemIcon}\n {view.itemDescription}\n \n );\n\n if (view.subViews && !isEmpty(view.subViews)) {\n link = (\n includes(this.props.match.url, toUrl)}\n startExpanded={view.expandedDefault}\n key={view.itemDescription}\n >\n {view.subViews.map((subView, index) => {\n let subViewToUrl = subView.generatePath\n ? subView.generatePath(path, this.props.match.params)\n : generatePath(path, {\n ...this.props.match.params,\n view: view.viewRoute,\n subView: subView.viewRoute\n });\n return subView.tooltip ? (\n \n ) : (\n this.renderNavLink(subView, subViewToUrl, view)\n );\n })}\n \n );\n }\n return link;\n })}\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n contextGroups: store.contextGroups.value,\n reminders: store.conversations.reminders,\n perspectivesStore: store.perspectives,\n contextGroupsStats: store.contextGroups.contextGroupsStats,\n accountsStore: store.accounts\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ViewSelector));\n","import React, { Component } from \"react\";\n\nclass IconCircle extends Component {\n render() {\n let { className, height } = this.props;\n return (\n \n \n \n );\n }\n}\n\nIconCircle.defaultProps = {\n height: 24\n};\n\nexport default IconCircle;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { generatePath, withRouter } from \"react-router-dom\";\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\n\nimport { dispatchToProps as persDP } from \"../../store/perspectives-actions\";\nimport { dispatchToProps as genDP } from \"../../store/general-actions\";\nimport { dispatchToProps as modDP } from \"../../store/modal-actions\";\nimport { dispatchToProps as networkDP } from \"../../store/network-actions\";\nimport { dispatchToProps as userDP } from \"../../store/user-actions\";\nimport { dispatchToProps as contDP } from \"../../store/contextGroups-actions\";\n\nimport Avatar from \"../library/avatar\";\nimport resources from \"../../lib/resources\";\nimport Dropdown from \"../library/dropdown\";\nimport { find, isEmpty } from \"../../lib/utils\";\nimport IconCircle from \"../library/icons/iconCircle\";\nimport IconPlusCircle from \"../library/icons/iconPlusCircle\";\nimport { Perspectives } from \"../../lib/perspectives\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...persDP(dispatch),\n ...genDP(dispatch),\n ...modDP(dispatch),\n ...networkDP(dispatch),\n ...userDP(dispatch),\n ...contDP(dispatch)\n };\n};\n\nclass PerspectiveSelector extends Component {\n constructor(props) {\n super(props);\n this.state = {\n custContact: {}\n };\n }\n\n componentDidMount() {\n this.props.fetchMyProfile();\n this.props.fetchContextGroupsStats();\n }\n\n render() {\n let { selectedAccount } = this.props.accountsStore;\n\n let companyPerspectives = ((selectedAccount || {}).companies || [])\n .map(company => this.props.getCompanyPerspectives(company.companyId))\n .flat();\n let displayPerspectives = [];\n\n companyPerspectives.forEach(perspective => {\n if (!isEmpty(perspective) && !find(displayPerspectives, i => perspective.perspectiveId === i.perspectiveId)) {\n displayPerspectives.push(perspective);\n }\n });\n\n const { match } = this.props;\n\n const getAvatarText = perspective => {\n switch (perspective.parentPerspectiveId) {\n case \"0\":\n return perspective.perspectiveName;\n case \"1\":\n return resources.AccountsPayable;\n case \"2\":\n return resources.AccountsReceivable;\n default:\n return perspective.parentPerspectiveId === \"1\" ? resources.AccountsPayable : resources.AccountsReceivable;\n }\n };\n\n let custContact = { ...this.props.networkStore.custContact, ...this.state.custContact };\n return (\n
\n {displayPerspectives.map(perspective => (\n {\n this.props.history.push(\n generatePath(this.props.match.path, {\n ...this.props.match.params,\n perspectiveId: perspective.perspectiveId,\n companyId: perspective.companyId,\n view: \"home\"\n })\n );\n this.props.setSelectedPerspectiveId(perspective.perspectiveId);\n this.props.selectCompany(perspective.companyId);\n this.props.fetchContextGroups(perspective.companyId, perspective.perspectiveId);\n }}\n key={perspective.perspectiveId + perspective.companyId}\n >\n \n \n
\n ))}\n {this.props.flags.addWorkspaceInSidebar && (\n
\n \n \n \n }\n menuAlign=\"right\"\n >\n \n {resources.AddWorkspaceFor.toLocaleUpperCase()}\n \n {\n this.props.displayModal(\"addPerspectiveModal\", {\n parentPerspectiveKey: Perspectives.AccountsPayable\n });\n }}\n disabled={find(displayPerspectives, perspective => perspective.parentPerspectiveId === \"1\")}\n >\n {resources.AccountsPayable}\n \n {\n this.props.displayModal(\"addPerspectiveModal\", {\n parentPerspectiveKey: Perspectives.AccountsReceivable\n });\n }}\n disabled={find(displayPerspectives, perspective => perspective.parentPerspectiveId === \"2\")}\n >\n {resources.AccountsReceivable}\n \n \n
\n )}\n
\n \n }\n buttonClassName=\"dropdown-avatar\"\n menuAlign=\"right\"\n >\n {\n this.props.displayFlyout(\"myProfileView\", {\n myProfile: selectedAccount,\n companyId: this.props.match.params.companyId,\n perspectiveId: this.props.match.params.perspectiveId\n });\n }}\n >\n {resources.MyProfile}\n \n {\n this.props.displayFlyout(\"companyProfileView\", {\n myProfile: selectedAccount,\n companyId: this.props.match.params.companyId,\n perspectiveId: this.props.match.params.perspectiveId\n });\n }}\n >\n {resources.CompanyProfile}\n \n this.props.history.push(generatePath(\"/company/:companyId/manage\", { ...match.params }))}\n >\n {resources.Settings}\n \n {this.props.flags.settingsFlyout && (\n {\n this.props.displayFlyout(\"settingsFlyout\", {\n companyId: this.props.match.params.companyId,\n perspectiveId: this.props.match.params.perspectiveId\n });\n }}\n >\n {resources.SettingsV2}\n \n )}\n this.props.logout()}>{resources.Logout}\n \n
\n \n );\n }\n}\n\nconst storeToProps = store => {\n return {\n accountsStore: store.accounts,\n contextGroupsStats: store.contextGroups.contextGroupsStats,\n modalStore: store.modal,\n networkStore: store.network,\n userStore: store.user\n };\n};\n\nexport default withLDConsumer()(withRouter(connect(storeToProps, dispatchToProps)(PerspectiveSelector)));\n","import React from \"react\";\n\nfunction CelebrateSVG() {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n\nexport default CelebrateSVG;\n","import React from \"react\";\n\nfunction DoneSVG() {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n\nexport default DoneSVG;\n","import { Component } from \"react\";\nimport React from \"react\";\nimport Resources from \"../../../lib/resources\";\nimport { connect } from \"react-redux\";\nimport { dispatchToProps as netDP } from \"../../../store/network-actions\";\nimport { generatePath, withRouter } from \"react-router-dom\";\nimport MainLoader from \"../../mainLoader\";\nimport CelebrateSVG from \"../../library/svgComponents/celebrateSVG\";\nimport DoneSVG from \"../../library/svgComponents/doneSVG\";\n\nconst dispatchToProps = dispatch => ({\n ...netDP(dispatch)\n});\n\nclass SuccessPage extends Component {\n componentDidMount() {\n this.props.getSelfServiceStatus();\n }\n\n renderSuccesPage(lockstepverified) {\n if (lockstepverified) {\n return (\n
\n

{Resources.LockstepSucess}

\n {/*
marketingvideo.exe not found
*/}\n {this.props.networkStore.selfServiceStatus.claim ? (\n {\n this.props.fetchCustAccount(this.props.match.params.accessId, this.props.match.params.mode);\n this.props.fetchCustAccountContacts(this.props.match.params.accessId, this.props.match.params.mode);\n this.props.history.push(\n generatePath(\"/signup/account/login/:mode/:accessId \", {\n accessId: this.props.accessId,\n mode: this.props.mode\n })\n );\n }}\n className=\"button-primary-square large\"\n >\n {Resources.ClaimYourProfile}\n \n ) : null}\n
\n );\n }\n }\n\n render() {\n if (this.props.networkStore.gettingSelfServiceStatus) {\n return ;\n } else if (this.props.conversion) {\n return (\n
\n \n
\n

{Resources.ConvertSuccessMessage}

\n
\n \n
\n );\n } else {\n return (\n
\n
\n \n
\n {this.renderSuccesPage(this.props.lockstepverified)}\n
\n );\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(SuccessPage));\n","import { Component } from \"react\";\nimport React from \"react\";\nimport { generatePath, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport Card from \"../../../library/card\";\nimport IconPlusCircle from \"../../../library/icons/iconPlusCircle\";\n\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\nimport { dispatchToProps as moDP } from \"../../../../store/modal-actions\";\n\nimport { find, isEmpty } from \"../../../../lib/utils\";\nimport SelectInput from \"../../../library/selectInput\";\nimport MainLoader from \"../../../mainLoader\";\nimport Resources from \"../../../../lib/resources\";\nimport TextInput from \"../../../library/textInput\";\nimport moment from \"moment\";\nimport IconTrash from \"../../../library/icons/iconTrash\";\nimport { isLongerThan } from \"../../../../lib/validation\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch),\n ...moDP(dispatch)\n});\n\nclass AddContactsForm extends Component {\n constructor(props) {\n super(props);\n this.state = {\n ...this.props.contactInfo,\n dropdownActive: false,\n contactsData: {},\n primaryContact: {},\n secondaryContact: {},\n additionalContacts: [],\n markedForDelete: []\n };\n this.roles = [\n { value: 1, role: Resources.CFO },\n { value: 2, role: Resources.Controller },\n {\n value: 3,\n role: (this.props.match.params.mode === \"ar\" ? Resources.AR : Resources.AP) + \" \" + Resources.Manager\n },\n {\n value: 4,\n role: (this.props.match.params.mode === \"ar\" ? Resources.AR : Resources.AP) + \" \" + Resources.Specialist\n },\n { value: 5, role: Resources.SalesRepresentitive },\n { value: 6, role: Resources.Other }\n ];\n this.submitForm = this.submitForm.bind(this);\n this.addContact = this.addContact.bind(this);\n }\n\n set roles(value) {\n this._roles = value;\n }\n\n get roles() {\n return this._roles;\n }\n\n componentDidMount() {\n let accessId = this.props.match.params.accessId;\n let mode = this.props.match.params.mode;\n if (this.props.empty) {\n } else {\n this.props.fetchCustAccountContacts(accessId, mode).then(response => {\n this.setState({\n primaryContact: response.contacts.filter(i => i.isPrimaryContact)[0] || {},\n secondaryContact: response.contacts.filter(i => i.isSecondaryContact)[0] || {},\n additionalContacts: response.contacts.filter(i => !i.isPrimaryContact && !i.isSecondaryContact)\n });\n });\n }\n }\n\n submitForm() {\n let accountContactData = { ...this.props.networkStore.custAccountContacts, ...this.state.accountContactData };\n let accessId = this.props.match.params.accessId;\n let mode = this.props.match.params.mode;\n let { primaryContact } = this.state;\n this.state.markedForDelete.map(i => {\n if (i.emailAddr === null || i.emailAddr === \"\") {\n i.emailAddr = \"lockstepdev@gmail.com\";\n }\n return null;\n });\n let postRequest = {\n AccountProfileKey: accountContactData.AccountProfileKey,\n AccountKey: accountContactData.AccountKey,\n APProfileKey: accountContactData.APProfileKey,\n AccountName: accountContactData.AccountName,\n emailAddr: accountContactData.emailAddr,\n isLockstepVerified: accountContactData.isLockstepVerified,\n ProfileUpdateDate: moment().format(),\n contacts: [\n {\n contactName: primaryContact.contactName,\n emailAddr: primaryContact.emailAddr,\n contactRole: primaryContact.contactRole,\n isPrimaryContact: true,\n phone: primaryContact.phone,\n isLockstepVerified: true,\n localContactKey: primaryContact.localContactKey,\n contactRoleId: primaryContact.contactRoleId\n },\n ...this.state.additionalContacts,\n ...this.state.markedForDelete\n ]\n };\n postRequest.contacts.map(i => (i.isLockstepVerified = true));\n if (\n postRequest.contacts.filter(\n i =>\n (isEmpty(i.contactName) && !isEmpty(i.emailAddr)) ||\n (!isEmpty(i.contactName) && isEmpty(i.emailAddr) && !i.isInactive)\n ).length !== 0\n ) {\n let errorMessage = Resources.PleaseEnsureNameEmailAndRoleFilledOut;\n this.props.displayModal(\"errorModal\", { errorMessage });\n } else {\n postRequest.contacts = postRequest.contacts.filter(i => i.contactName !== undefined && i.contactName !== \"\");\n postRequest.contacts.forEach(i => (i.isLockstepVerified = true));\n this.props.postCustAccountKeyContact(accessId, postRequest, mode).then(response => {\n this.props.history.push(\n generatePath(\"/v2/profileupdate/:type(account)/:mode(ar|ap)/documents/:accessId\", {\n accessId: this.props.match.params.accessId,\n type: this.props.match.params.type,\n mode: this.props.match.params.mode\n })\n );\n });\n }\n }\n\n handleDropdown() {\n this.setState({ dropdownActive: !this.state.dropdownActive });\n }\n\n addContact() {\n this.setState({\n additionalContacts: [...this.state.additionalContacts, { isLockstepVerified: true, emailAddr: \"\" }]\n });\n }\n\n renderAdditionalContacts() {\n return this.state.additionalContacts.map((item, i) => (\n
\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.updateAdditionalContacts(\"contactName\", value, i);\n }\n let additionalContactsUpdate = [...this.state.additionalContacts];\n additionalContactsUpdate[i] = { ...additionalContactsUpdate[i], contactName: value };\n this.setState({ additionalContacts: additionalContactsUpdate });\n }}\n />\n
\n
\n role.value === item.contactRoleId) || {}).value}\n displayValue={\n (find(this._roles, role => role.value === item.contactRoleId) || {}).role || Resources.Select\n }\n optionValueKey=\"value\"\n optionDisplayKey=\"role\"\n options={this._roles}\n labelInline={false}\n label={Resources.Role}\n width={\"23.2rem\"}\n onSelectOption={option => {\n if (this.props.empty) {\n this.props.updateAdditionalContacts(\"contactRoleId\", option.value, i);\n }\n let additionalContactsUpdate = [...this.state.additionalContacts];\n additionalContactsUpdate[i] = { ...additionalContactsUpdate[i], contactRoleId: option.value };\n this.setState({ additionalContacts: additionalContactsUpdate });\n }}\n />\n
\n
\n {\n if (this.props.empty) {\n this.props.deleteAdditionalContacts(i);\n }\n let additionalContactsUpdate = [...this.state.additionalContacts];\n additionalContactsUpdate[i].isInactive = true;\n let updatedMarkedForDelete = [...this.state.markedForDelete, additionalContactsUpdate[i]];\n additionalContactsUpdate.splice(i, 1);\n this.setState({\n additionalContacts: additionalContactsUpdate,\n markedForDelete: updatedMarkedForDelete\n });\n }}\n className=\"button-primary small\"\n >\n \n {Resources.Remove}\n \n
\n
\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.updateAdditionalContacts(\"emailAddr\", value, i);\n }\n let additionalContactsUpdate = [...this.state.additionalContacts];\n additionalContactsUpdate[i] = { ...additionalContactsUpdate[i], emailAddr: value };\n this.setState({ additionalContacts: additionalContactsUpdate });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.updateAdditionalContacts(\"phone\", value, i);\n }\n let additionalContactsUpdate = [...this.state.additionalContacts];\n additionalContactsUpdate[i] = { ...additionalContactsUpdate[i], phone: value };\n this.setState({ additionalContacts: additionalContactsUpdate });\n }}\n />\n
\n
\n
\n ));\n }\n\n render() {\n let { primaryContact } = this.state;\n if (this.props.networkStore.gotCustAccountContacts || this.props.empty) {\n // return this.props.networkStore.custAccount.isLockstepVerified ? (\n // \n // \n // \n // ) : (\n return (\n \n {this.props.empty ? null :

{Resources.AddContactsMessage}

}\n \n
\n {/* \n \n {Resources.HowIsMyDataUsed}\n \n }\n buttonClassName=\"button-secondary contact-form-dropdown\"\n >\n
Don't worry about it
\n */}\n

{Resources.PrimaryContact}

\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.updatePrimaryContact(\"contactName\", value);\n }\n this.setState(prevState => {\n return { primaryContact: { ...prevState.primaryContact, contactName: value } };\n });\n }}\n />\n
\n
\n role.value === primaryContact.contactRoleId) || {}).role ||\n Resources.Select\n }\n optionValueKey=\"value\"\n optionDisplayKey=\"role\"\n options={this._roles}\n labelInline={false}\n label={Resources.Role}\n width={\"23.2rem\"}\n onSelectOption={option => {\n let primaryContactUpdate = { ...primaryContact, contactRoleId: option.value };\n if (this.props.empty) {\n this.props.updatePrimaryContact(\"contactRoldId\", option.value);\n }\n this.setState({ primaryContact: primaryContactUpdate });\n }}\n />\n
\n
\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.updatePrimaryContact(\"emailAddr\", value);\n }\n this.setState(prevState => {\n return { primaryContact: { ...prevState.primaryContact, emailAddr: value } };\n });\n }}\n />\n
\n
\n {\n let value = e.target.value;\n if (this.props.empty) {\n this.props.updatePrimaryContact(\"phone\", value);\n }\n this.setState(prevState => {\n return { primaryContact: { ...prevState.primaryContact, phone: value } };\n });\n }}\n />\n
\n
\n {this.state.additionalContacts ? (\n \n {this.state.additionalContacts.length > 0 && (\n

{Resources.AdditionalContacts}

\n )}\n {this.renderAdditionalContacts()}\n
\n ) : null}\n
\n
\n \n
\n
\n {this.props.empty ? null : (\n
\n \n
\n )}\n
\n );\n } else {\n return ;\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network,\n modalStore: store.modal\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(AddContactsForm));\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\nimport { connect } from \"react-redux\";\nimport LockstepHeader from \"../lockstepHeader\";\nimport resources from \"../../../../lib/resources\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch)\n});\n\nclass ProfileUpdateViewHeader extends Component {\n constructor(props) {\n super(props);\n this.state = {\n type: \"\"\n };\n }\n\n componentDidMount() {\n let type = this.props.match.params.type;\n switch (type) {\n case \"account\":\n this.props.fetchCustAccount(this.props.match.params.accessId, this.props.match.params.mode);\n break;\n case \"contact\":\n this.props.fetchCustContact(this.props.match.params.accessId);\n break;\n default:\n }\n this.props.fetchHeaderInfo(this.props.match.params.accessId);\n }\n\n renderHeader(type) {\n let companyDetailToggle = this.props.match.params.mode === \"ap\" ? \"companyAPDetails\" : \"companyARDetails\";\n\n let name = \"\";\n if (type === \"account\") {\n let accountData = {\n ...this.props.networkStore.custAccount[companyDetailToggle],\n ...this.state.accountData\n };\n name = accountData.companyName;\n } else {\n let custContact = { ...this.props.networkStore.custContact, ...this.state.custContact };\n name = custContact.contactName;\n }\n let headerInfo = { ...this.props.networkStore.headerInfo, ...this.state.headerInfo };\n return (\n
\n {headerInfo.LogoURL === \"\" || headerInfo.LogoURL === null ? null : (\n
\n \"logo\"\n
\n )}\n \n

{headerInfo.AccountName}

\n

{resources.ProfileUpdateHeader(name)}

\n
\n
\n connected by\n \n \n \n \n \n \n \n \n \n
\n \n );\n }\n\n render() {\n let type = this.props.match.params.type;\n if (type === \"account\") {\n if (this.props.networkStore.gotCustAccount && this.props.networkStore.gotHeaderInfo) {\n return this.renderHeader(type);\n } else {\n return null;\n }\n } else if (type === \"contact\") {\n if (this.props.networkStore.gotCustContact) {\n return this.renderHeader(type);\n } else {\n return null;\n }\n } else {\n return ;\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ProfileUpdateViewHeader));\n","import React, { Component } from \"react\";\nimport Resources from \"../../../../lib/resources\";\nimport { generatePath, withRouter } from \"react-router-dom\";\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\nimport { connect } from \"react-redux\";\nimport MainLoader from \"../../../mainLoader\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch)\n});\n\nclass MarketingVideoView extends Component {\n constructor(props) {\n super(props);\n this.goToNext = this.goToNext.bind(this);\n }\n\n componentDidMount() {\n this.props.fetchCustContact(this.props.match.params.accessId);\n }\n\n goToNext() {\n this.props.history.push(\n generatePath(this.props.route, {\n accessId: this.props.match.params.accessId,\n view: this.props.view,\n mode: this.props.match.params.mode,\n accountingGroupKey: this.props.match.params.accountingGroupKey,\n companyGlobalKey: this.props.match.params.companyGlobalKey\n })\n );\n }\n\n render() {\n if (this.props.networkStore.gotCustContact) {\n return (\n \n

\n {Resources.ProfileUpdateWelcomeFromATC(this.props.networkStore.custContact.contactName)}\n

\n
Marketing_Video.exe has stopped responding
\n

{Resources.WeAreExcitedToHaveYou}

\n
\n \n
\n
\n );\n } else {\n return ;\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network\n };\n};\n\nexport default withRouter(\n connect(\n storeToProps,\n dispatchToProps\n )(MarketingVideoView)\n);\n","import React, { Component } from \"react\";\nimport Resources from \"../../../../lib/resources\";\nimport { generatePath, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\nimport { updateSelectedRows, includes } from \"../../../../lib/utils\";\n\nimport MainLoader from \"../../../mainLoader\";\nimport ContactsTable from \"../../contactsTable\";\n\nimport Card from \"../../../library/card\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch)\n});\n\nclass ContactTableForm extends Component {\n constructor(props) {\n super(props);\n this.state = {\n deletedContactKeys: [],\n deletedContactRows: [],\n editMode: false,\n accountContacts: {}\n };\n this.goToNext = this.goToNext.bind(this);\n this.toggleEditMode = this.toggleEditMode.bind(this);\n }\n\n componentDidMount() {\n let mode = this.props.match.params.mode;\n let accountingGroupKey = this.props.match.params.accountingGroupKey;\n let companyGlobalKey = this.props.match.params.companyGlobalKey;\n if (this.props.profileUpdate) {\n this.setState({ accountContacts: this.props.contacts });\n } else {\n this.props.fetchAccountingGroupProfile(accountingGroupKey, companyGlobalKey, mode);\n this.props.fetchAccountingGroupProfileContacts(accountingGroupKey, companyGlobalKey, mode);\n }\n }\n\n goToNext() {\n let accountingGroupKey = this.props.match.params.accountingGroupKey;\n let companyGlobalKey = this.props.match.params.companyGlobalKey;\n let accessId = this.props.match.params.accessId;\n let mode = this.props.match.params.mode;\n let accountContacts = { ...this.props.networkStore.custAccountContacts, ...this.state.accountContacts };\n let filteredContacts = accountContacts.contacts.filter(\n contact => !includes(this.state.deletedContactKeys, contact.entityGlobalKey)\n );\n let request = {\n contacts: filteredContacts,\n isLockstepVerified: true\n };\n if (this.props.profileUpdate) {\n this.props.postCustAccountKeyContact(accessId, request, mode).then(response => {\n this.props.history.push(\n generatePath(\"/v2/profileupdate/:type(account)/:mode(ar|ap)/documents/:accessId\", {\n accessId: this.props.match.params.accessId,\n type: this.props.match.params.type,\n mode: this.props.match.params.mode\n })\n );\n });\n } else {\n this.props.postAccountingGroupProfileContacts(accountingGroupKey, companyGlobalKey, mode, request).then(\n this.props.history.push(\n generatePath(this.props.route, {\n accessId: this.props.match.params.accessId,\n view: this.props.view,\n mode: this.props.match.params.mode,\n accountingGroupKey: this.props.match.params.accountingGroupKey,\n companyGlobalKey: this.props.match.params.companyGlobalKey\n })\n )\n );\n }\n }\n\n deleteContact(key, row) {\n let newSelectedKeys = updateSelectedRows(key, this.state.deletedContactKeys);\n let newSelectedRows = updateSelectedRows(row, this.state.deletedContactRows);\n this.setState({ deletedContactKeys: newSelectedKeys, deletedContactRows: newSelectedRows });\n }\n\n toggleEditMode() {\n this.setState({ editMode: !this.state.editMode });\n }\n\n render() {\n const { contactList, gettingCustAccountContacts, gettingCustAccount } = this.props;\n let accountData = { ...this.props.networkStore.custAccount, ...this.state.accountData };\n let accountContacts = { ...contactList, ...this.state.accountContacts };\n let companyName = accountData.companyName || this.props.companyName;\n if (gettingCustAccountContacts || gettingCustAccount) {\n return ;\n } else {\n return (\n \n {this.props.profile ? null : (\n

{Resources.DoAllTheseContactsStillWorkFor(companyName)}

\n )}\n \n this.deleteContact(key, contact)}\n deletedContactKeys={this.state.deletedContactKeys}\n />\n \n {this.props.profile ? null : (\n
\n \n \n
\n )}\n
\n );\n }\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network,\n contactList: store.network.custAccountContacts,\n pageRowCount: store.general.pageRowCount,\n gettingCustAccount: store.network.gettingCustAccount,\n gettingCustAccountContacts: store.network.gettingCustAccountContacts\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ContactTableForm));\n","import React from \"react\";\n\nfunction PaperSVG() {\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n );\n}\n\nexport default PaperSVG;\n","import React from \"react\";\n\nfunction UserIconSVG() {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n\nexport default UserIconSVG;\n","import React, { useState } from \"react\";\nimport Resources from \"../../../../lib/resources\";\nimport { generatePath, withRouter } from \"react-router-dom\";\nimport { dispatchToProps as networkDP } from \"../../../../store/network-actions\";\nimport { connect } from \"react-redux\";\nimport LoginInformationForm from \"../signup/loginInformationForm\";\nimport DoneSVG from \"../../../library/svgComponents/doneSVG\";\nimport PaperSVG from \"../../../library/svgComponents/paperSVG\";\nimport UserIconSVG from \"../../../library/svgComponents/userIconSVG\";\n\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch)\n});\n\nfunction ConversionPage(props) {\n const myProfileLink = \"\";\n const [profile, setProfile] = useState({});\n\n const formOnChange = (field, value) => {\n let newProfile = { ...profile, [field]: value };\n setProfile(newProfile);\n };\n\n const submitFunction = () => {\n let erps = {\n 1: \"Acumatica\",\n 2: \"Epicor (E10)\",\n 3: \"Epicor (P21)\",\n 4: \"Microsoft Dynamic Business Central\",\n 5: \"Microsoft Dynamic Great Plains\",\n 6: \"Microsoft Dynamics Navision\",\n 7: \"NetSuite\",\n 8: \"QuickBooks\",\n 9: \"Sage 100\",\n 10: \"Sage 500\",\n 11: \"Sage Intacct\",\n 12: \"SAP BusinessOne\",\n 13: \"SAP R/3\",\n 14: \"Xero\",\n 15: \"Other\"\n };\n\n let postRequest = {\n companyEmail: profile.username,\n userEmail: profile.password,\n erp: erps[profile.departmentId]\n };\n\n props.submitConversionInfo(postRequest);\n props.history.push(\n generatePath(\"/v2/profileupdate/success/:mode(ar|ap)/conversion/:accessId\", {\n accessId: props.match.params.accessId,\n mode: props.match.params.mode\n })\n );\n };\n\n return (\n
\n
\n

{Resources.MVPConversionHeader}

\n {props.flags.mvpconversionviewbuttons ? (\n
\n \n \n
\n ) : null}\n
\n
\n
\n \n
\n
\n
\n \n {Resources.NeverFillOutAFormAgain}\n
\n
\n \n {Resources.SecurelyCollectAndStoreVendorProfiles}\n
\n
\n \n {Resources.AutomaticallyKeepVendorDataUpToDate}\n
\n
\n
\n
\n );\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network\n };\n};\n\nexport default withLDConsumer()(withRouter(connect(storeToProps, dispatchToProps)(ConversionPage)));\n","import React, { Component } from \"react\";\nimport { Switch, Route, withRouter, Redirect, generatePath } from \"react-router-dom\";\nimport ContactUpdateForm from \"./contactUpdateForm\";\nimport SuccessPage from \"../successPage\";\nimport ProfileUpdateForm from \"./profileUpdateForm\";\nimport AddContactsForm from \"./addContactsForm\";\nimport DocumentUploadForm from \"../documentUploadForm\";\nimport LockstepHeader from \"../lockstepHeader\";\nimport ProfileUpdateViewHeader from \"./profileUpdateViewHeader\";\nimport MarketingVideoView from \"./marketingVideoView\";\nimport ContactTableForm from \"./contactTableForm\";\nimport ConversionPage from \"./conversionPage\";\n\nimport { withLDConsumer } from \"launchdarkly-react-client-sdk\";\n\nclass ProfileUpdateView extends Component {\n componentDidMount() {\n window.Intercom(\"shutdown\");\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.flags.mvpconversion ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default withLDConsumer()(withRouter(ProfileUpdateView));\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { Route, Switch } from \"react-router-dom\";\nimport ProfileUpdateView from \"./views/profileUpdate/profileUpdateView\";\n\nclass ProfileUpdateController extends Component {\n render() {\n return (\n \n \n
\n \n
\n
\n
\n );\n }\n}\n\nexport default withRouter(ProfileUpdateController);\n","import React, { Component } from \"react\";\nimport { Switch, Route, generatePath, NavLink, withRouter, Redirect } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport { formatDate, getNoDocumentsGraphic, isEmpty } from \"../../../lib/utils\";\n\nimport { dispatchToProps as networkDP } from \"../../../store/network-actions\";\n\nimport Card from \"../../library/card\";\nimport ContactsTable from \"../contactsTable\";\nimport TableData from \"../../library/tableData\";\n\nimport IconArchive from \"../../library/icons/iconArchive\";\nimport IconPhone from \"../../library/icons/iconPhone\";\nimport IconMapPin from \"../../library/icons/iconMapPin\";\nimport IconLinkedIn from \"../../library/icons/iconLinkedIn\";\nimport IconClipboard from \"../../library/icons/iconClipboard\";\nimport IconMail from \"../../library/icons/iconMail\";\nimport IconCheckCircle from \"../../library/icons/iconCheckCircle\";\nimport Dropdown from \"../../library/dropdown\";\n\nimport Resources from \"../../../lib/resources\";\nimport Avatar from \"../../library/avatar\";\nimport UserAvatar from \"../../library/userAvatar\";\nimport MainLoader from \"../../mainLoader\";\n\nconst dispatchToProps = dispatch => ({\n ...networkDP(dispatch)\n});\n\nclass ProfileShareView extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n selectedAccount: {},\n accountContacts: {},\n loadedTable: false,\n documents: [\n {\n type: 1,\n typeTitle: \"\",\n files: [],\n lastUpdated: \"N/A\"\n },\n {\n type: 2,\n files: [],\n lastUpdated: \"N/A\"\n },\n {\n type: 3,\n files: [],\n lastUpdated: \"N/A\"\n }\n ]\n };\n }\n\n componentDidMount = () => {\n if (this.props.match.params.type === \"account\") {\n this.props.fetchHeaderInfo(this.props.match.params.accessId);\n\n this.props.fetchCustAccount(this.props.match.params.accessId, this.props.match.params.mode).then(response => {\n let companyDetailsToggle = this.props.match.params.mode === \"ar\" ? \"companyARDetails\" : \"companyAPDetails\";\n this.setState({ selectedAccount: response[companyDetailsToggle] });\n });\n this.props\n .fetchCustAccountDocuments(this.props.match.params.accessId, this.props.match.params.mode)\n .then(() => {\n this.getCurrentDocs();\n });\n } else {\n this.props.fetchCustContact(this.props.match.params.accessId).then(() => {\n this.setState({ selectedAccount: this.props.networkStore.custContact });\n });\n }\n }\n\n handleLastUpdated = (row) => {\n if (row.files.length === 0) {\n return \"N/A\";\n } else {\n return formatDate(row.files[row.files.length - 1].updateDate);\n }\n }\n\n getCurrentDocs = () => {\n if (!this.state.loadedTable) {\n const docs = (this.props.networkStore.custAccountDocuments || {}).documents || [];\n let docsArray = [[], [], []];\n\n docs.map(currentDoc => {\n let currentType = currentDoc.documentTypeId;\n docsArray[currentType - 1].push(currentDoc);\n return null;\n });\n\n let newDocuments = [\n {\n type: 1,\n typeTitle:\n this.props.match.params.mode === \"ar\" || this.props.mode === \"ar\"\n ? \"Bank verification documents\"\n : \"Credit application\",\n files: docsArray[0],\n lastUpdated: \"N/A\"\n },\n {\n type: 2,\n typeTitle: this.props.match.params.mode === \"ar\" || this.props.mode === \"ar\" ? \"W9\" : \"Proof of insurance\",\n files: docsArray[1],\n lastUpdated: \"N/A\"\n },\n {\n type: 3,\n typeTitle:\n this.props.match.params.mode === \"ar\" || this.props.mode === \"ar\" ? \"Other\" : \"Tax exemption certificate\",\n files: docsArray[2],\n lastUpdated: \"N/A\"\n }\n ];\n\n this.setState({ documents: newDocuments });\n this.setState({ loadedTable: true });\n }\n }\n\n getInfoCard = () => {\n return (\n
\n \n
\n {Resources.UpdatedDate(formatDate(this.state.selectedAccount.profileUpdateDate))}\n
\n
\n
\n
\n \n
\n
\n {(\n this.props.networkStore.custAccount.accountingGroupARDetails ||\n this.props.networkStore.custAccount.accountingGroupAPDetails ||\n {}\n ).emailAddr || this.props.networkStore.custContact.emailAddr}\n
\n
\n {!isEmpty(this.state.selectedAccount.phone) && (\n
\n
\n \n
\n
{this.state.selectedAccount.phone}
\n
\n )}\n {!isEmpty(this.state.selectedAccount.fax) && (\n
\n
\n \n
\n
{this.state.selectedAccount.fax}
\n
\n )}\n {!isEmpty(\n [\n this.state.selectedAccount.mailToAddrLn1,\n this.state.selectedAccount.mailToCity,\n this.state.selectedAccount.mailToState,\n this.state.selectedAccount.mailToPostalcode,\n this.state.selectedAccount.mailToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n
\n
{this.state.selectedAccount.mailToAddrLn1}
\n
\n {this.state.selectedAccount.mailToCity}, {this.state.selectedAccount.mailToState}{\" \"}\n {this.state.selectedAccount.mailToPostalcode}\n
\n
{this.state.selectedAccount.mailToCountry}
\n
\n
\n )}\n {!isEmpty(\n [\n this.state.selectedAccount.billToAddrLn1,\n this.state.selectedAccount.billToCity,\n this.state.selectedAccount.billToState,\n this.state.selectedAccount.billToPostalcode,\n this.state.selectedAccount.billToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n \n
\n
\n {!!this.state.selectedAccount.shipToAddrLn1 && !!this.state.selectedAccount.billToAddrLn1 ? (\n
{Resources.BillTo}
\n ) : null}\n
{this.state.selectedAccount.billToAddrLn1}
\n
\n {this.state.selectedAccount.billToCity}, {this.state.selectedAccount.billToState}{\" \"}\n {this.state.selectedAccount.billToPostalcode}\n
\n
{this.state.selectedAccount.billToCountry}
\n
\n
\n )}\n {!isEmpty(\n [\n this.state.selectedAccount.shipToAddrLn1,\n this.state.selectedAccount.shipToCity,\n this.state.selectedAccount.shipToState,\n this.state.selectedAccount.shipToPostalcode,\n this.state.selectedAccount.shipToCountry\n ].filter(value => !isEmpty(value))\n ) && (\n
\n
\n
\n {!!this.state.selectedAccount.shipToAddrLn1 && !!this.state.selectedAccount.billToAddrLn1 ? (\n
{Resources.ShipTo}
\n ) : null}\n
{this.state.selectedAccount.shipToAddrLn1}
\n
\n {this.state.selectedAccount.shipToCity}, {this.state.selectedAccount.shipToState}{\" \"}\n {this.state.selectedAccount.shipToPostalcode}\n
\n
{this.state.selectedAccount.shipToCountry}
\n
\n
\n )}\n {!isEmpty(this.state.selectedAccount.linkedInProfile) && (\n
\n
\n \n
\n
{this.state.selectedAccount.linkedInProfile}
\n
\n )}\n {!isEmpty(this.state.selectedAccount.notes) && (\n
\n
\n \n
\n
{this.state.selectedAccount.notes}
\n
\n )}\n
\n \n
\n );\n }\n\n getLockstepHeader = () => {\n return (\n
\n connected by\n \n \n \n \n \n \n \n \n \n
\n );\n }\n\n render() {\n let links = [\n { subView: \"profile\", display: Resources.Profile.toLocaleUpperCase() },\n { subView: \"documents\", display: Resources.Documents.toLocaleUpperCase() }\n ];\n\n let documentColumns = [\n {\n header: Resources.DocumentType.toLocaleUpperCase(),\n content: row => (\n
\n {row.typeTitle}\n
\n ),\n width: \"30%\"\n },\n {\n header: Resources.File.toLocaleUpperCase(),\n content: row =>\n row.files.map((file, index) => (\n

\n {file.fileName}\n

\n )),\n width: \"30%\"\n },\n {\n header: Resources.LastUpdated.toLocaleUpperCase(),\n content: row => this.handleLastUpdated(row),\n width: \"10%\"\n },\n { content: row => null, width: \"0%\" }\n ];\n\n let documents = [];\n\n if (this.props.networkStore.custAccountDocuments && this.props.networkStore.custAccountDocuments.documents) {\n documents = this.props.networkStore.custAccountDocuments.documents;\n }\n\n return (\n \n \n \n {this.props.networkStore.gettingCustContact ? (\n \n ) : (\n \n
\n
\n
\n {1 > 0 ? (\n \n ) : (\n \n )}\n
\n\n
\n

{this.props.networkStore.custContact.contactName}

\n
\n\n {this.getLockstepHeader()}\n\n
\n {this.props.networkStore.custContact.isLockstepVerified ? (\n \n
\n \n \n \n }\n >\n
\n {Resources.LockstepVerifiedInformation}\n
\n \n
\n
\n ) : null}\n
\n
\n
\n\n {this.getInfoCard()}\n
\n )}\n
\n {this.props.networkStore.gotCustAccount ? (\n \n
\n
\n
\n {1 > 0 ? (\n \n ) : (\n \n )}\n
\n\n
\n

{this.props.networkStore.headerInfo.AccountName}

\n
\n
\n {this.getLockstepHeader()}\n
\n {links && (\n
\n {links.map(link => (\n \n {link.display}\n \n ))}\n
\n )}\n
\n
\n \n \n {this.getInfoCard()}\n \n \n this.deleteContact(key, contact)}\n deletedContactKeys={this.state.deletedContactKeys}\n />\n \n \n \n
\n \n {\n documents.length > 0 ?\n :\n \n \n {getNoDocumentsGraphic()}\n \n

{Resources.NothingToSeeHere}

\n

{Resources.ConnectionHasNoDocuments}

\n
\n }\n
\n
\n
\n
\n
\n ) : (\n \n )}\n
\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n networkStore: store.network\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(ProfileShareView));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { isEmpty, find, isGuid } from \"../../lib/utils\";\nimport { Route, Switch, Redirect, withRouter, matchPath } from \"react-router-dom\";\n\nimport ViewController from \"./viewController\";\n\nimport MainLoader from \"../mainLoader\";\nimport LockstepLogo from \"../library/lockstepLogo\";\nimport ViewSelector from \"./viewSelector\";\nimport PerspectiveSelector from \"./perspectiveSelector\";\nimport ProfileUpdateController from \"./profileUpdateController\";\nimport ProfileShareView from \"./views/profileShareView\";\n\nimport { dispatchToProps as genDP } from \"../../store/general-actions\";\nimport { dispatchToProps as aaDP } from \"../../store/accounts-actions\";\nimport { dispatchToProps as paDP } from \"../../store/perspectives-actions\";\nimport { dispatchToProps as cgDP } from \"../../store/contextGroups-actions\";\nimport { dispatchToProps as convDP } from \"../../store/conversations-actions\";\nimport { dispatchToProps as saDP } from \"../../store/statements-actions\";\nimport { dispatchToProps as caDP } from \"../../store/company-actions\";\nimport { dispatchToProps as uaDP } from \"../../store/user-actions\";\n\nconst dispatchToProps = dispatch => {\n return {\n ...genDP(dispatch),\n ...aaDP(dispatch),\n ...saDP(dispatch),\n ...paDP(dispatch),\n ...cgDP(dispatch),\n ...caDP(dispatch),\n ...uaDP(dispatch),\n ...convDP(dispatch)\n };\n};\n\nclass Lockstep extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n componentDidMount() {\n this.tryUpdate();\n }\n\n componentDidUpdate() {\n this.tryUpdate();\n }\n\n componentWillUnmount() {\n window.Intercom(\"boot\");\n }\n\n tryUpdate() {\n let { contextGroupsStore, perspectivesStore, accountsStore, match } = this.props;\n\n if (this.props.APILive === false || match.params.companyId === \"profileupdate\") {\n return null;\n }\n const subscription = this.props.getSubscription();\n if (subscription === null) {\n return;\n }\n\n const companyId = this.props.getDefaultCompany().companyId;\n\n if ((isEmpty(contextGroupsStore.companyId) || isEmpty(accountsStore.selectedCompanyId)) && !isEmpty(companyId)) {\n // When someone is browsing to a shared account or contact profile via a link sent by a Lockstep user, we need to skip fetching company info.\n // That request will fail since the current user is not authorized to make it, and we don't want to display a 'Whoops' notification.\n if (!matchPath(this.props.location.pathname,{path: \"/v2/profile/:type/:mode/:accessId\", exact: false, strict: false})) {\n this.props.fetchCompanyInfo(companyId);\n }\n\n this.props.selectCompany(companyId);\n }\n\n const perspectiveId = match.params.perspectiveId;\n if (isEmpty(perspectivesStore.selectedPerspectiveId)) {\n const companyPerspectives = this.props.getCompanyPerspectives(companyId);\n if (companyPerspectives === null) {\n return;\n }\n\n if (!isEmpty(perspectiveId) && isGuid(perspectiveId)) {\n this.props.setSelectedPerspectiveId(perspectiveId);\n } else {\n if (match.params.companyId !== \"profileupdate\") {\n let defaultPerspective =\n find(\n companyPerspectives,\n cPerspective => cPerspective.parentPerspectiveId === \"1\" // 1 is assosciated with vendors\n ) || {};\n if (isEmpty(defaultPerspective)) {\n defaultPerspective = companyPerspectives[0];\n }\n\n this.props.setSelectedPerspectiveId(\n defaultPerspective.accountingGroupKey || defaultPerspective.perspectiveId\n );\n }\n }\n }\n }\n\n render() {\n const {\n perspectivesStore,\n accountsStore,\n match,\n match: { params }\n } = this.props;\n\n const companyId = this.props.getDefaultCompany().companyId;\n const perspectiveId = perspectivesStore.selectedPerspectiveId;\n\n const subscription = this.props.getSubscription();\n\n // Ensure customer portal users do not accidentally get into Lockstep Inbox\n if (!isEmpty(subscription) && (subscription.subscriptionTypeName || \"\").toLowerCase() === \"customer portal\") {\n this.props.history.push(\"/\");\n }\n\n // Only render the app when all information has been fetched\n if (\n match.params.companyId !== \"profileupdate\" &&\n (!accountsStore.hasFetchedAccounts ||\n isEmpty(subscription) ||\n isEmpty(perspectivesStore.companyPerspectives) ||\n isEmpty(perspectivesStore.selectedPerspectiveId))\n ) {\n return ;\n }\n\n const guidRegex = \"([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})\";\n\n return (\n \n {\n // TODO: Fix this redirect, should not need to redirect to correct company\n }\n {/* {!isEmpty(companyId) && params.companyId !== companyId && } */}\n \n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n {!isEmpty(companyId) && isEmpty(params.companyId) && }\n {!isEmpty(perspectiveId) && }\n
\n );\n }\n}\n\nconst storeToProps = store => {\n return {\n accountsStore: store.accounts,\n userStore: store.user,\n conversationsStore: store.conversations,\n perspectivesStore: store.perspectives,\n statementsStore: store.statements,\n contextGroupsStore: store.contextGroups\n };\n};\n\nexport default withRouter(connect(storeToProps, dispatchToProps)(Lockstep));\n","import React, { Component } from \"react\";\r\nimport { Route, Redirect, Switch } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport { isEmpty, getConfig } from \"../lib/utils\";\r\n\r\nimport DepartmentView from \"./departmentView\";\r\nimport SignUpContinued from \"./signUpContinued\";\r\nimport SignUpFailed from \"./signUpFailed\";\r\nimport CompanySelect from \"./company_select/companySelect\";\r\nimport Login from \"./login\";\r\nimport Registration from \"./registration\";\r\nimport SideNav from \"./sideNav\";\r\nimport SetUpLandingPage from \"./setupLandingPage\";\r\nimport ReportsPage from \"./reportsPage\";\r\nimport ResetPassword from \"./resetPassword\";\r\nimport InvitedSetPassword from \"./invitedSetPassword\";\r\nimport { dispatchToProps as regDP } from \"../store/registration-actions\";\r\nimport { dispatchToProps as uaDP } from \"../store/user-actions\";\r\nimport { dispatchToProps as locDP } from \"../store/localization-actions\";\r\nimport { dispatchToProps as aaDP } from \"../store/accounts-actions\";\r\nimport { dispatchToProps as gaDP } from \"../store/general-actions\";\r\nimport { FullStoryAPI } from \"react-fullstory\";\r\nimport { isLocalHost, isProduction } from \"../lib/utils\";\r\nimport ManageConnectors from \"./manageConnectors\";\r\nimport ERPRegistration from \"./ERPRegistration\";\r\nimport CompanyEmailSettings from \"./companyEmailSettings\";\r\nimport MyCompanyProfile from \"./myCompanyProfile\";\r\nimport ManageCompanyUsers from \"./manageCompanyUsers\";\r\nimport ManageApprovers from \"./manageApprovers\";\r\nimport ManageTemplates from \"./manageTemplates\";\r\nimport ManageCommunicationTemplates from \"./manage/manageCommunicationTemplates\";\r\nimport ManageSequences from \"./manage/manageSequences\";\r\nimport ManageCustomerGroups from \"./manage/customer-groups/manageCustomerGroups\";\r\nimport SharedDocuments from \"./sharedDocuments\";\r\nimport ERPConfiguration from \"./ERPConfiguration\";\r\nimport EditAccountingPackage from \"./editAccountingPackage\";\r\nimport Toast from \"./library/toast\";\r\nimport ModalManager from \"./modalManager\";\r\nimport FlyoutManager from \"./flyoutManager\";\r\nimport NotificationManager from \"./notificationManager\";\r\nimport SearchViewModal from \"./searchViewModal\";\r\nimport ManageWorkflows from \"./manageWorkflows\";\r\nimport ManageContacts from \"./manageContacts\";\r\nimport ApprovalRequest from \"./approvalRequest\";\r\nimport SiteDown from \"./siteDown\";\r\n\r\nimport MyProfile from \"./myProfile\";\r\nimport CustomerPortal from \"./customer_portal/customerPortal\";\r\nimport NotificationSettings from \"./notificationSettings\";\r\nimport ManageSignature from \"./manageSignature\";\r\nimport PaymentConfirmationMessage from \"./customer_portal/paymentConfirmationMessage\";\r\nimport SignupView from \"./lockstep/views/signup/signupView\";\r\nimport AffinipayModal from \"./affinipayModal\";\r\n\r\nimport Lockstep from \"./lockstep/lockstep\";\r\nimport EasterEggPage from \"../admin/easterEggPage\";\r\nimport { isDebug } from \"../admin/easterEggPage\";\r\n\r\nclass Layout extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.syncToStorage = this.syncToStorage.bind(this);\r\n }\r\n\r\n syncToStorage(e) {\r\n if (e.key === \"logged_in\" && e.newValue !== \"true\") {\r\n this.props.logout();\r\n } else if (e.key === \"id_token\" && !isEmpty(e.newValue) && e.newValue !== this.props.userStore.token) {\r\n const prevUserId = (this.props.userStore.decoded || {}).sub;\r\n this.props.loggedIn(e.newValue);\r\n if (jwt_decode(e.newValue).sub !== prevUserId) {\r\n window.location.hash = \"/\";\r\n window.location.reload();\r\n }\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.tryUpdate();\r\n this.props.isAPILive();\r\n window.addEventListener(\"storage\", this.syncToStorage);\r\n this.props.setBrowserLanguage();\r\n if (this.props.isLoggedIn) {\r\n this.props.getAllLanguages();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"storage\", this.syncToStorage);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.isLoggedIn === true) {\r\n return;\r\n }\r\n this.tryUpdate();\r\n }\r\n\r\n tryUpdate() {\r\n // This only hits on mount, before user is logged in, and once right after user is logged in\r\n if (this.props.isLoggedIn && this.props.APILive === true) {\r\n this.props.getAllLanguages();\r\n\r\n let userId = this.props.getMyUserIdFromToken();\r\n let metaData = {\r\n displayName: this.props.getMyDisplayNameFromToken(),\r\n userName: this.props.getMyUserNameFromToken()\r\n };\r\n if (this.props.isUserImpersonated()) {\r\n userId = `ADMIN_AS_${userId}`;\r\n metaData = { ...metaData, displayName: \"Lockstep Administrator\" };\r\n }\r\n\r\n if (window.Intercom) {\r\n window.Intercom(\"shutdown\");\r\n window.Intercom(\"boot\", {\r\n appId: getConfig().intercomId,\r\n userId: userId,\r\n name: metaData.displayName,\r\n email: metaData.userName\r\n });\r\n window.Intercom(\"update\", { hide_default_launcher: false });\r\n }\r\n }\r\n\r\n try {\r\n if (\r\n this.props.isLoggedIn !== true &&\r\n window.localStorage.getItem(\"logged_in\") &&\r\n !window.localStorage.getItem(\"is_registering\")\r\n ) {\r\n const idToken = window.localStorage.getItem(\"id_token\");\r\n let dateNow = new Date();\r\n if (idToken) {\r\n const jwt = jwt_decode(idToken);\r\n if (jwt.exp >= dateNow.getTime() / 1000) {\r\n this.props.loggedIn(idToken);\r\n this.props.resetRegistrationState();\r\n } else {\r\n this.props.logout();\r\n }\r\n }\r\n }\r\n } catch {} // DOMExceptions are thrown in cross-origin contexts under newer versions of Chrome, so we'll use the default for now\r\n }\r\n\r\n render() {\r\n const isAdmin = this.props.isCompanyAdmin();\r\n\r\n // Set the default state for these in the event that localStorage is blocked by Chrome for iframe embedding\r\n let isRegistering = true;\r\n let isLoggedIn = false;\r\n\r\n try {\r\n isRegistering = window.localStorage.getItem(\"is_registering\") === \"true\";\r\n isLoggedIn = this.props.isLoggedIn === true || window.localStorage.getItem(\"logged_in\");\r\n } catch {} // DOMExceptions are thrown in cross-origin contexts under newer versions of Chrome, so we'll use the default for now\r\n\r\n let content = () => {\r\n if (this.props.APILive === false) {\r\n return ;\r\n } else if (\r\n isDebug && window.location.hash.startsWith(\"#/easteregg\")\r\n ) {\r\n return ;\r\n } else if (\r\n window.location.hash.startsWith(\"#/approvalrequest\") ||\r\n window.location.hash.startsWith(\"#/reset-password\") ||\r\n window.location.hash.startsWith(\"#/login\") ||\r\n window.location.hash.startsWith(\"#/invited\") ||\r\n window.location.hash.startsWith(\"#/code\") ||\r\n window.location.hash.startsWith(\"#/provider\") ||\r\n window.location.hash.startsWith(\"#/register\") ||\r\n window.location.hash.startsWith(\"#/signup\") ||\r\n window.location.hash.startsWith(\"#/payment\") ||\r\n window.location.hash.startsWith(\"#/affinipay\") ||\r\n (isRegistering && window.location.hash === \"#/\")\r\n ) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n } else if (isLoggedIn) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Customer Portal */}\r\n \r\n } />\r\n (\r\n
\r\n \r\n {/* */}\r\n \r\n \r\n\r\n \r\n {/* User settings */}\r\n \r\n \r\n \r\n {/* Manage Section */}\r\n \r\n \r\n \r\n {\r\n return isAdmin === false ? (\r\n \r\n ) : (\r\n \r\n );\r\n }}\r\n />\r\n {\r\n return isAdmin === false ? (\r\n \r\n ) : (\r\n \r\n );\r\n }}\r\n />\r\n {\r\n return isAdmin === false ? (\r\n \r\n ) : (\r\n \r\n );\r\n }}\r\n />\r\n {\r\n return isAdmin === false ? (\r\n \r\n ) : (\r\n \r\n );\r\n }}\r\n />\r\n {\r\n return isAdmin === false ? (\r\n \r\n ) : (\r\n \r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {\r\n return isAdmin === false ? : ;\r\n }}\r\n component={ReportsPage}\r\n />\r\n\r\n {/* Workspace Section */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n />\r\n
\r\n
\r\n );\r\n } else {\r\n return ;\r\n }\r\n };\r\n\r\n return content();\r\n }\r\n}\r\n\r\nconst storeToProps = store => {\r\n return {\r\n isLoggedIn: store.user.isLoggedIn,\r\n fetchedCompanyRoles: store.accounts.fetchedCompanyRoles,\r\n userStore: store.user,\r\n APILive: store.general.isAPILive,\r\n languageId: store.localization.languageId\r\n };\r\n};\r\n\r\nconst dispatchToProps = dispatch => {\r\n return {\r\n ...regDP(dispatch),\r\n ...uaDP(dispatch),\r\n ...locDP(dispatch),\r\n ...aaDP(dispatch),\r\n ...gaDP(dispatch)\r\n };\r\n};\r\n\r\nexport default connect(storeToProps, dispatchToProps)(Layout);\r\n","import React, { Component } from \"react\";\r\n\r\nexport const isDebug = false;\r\n\r\n// See also debugPage.jsx\r\n\r\nexport default class EasterEggPage extends Component {\r\n // PRODUCTION CODE\r\n // MAKE NO CHANGE\r\n render() {\r\n return (\r\n \r\n
Hello from the Lockstep Development Team!
\r\n
\r\n );\r\n }\r\n }","import React, { Component } from \"react\";\r\nimport Resources from \"../lib/resources\";\r\nimport { FullStoryAPI } from \"react-fullstory\";\r\nimport { isLocalHost, isProduction } from \"../lib/utils\";\r\n\r\nexport default class ErrorBoundary extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n\r\n static getDerivedStateFromError(error) {\r\n // Update state so the next render will show the fallback UI.\r\n return { hasError: true };\r\n }\r\n\r\n componentDidCatch(error, info) {\r\n if (isLocalHost() !== true && isProduction()) {\r\n FullStoryAPI(\"log\", \"error\", error);\r\n }\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n return (\r\n
\r\n
\r\n

{Resources.UhOh}

\r\n

{Resources.SomethingWentWrong}

\r\n

{Resources.OurEngineersHaveBeenNotified}

\r\n

\r\n {Resources.TryAgainInAWhile}{\" \"}\r\n \r\n {Resources.ReturnToHomePage}\r\n \r\n

\r\n
\r\n
\r\n );\r\n }\r\n\r\n return this.props.children;\r\n }\r\n}\r\n","import React, { useEffect } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useLDClient, useFlags } from \"launchdarkly-react-client-sdk\";\nimport { Userpilot } from \"userpilot\";\nimport { FullStoryAPI } from \"react-fullstory\";\n\nimport { getConfig, isEmpty, isLocalHost, isProduction } from \"../lib/utils\";\nimport { getMyUserIdFromToken, getMyUserNameFromToken, getMyDisplayNameFromToken } from \"../store/user-actions\";\n\nexport function Tracking(props) {\n const accountStore = useSelector(state => state.accounts);\n const userDecodedSub = useSelector(state => (state.user.decoded || {}).sub);\n\n useEffect(() => {\n if (window.logToConsole) console.log(\"Identifying user...\");\n }, [userDecodedSub]);\n\n const dispatch = useDispatch();\n\n let username = dispatch(getMyUserNameFromToken());\n if (Array.isArray(username)) {\n username = username[0];\n }\n\n const userIdentity = {\n id: dispatch(getMyUserIdFromToken()),\n username,\n displayName: dispatch(getMyDisplayNameFromToken()),\n custom: {\n accountId: accountStore.selectedAccount.accountId,\n accountName: accountStore.selectedAccount.accountName,\n subscriptionTypeId: accountStore.selectedAccount.subscriptionTypeId,\n subscriptionTypeName: accountStore.subscription.subscriptionTypeName\n }\n };\n\n if (userIdentity.custom.subscriptionTypeName === SubscriptionTypes.CUSTOMER_PORTAL) {\n userIdentity.custom.vendorGroupKey = (userIdentity.username || \"\").split(\":\")[1];\n }\n\n if (isEmpty(userIdentity.id)) {\n return null;\n }\n\n return (\n \n \n \n \n \n );\n}\n\nconst LaunchDarklyHandler = ({ identity }) => {\n const ldClient = useLDClient();\n if (!isEmpty(identity.id) && !isEmpty((identity.custom || {}).subscriptionTypeId)) {\n ldClient.identify({\n key: identity.id,\n name: identity.username,\n custom: identity.custom\n });\n }\n return null;\n};\n\nconst UserPilotHandler = ({ identity }) => {\n const flags = useFlags();\n\n if (flags.userpilot) {\n Userpilot.initialize(\"40fr55f4\");\n Userpilot.identify(identity.id, {\n name: identity.username,\n displayName: identity.displayName,\n ...identity.custom\n });\n }\n return null;\n};\n\nconst FullStoryHandler = ({ identity }) => {\n if (getConfig().forceEnableFullStory || (isLocalHost() !== true && isProduction())) {\n FullStoryAPI(\"identify\", identity.id, {\n username: identity.username,\n displayName: identity.displayName,\n ...identity.custom,\n isDeveloper: isLocalHost() === true\n });\n }\n return null;\n};\n\nconst SubscriptionTypes = {\n CUSTOMER_PORTAL: \"Customer Portal\"\n};\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport { Provider } from \"react-redux\";\r\nimport { Router, HashRouter, Route } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport store from \"./store/store\";\r\nimport { dispatchToProps as UserDispatch } from \"./store/user-actions\";\r\nimport { dispatchToProps as RegistrationDispatch } from \"./store/registration-actions\";\r\nimport {\r\n getConfig,\r\n getQueryParameters,\r\n isLocalHost,\r\n isProduction,\r\n isStaging,\r\n isQA,\r\n isLeading,\r\n isTrailing\r\n} from \"./lib/utils\";\r\nimport { asyncWithLDProvider } from \"launchdarkly-react-client-sdk\";\r\n\r\nimport FullStory from \"react-fullstory\";\r\n\r\nimport Intercom from \"react-intercom\";\r\n\r\nimport { DndProvider } from \"react-dnd\";\r\nimport Backend from \"react-dnd-html5-backend\";\r\n\r\nimport { createHashHistory } from \"history\";\r\n\r\nimport \"moment/min/locales.min\";\r\n\r\nimport \"bootstrap\";\r\nimport \"bootstrap/dist/css/bootstrap.css\";\r\nimport \"@fortawesome/fontawesome-pro/css/all.css\";\r\n\r\n//import 'bootstrap/dist/css/bootstrap.css'\r\nimport \"./css/index.scss\";\r\n\r\n//import 'babel-polyfill'\r\n\r\nimport Layout from \"./components/layout\";\r\nimport ErrorBoundary from \"./components/errorBoundary\";\r\nimport { Tracking } from \"./components/tracking\";\r\n\r\nlet history = createHashHistory();\r\nlet userDispatch;\r\n\r\nif (window.location.hash && window.location.hash !== \"\") {\r\n let res = getQueryParameters(window.location.hash.replace(/^#\\/?/, \"\"));\r\n userDispatch = new UserDispatch(store.dispatch);\r\n let registrationDispatch = new RegistrationDispatch(store.dispatch);\r\n\r\n if (res.id_token) {\r\n window.localStorage.setItem(\"id_token\", res.id_token);\r\n userDispatch.loggedIn(res.id_token);\r\n window.location = \"#/\";\r\n }\r\n\r\n if (res.saml) {\r\n window.localStorage.clear();\r\n window.localStorage.setItem(\"saml\", res.saml);\r\n window.localStorage.setItem(\"saml-provider\", res.provider);\r\n if (res.CustPage) {\r\n window.localStorage.setItem(\"cust-page\", res.CustPage);\r\n }\r\n }\r\n\r\n try {\r\n if (window.localStorage.getItem(\"isCurrentlyRegistering\")) {\r\n registrationDispatch.checkIfCompanyExist().then(result => {\r\n window.localStorage.removeItem(\"isCurrentlyRegistering\");\r\n });\r\n }\r\n } catch {} // DOMExceptions are thrown in cross-origin contexts under newer versions of Chrome, so we'll use the default for now\r\n}\r\n\r\ntry {\r\n let idToken = window.localStorage.getItem(\"id_token\");\r\n let dateNow = new Date();\r\n if (idToken) {\r\n let jwt = jwt_decode(idToken);\r\n if (jwt.exp >= dateNow.getTime() / 1000) {\r\n userDispatch.loggedIn(idToken);\r\n } else {\r\n userDispatch.logout();\r\n }\r\n }\r\n\r\n let samlSession = window.localStorage.getItem(\"saml\");\r\n let providerSession = window.localStorage.getItem(\"saml-provider\");\r\n if (samlSession && providerSession) {\r\n userDispatch.samlLogin(providerSession, samlSession);\r\n }\r\n} catch {} // DOMExceptions are thrown in cross-origin contexts under newer versions of Chrome, so we'll use the default for now\r\n\r\nif (getConfig().forceEnableFullStory || (isLocalHost() !== true && isProduction())) {\r\n ReactDOM.render(, document.getElementById(\"fullstory-node\"));\r\n}\r\n\r\n//Launch Darkly Initialization\r\n(async () => {\r\n let clientSideID = \"5fadac306caa1f0a1a58ef95\";\r\n if (isStaging()) {\r\n clientSideID = \"5fadac55bb17700a04240e69\";\r\n }\r\n if (isQA()) {\r\n clientSideID = \"5fadac11c1f7360a5eb20d68\";\r\n }\r\n if (isLeading()) {\r\n clientSideID = \"5fbd944e943b4e09a2297be4\";\r\n }\r\n if (isTrailing()) {\r\n clientSideID = \"5fbd9467b051d70981ba5d4e\";\r\n }\r\n if (isProduction()) {\r\n clientSideID = \"5fadac11c1f7360a5eb20d69\";\r\n }\r\n const LDProvider = await asyncWithLDProvider({\r\n clientSideID: clientSideID,\r\n user: {\r\n key: \"anon\",\r\n name: \"Anonymous\"\r\n }\r\n });\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Lockstep\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n );\r\n})();\r\n\r\nReactDOM.render(, document.getElementById(\"intercom-node\"));\r\n"],"sourceRoot":""}